01. januar 2008 - 19:23
Der er
26 kommentarer og 1 løsning
Problem med script til indsættelse i databasen
Hej eksperter Jeg får ingen meddelelse på skærmen med denne kode, men den indsætter heller ikke databasen. <? include("connect.php"); if (isset($_FILES['file']['name'])) { $filename = 'billeder/' . basename($_FILES['file']['name']); if (move_uploaded_file($_FILES['file']['tmp_name'], $filename)) { echo "File is valid, and was successfully uploaded."; } else { echo 'DEBUG: Fra: ' . $_FILES['file']['tmp_name'] . ' til ' . $filename . '<br>'; echo "Possible file upload attack!"; } $sql = "INSERT INTO tre (hej, hejs, you, dig, billede, lol, nix, jo) VALUES ('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s')"; $sql = sprintf($sql, mysql_real_escape_string($_POST['hej']), mysql_real_escape_string($_POST[hejs']), mysql_real_escape_string($_POST['you']), mysql_real_escape_string($_POST['dig']), mysql_real_escape_string($filename), mysql_real_escape_string($_POST['lol']), mysql_real_escape_string($_POST['nix']), mysql_real_escape_string($_POST['jo']), ); $res = mysql_query($sql) or die(mysql_error()); echo "Done<br>Klik <a href='nzoet.php?user=$user'>her</a> for at gå tilbage."; } ?>
Annonceindlæg fra Barco
Er jeres mødelokaler sikre nok?
Den moderne arbejdsplads er i stigende grad afhængig af mødelokaler til at fremme samarbejde, men dette skift medfører også stigende sikkerhedsudfordringer.
01. januar 2008 - 19:30
#1
det skal i hvert fald ikke være noget , i den sidste del mysql_real_escape_string($_POST['jo']),
01. januar 2008 - 19:51
#2
Hvad med at lave en else til hvis ikke $_FILES['file'] er sat. if (isset($_FILES['file']['name'])) { .... ... } else { echo "Ingen fil blevet uploaded. "; }
01. januar 2008 - 20:52
#3
Her er hvad jeg får vist på skærmen: Ingen fil blevet uploaded. DEBUG: Fra: til Possible file upload attack!Done Klik her for at gå tilbage.
01. januar 2008 - 20:56
#4
Efter jeg har ændret koden til dette: if (isset($_FILES['file']['name'])) { $filename = 'billeder/' . basename($_FILES['file']['name']); } else { echo "Ingen fil blevet uploaded. ";
01. januar 2008 - 21:06
#5
Jeg vel lige så godt tilføje, at alt bliver sat ind i databasen, på nær billedenavnet. Billedet bliver heller ikke flyttet til mappen "billeder" på serveren.
01. januar 2008 - 21:06
#6
Jamen så er det jo fordi du ikke uploader nogen fil. Hvordan ser din form ud ??
01. januar 2008 - 21:40
#7
Her er feltet for upload af billedet <input type='file' name='file' id='searchsubmit'>
01. januar 2008 - 22:39
#8
Det hjælper jo ikke meget. Vis HELE din form. Og så lige lidt html, et tag kan ikke have forskelligt name og id. name og id skal være det samme.
02. januar 2008 - 00:02
#9
Jeg bruger "id" til at give feltet en bestemt style fra min CSS-file Her er hele min formular: <form method='post' action='upload4.php'> Smykkenavn: <center><input type='text' name='hej' id='searchinput'></center><br> <center><textarea id='searchinput' cols='50' rows='10' name='hejs'>Smykkebeskrivelse</textarea></center><br> Pris: <center><input type='text' name='you' id='searchinput'></center><br> Varenr: <center><input type='text' name='dig' id='searchinput'></center><br> Leveringstid: <center><input type='text' name='lol' id='searchinput'></center><br> Billede: <center><input type='file' name='file' id='searchsubmit'></center><br> <input type='hidden' name='kategori' value='$_GET[nix]'> <input type='hidden' name='underkategori' value='$_GET[jo]'> <center><input id='searchsubmit' type='submit' value='Videre' /></center>
02. januar 2008 - 07:48
#10
Overvej evt. at tage et kig på denne simple upload kode.
Du har nemlig en fejl i din form:
http://www.eksperten.dk/artikler/1098 Læs "punktet" Vi skal bruge en form og du skulle finde dit svar.
02. januar 2008 - 11:08
#11
Jeg tilføjede 'enctype='multipart/form-data' til min form, men nu indsættes ingen rækker og jeg får en blank skærm.
02. januar 2008 - 13:44
#12
Ser din kode stadig ud som øverst ?
02. januar 2008 - 13:54
#13
Ud over jeg gjorde som straszek sagde og slettede det sidste "," så gør den.
02. januar 2008 - 14:26
#14
Og min form ser også stadig væk sådan ud, ud over jeg har tilføjet 'enctype='multipart/form-data'
02. januar 2008 - 16:58
#15
Prøv at lave en print_r($_FILES) og fortæl os hvad der kommer ud af det.
02. januar 2008 - 19:56
#16
Jeg får en helt blank skærm, og intet bliver indsat i databasen
02. januar 2008 - 19:56
#17
Her er min upload-fil: <? include("connect.php"); if (isset($_FILES['file']['name'])) { $filename = 'billeder/' . basename($_FILES['file']['name']); } else { echo "Ingen fil blevet uploaded. "; if (move_uploaded_file($_FILES['file']['tmp_name'], $filename)) { echo "File is valid, and was successfully uploaded."; } else { echo 'DEBUG: Fra: ' . $_FILES['file']['tmp_name'] . ' til ' . $filename . '<br>'; echo "Possible file upload attack!"; } $sql = "INSERT INTO tre (hej, hejs, you, dig, billede, lol, nix, jo) VALUES ('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s')"; $sql = sprintf($sql, mysql_real_escape_string($_POST['hej']), mysql_real_escape_string($_POST[hejs']), mysql_real_escape_string($_POST['you']), mysql_real_escape_string($_POST['dig']), mysql_real_escape_string($filename), mysql_real_escape_string($_POST['lol']), mysql_real_escape_string($_POST['nix']), mysql_real_escape_string($_POST['jo']), ); $res = mysql_query($sql) or die(mysql_error()); echo "Done<br>Klik <a href='nzoet.php?user=$user'>her</a> for at gå tilbage."; } ?>
02. januar 2008 - 19:59
#18
Og min formular: <form method='post' action='upload4.php' enctype='multipart/form-data'> Smykkenavn: <center><input type='text' name='hej' id='searchinput'></center><br> <center><textarea id='searchinput' cols='50' rows='10' name='hejs'>Smykkebeskrivelse</textarea></center><br> Pris: <center><input type='text' name='you' id='searchinput'></center><br> Varenr: <center><input type='text' name='dig' id='searchinput'></center><br> Leveringstid: <center><input type='text' name='lol' id='searchinput'></center><br> Billede: <center><input type='file' name='file' id='searchsubmit'></center><br> <input type='hidden' name='nix' value='$_GET[kategori]'> <input type='hidden' name='jo' value='$_GET[underkategori]'> <center><input id='searchsubmit' type='submit' value='Videre' /></center> </form>
02. januar 2008 - 20:27
#19
Nej nej, prøv lige selv at gennemgå din kode og så se efter hvad du har skrevet. Det er da klart du ikke får noget ud på skærmen. Tjek dine if-sætninger og find ud af hvad de gør.
03. januar 2008 - 14:20
#20
Yes. Jeg slettede den første if-sætning og nu virker det hele.
03. januar 2008 - 14:43
#21
Hvis du slettede den første if-sætning, så virker din script også selvom der ikke er uploadet en fil. Derved får du en masse fejlbeskeder.
03. januar 2008 - 17:21
#22
Jeg får ingen fejlbeskeder. Og jeg skal også kun bruge scriptet når der skal uploades et billede.
03. januar 2008 - 17:54
#23
Men hvordan ser din kode ud nu ???
03. januar 2008 - 23:38
#24
Samme kode, jeg har bare fjernet: if (isset($_FILES['file']['name'])) {}
04. januar 2008 - 01:43
#25
Ja så tjekker din script jo ikke mere for om der er uploaded en fil. Så kan man jo fylde din database med tomme felter, eller fylde den med rigtig meget data hvis man har løst. Men dit script giver heller ikke din bruger besked hvis der ikke er valgt en fil at uploade. Husk på at scriptet så bare kører når din php fil bliver sendt. Men det er jo helt op til dig. ;-)
17. februar 2008 - 20:42
#26
Dkfire. Du får pointene
18. februar 2008 - 01:32
#27
Jamen så lægger jeg et svar :-)
Vi tilbyder markedets bedste kurser inden for webudvikling