Avatar billede stieper Nybegynder
11. oktober 2005 - 13:21 Der er 12 kommentarer og
1 løsning

Hente variabler fra html form til php og mysql

Hej.

Jeg har lavet et lille script som uploader en fil til min server, og derefter smider informationer om filen til min database.

upload.html
<form action="upload.php" method="post" enctype="multipart/form-data">
  <b>Fil til upload:</b>
  <input type="file" name="upfil" />
  <br />
  Beskrivelse:
  <input type="text" name="descr" size="400" />
  <br />
  Type:<br />
    Acryl<input type="checkbox" name="acryl" value="1">
    Olie<input type="checkbox" name="olie" value="2">
    Pastel<input type="checkbox" name="pastel" value="3">
    Blyant<input type="checkbox" name="blyant" value="4">

  <input type="submit" value="upload" />
</form>

upload.php (mysql delen)
require("mysql_funktioner.php"); //her ligger mine funktioner til mysql gemt ;-)
//Så går vi igang med mysql
$placering = "upload/";
$type = $_POST["acryl"];
$beskrivelse = $_POST["descr"];
$navn = $_POST["name"];
$tabel = "filer";
aabn_forbindelse_og_vaelgdb();
$insertSQL = "insert into $tabel (bill_sti, descr, type, name)
              values ('$placering', '$beskrivelse', '$type', '$navn')";
mysql_query($insertSQL);
luk_forbindelse();


Mit problem, er at det eneste data der bliver skrevet i min database er bill_sti (upload/) som jeg selv har defineret.
Så jeg er klar over at det er mine $_POST værdier den er gal med - men hvordan henter jeg så værdierne fra min html form??

På forhånd tak for hjælpen.
Avatar billede dmdisco Nybegynder
11. oktober 2005 - 13:28 #1
prøv at skrive $_POST ud med

print_R($_POST);

for lige at se om der bliver sat noget eller ej
Avatar billede stieper Nybegynder
11. oktober 2005 - 13:32 #2
Når jeg skifter dem ud i scriptet får jeg en parse error..

Jeg kan vel heller ikke bare sætte dem ind i min sql query?
Avatar billede showsource Seniormester
11. oktober 2005 - 13:33 #3
print_r($_POST)

lille r :O)
Avatar billede stieper Nybegynder
11. oktober 2005 - 13:36 #4
require("mysql_funktioner.php");
//Så går vi igang med mysql
$placering = "upload/";
$type = print_r($_POST);
$beskrivelse = print_r($_POST);
$navn = print_r($_POST);
$tabel = "filer";
aabn_forbindelse_og_vaelgdb();
$insertSQL = "insert into $tabel (bill_sti, descr, type, name)
              values ('$placering', '$beskrivelse', '$type', '$name')";
mysql_query($insertSQL);
luk_forbindelse();


Returnerer:
Array ( ) Array ( ) Array ( )
Avatar billede showsource Seniormester
11. oktober 2005 - 13:37 #5
Brug det FØR din query

Men dine checkboxe, lav dem til radio, og kald dem "billedtype", så man kun kan vælge det ene eller andet, så er
$type = $_POST["billedtype"];

$navn skal være

$navn = $_FILES["upfil"]["name"];
Avatar billede stieper Nybegynder
11. oktober 2005 - 13:45 #6
Ok.. nu ser upload.php således ud:
require("mysql_funktioner.php");
//Så går vi igang med mysql
$placering = "upload/";
$type = $_POST["billedtype"];
$beskrivelse = $_POST["descr"];
$navn = $_FILES["upfil"]["name"];
$tabel = "filer";
aabn_forbindelse_og_vaelgdb();
$insertSQL = "insert into $tabel (bill_sti, descr, type, name)
              values ('$placering', '$beskrivelse', '$type', '$navn')";
mysql_query($insertSQL);
luk_forbindelse();

og upload.html således:

<form action="upload.php" method="post" enctype="multipart/form-data">
  <b>Fil til upload:</b>
  <input type="file" name="upfil" />
  <br />
  Beskrivelse:
  <input type="text" name="descr" size="400" />
  <br />
  Type:<br />
    Acryl<input type="radio" name="billedtype" value="1">
    Olie<input type="radio" name="billedtype" value="2">
    Pastel<input type="radio" name="billedtype" value="3">
    Blyant<input type="radio" name="billedtype" value="4">

  <input type="submit" value="upload" />
</form>

Men jeg får stadig ingen værdier ind?

Skulle jeg bruge print_r($_POST); et sted? Det er vel en funktion til at udskrive værdien af $_POST ?
Avatar billede showsource Seniormester
11. oktober 2005 - 13:53 #7
Prøv

upload.html
<form action="upload.php" method="post" enctype="multipart/form-data">
  <b>Fil til upload:</b>
  <input type="file" name="upfil" />
  <br />
  Beskrivelse:
  <input type="text" name="descr" size="400" />
  <br />
  Type:<br />
    Acryl<input type="radio" name="billedtype" value="1" checked>
    Olie<input type="radio" name="billedtype" value="2">
    Pastel<input type="radio" name="billedtype" value="3">
    Blyant<input type="radio" name="billedtype" value="4">

  <input type="submit" value="upload" />
</form>

upload.php (mysql delen)
require("mysql_funktioner.php"); //her ligger mine funktioner til mysql gemt ;-)

//Så går vi igang med mysql
$placering = "upload/";
$type = $_POST["billedtype"];
$beskrivelse = $_POST["descr"];
$navn = $__FILES["upfil"]["name"];
$tabel = "filer";

aabn_forbindelse_og_vaelgdb();
$insertSQL = "INSERT INTO `". $tabel ."` (`bill_sti`, `descr`, `type`, `name`)
              VALUES ('". $placering ."', '". $beskrivelse ."', '". $type ."', '". $navn ."')";
mysql_query($insertSQL) or die (mysql_error());
luk_forbindelse();


her er alle "mysqlnavne" puttet mellem ``

og "hoppet ud mysql"
'". $placering ."'
for at "fortælle" det er en php variabel
Avatar billede showsource Seniormester
11. oktober 2005 - 13:54 #8
Men du uploader jo ikke billedet?
Eller er det bare noget af koden?
Avatar billede stieper Nybegynder
11. oktober 2005 - 13:55 #9
Det er kun noget af koden.. selve upload delen virker fino.. prøver lige det sidste du skrev...
Avatar billede stieper Nybegynder
11. oktober 2005 - 13:57 #10
Desværre - ingen held.. kun upload/ kommer ned i databasen..
Avatar billede stalle Nybegynder
11. oktober 2005 - 19:17 #11
Det er fordi du har et felt der hedder "type".

Type er et reserveret ord i mysql...

http://dev.mysql.com/doc/mysql/en/reserved-words.html
Avatar billede stieper Nybegynder
11. oktober 2005 - 19:21 #12
Type virker fint i min mysql. Jeg har fået det til at fungere nu. Problemet var, at POST og FILE variablerne ikke var tilgængelige der hvor jeg placerede mit mysql script.
Så jeg måtte flytte det op i en IF funktion, hvor de var tilgængelige. Hvilket jo også er ret smart, da jeg nu kun får skrevet filerne ind i databasen, hvis filen accepteres gennem alle mine "if" funktioner ;-)

Men takker for hjælpen.

showsource - smid et svar - point som tak for hjælpen.
Avatar billede showsource Seniormester
11. oktober 2005 - 19:24 #13
ok
Ved at bruge `type` gi'r det heller ingen probs at brugge reserverede ord
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester