04. januar 2004 - 01:36
Der er
16 kommentarer og 1 løsning
upload script driller
Okay eksperter.. Jeg har det her upload script samt form, og det virker perfekt det kan uploade filer og smide i db osv. Men jeg står lidt over for et problem, hvis man nu ikke tilføjer en fil i til upload i formen, så vil det ikke gøre noget, hvordan får jeg reddet den ud så man stadig kan smide info i db uden der er en fil med scriptet er her <?PHP //opret ny session_start(); if(!$_SESSION[tjek] == "OK") { header("location:admin.php"); } else { $dato = date("d-m/20y"); if($_POST[opret]) { $dir = "covers/"; /* mappen filen skal flyttes til */ $filnavn = $_FILES['uploadfil']['name']; print_r($_FILES); phpinfo(); if ($_FILES['uploadfil']['tmp_name']) { echo "DEBUG";//bliver udskrevet if (move_uploaded_file($_FILES['uploadfil']['tmp_name'], $dir.$_FILES['uploadfil']['name'])) { echo "Filen blev uploadet korrekt!"; include("../dbconnect.php"); mysql_query("INSERT INTO film (titel, beskrivelse, kategori, status, lengde, aar, ejer, note, dato, pic_sti) VALUES ('$_POST[titel]','$_POST[beskrivelse]','$_POST[kategori]','$_POST[status]','$_POST[lengde]','$_POST[aar]','$_POST[ejer]','$_POST[note]','$dato','$filnavn')") or die(mysql_error()); } else { echo "Der er opstået en fejl!"; } } } ?> <form action="ny.php" method="POST" enctype="multipart/form-data"> <table> <tr> <td><input type="text" name="titel" value="Titel"></td> </tr> <tr> <td><textarea name="beskrivelse" rows="10">Beskrivelse</textarea> </tr> <tr> <td>kategori</td> </tr> <tr> <td> <select name="kategori"> <?PHP //henter kategorierne og udskriver dem i en <select> include("../dbconnect.php"); $kategori = mysql_query("SELECT * FROM kategori") or die(mysql_error()); while ($row = mysql_fetch_array($kategori)) { ?> <option><?PHP echo $row[kategori] ?></option> <?PHP } ?> </select> </td> <td><a href="kat.php">Opret kategori</a></td> </tr> <tr> <td>Status</td> </tr> <tr> <td> <select name="status"> <option>På hylden</option> <option>Udlånt</option> <option>På harddisk</option> </select> </td> </tr> <tr> <td><input type="text" name="lengde" value="Længde"></td> </tr> <tr> <td><input type="text" name="aar" value="År"></td> </tr> <tr> <td><input type="text" name="ejer" value="<?PHP echo $_SESSION[navn]?>" readonly</td> </td> <tr> <td><textarea name="note" rows="3">Note til filmen, hvis ingen lad feltet være tomt</textarea></td> </tr> <tr> <td>Vælg Cover til filmen</td> </tr> <tr> <td><input type="file" name="uploadfil"></td> </tr> <tr> <td><input type="submit" name="opret" value="Opret film"></td> </tr> </table> </form> <a href="logget_ind.php">Tilbage</a> <?PHP } ?> Mvh krydset
Annonceindlæg fra Infor
04. januar 2004 - 01:37
#1
tag jer ikke af phpinfo();
04. januar 2004 - 01:46
#2
Måske er det fordi at kolonnen pic_sti i din database som udgangspunkt er sat til NOT NULL istedet for NULL......
04. januar 2004 - 01:50
#3
Hvordan skulle det kunne gøre det??
04. januar 2004 - 01:59
#4
måske har jeg ikke lige fanget spg... Er problemet ikke at den ikke vil uploade når uploadfil ikke har en værdi.... tænkte det kunne afhjælpes med, at pic_sti ikke nødvendigvis skulle indeholde en værdi. måske er det ikke måden....
04. januar 2004 - 02:01
#5
det er simpelt scriptet skal virke uden jeg har en fil med i formen eller ej. hvis $uploadfil ingen værdi har så plejer den bare at indsætte blank i db
04. januar 2004 - 02:07
#6
hmm for sent for mig det her.....hvis du allerede ved, at når $uploadfil er tom indsætter den blank i DB, så må upload scriptet vel også have fungeret uden fil.... Tror jeg skal i seng nu, tænker vist for langsomt nu.... held og lykke
04. januar 2004 - 02:09
#7
Nej den har ikke gjordt det i det her script men gør det i alle andre script jeg har lavet med insert i db
04. januar 2004 - 02:33
#8
hvad med lige efter du har tjekket om $_POST[opret] tjekker om $_POST[uploadfil] har en værdi. Hvis den har kan du køre scriptet som du normalt gør. Hvis ikke kører du bare den "INSERT INTO" du allerede har hvor du dog undlader at tilføje noget i feltet pic_sti.
04. januar 2004 - 02:39
#9
Det virkede squ ;) Smider du et svar jeg smider løsningen <?PHP //opret ny session_start(); if($_SESSION[tjek] !== "OK") { header("location:admin.php"); } else { $dato = date("d-m/20y"); if($_POST[opret]) { if($_POST[uploadfil] == "") { include("../dbconnect.php"); mysql_query("INSERT INTO film (titel, beskrivelse, kategori, status, lengde, aar, ejer, note, dato, pic_sti) VALUES ('$_POST[titel]','$_POST[beskrivelse]','$_POST[kategori]','$_POST[status]','$_POST[lengde]','$_POST[aar]','$_POST[ejer]','$_POST[note]','$dato','$filnavn')") or die(mysql_error()); } else { $dir = "covers/"; /* mappen filen skal flyttes til */ $filnavn = $_FILES['uploadfil']['name']; var_dump(); phpinfo(); if ($_FILES['uploadfil']['tmp_name']) { echo "DEBUG";//bliver udskrevet if (move_uploaded_file($_FILES['uploadfil']['tmp_name'], $dir.$_FILES['uploadfil']['name'])) { echo "Filen blev uploadet korrekt!"; include("../dbconnect.php"); mysql_query("INSERT INTO film (titel, beskrivelse, kategori, status, lengde, aar, ejer, note, dato, pic_sti) VALUES ('$_POST[titel]','$_POST[beskrivelse]','$_POST[kategori]','$_POST[status]','$_POST[lengde]','$_POST[aar]','$_POST[ejer]','$_POST[note]','$dato','$filnavn')") or die(mysql_error()); } else { echo "Der er opstået en fejl!"; } } } } ?> <form action="ny.php" method="POST" enctype="multipart/form-data"> <table> <tr> <td><input type="text" name="titel" value="Titel"></td> </tr> <tr> <td><textarea name="beskrivelse" rows="10">Beskrivelse</textarea> </tr> <tr> <td>kategori</td> </tr> <tr> <td> <select name="kategori"> <?PHP //henter kategorierne og udskriver dem i en <select> include("../dbconnect.php"); $kategori = mysql_query("SELECT * FROM kategori") or die(mysql_error()); while ($row = mysql_fetch_array($kategori)) { ?> <option><?PHP echo $row[kategori] ?></option> <?PHP } ?> </select> </td> <td><a href="kat.php">Opret kategori</a></td> </tr> <tr> <td>Status</td> </tr> <tr> <td> <select name="status"> <option>På hylden</option> <option>Udlånt</option> <option>På harddisk</option> </select> </td> </tr> <tr> <td><input type="text" name="lengde" value="Længde"></td> </tr> <tr> <td><input type="text" name="aar" value="År"></td> </tr> <tr> <td><input type="text" name="ejer" value="<?PHP echo $_SESSION[navn]?>" readonly</td> </td> <tr> <td><textarea name="note" rows="3">Note til filmen, hvis ingen lad feltet være tomt</textarea></td> </tr> <tr> <td>Vælg Cover til filmen</td> </tr> <tr> <td><input type="file" name="uploadfil"></td> </tr> <tr> <td><input type="submit" name="opret" value="Opret film"></td> </tr> </table> </form> <a href="logget_ind.php">Tilbage</a> <?PHP } ?>
04. januar 2004 - 02:47
#10
Skide godt....så var jeg ikke så træt som jeg troede :)
04. januar 2004 - 02:50
#11
Jow :-( får hvis filen er med bliver filen ikke uploadet :-S
04. januar 2004 - 02:57
#12
interkriller mente nok at du skulle skrive noget ligende; <?PHP //opret ny session_start(); if(!$_SESSION[tjek] == "OK") { header("location:admin.php"); } else { $dato = date("d-m/20y"); if($_POST[opret]) { $dir = "covers/"; /* mappen filen skal flyttes til */ $filnavn = $_FILES['uploadfil']['name']; print_r($_FILES); phpinfo(); if ($_POST['beskrivelse']) { echo "DEBUG";//bliver udskrevet if (($_FILES['uploadfil']['tmp_name']) and (move_uploaded_file($_FILES['uploadfil']['tmp_name'], $dir.$_FILES['uploadfil']['name']))) { echo "Filen blev uploadet korrekt!"; } else { $filnavn = "NULL"; } include("../dbconnect.php"); mysql_query("INSERT INTO film (titel, beskrivelse, kategori, status, lengde, aar, ejer, note, dato, pic_sti) VALUES ('$_POST[titel]','$_POST[beskrivelse]','$_POST[kategori]','$_POST[status]','$_POST[lengde]','$_POST[aar]','$_POST[ejer]','$_POST[note]','$dato','$filnavn')") or die(mysql_error()); } else { echo "Der er opstået en fejl!"; } } } ?> <form action="ny.php" method="POST" enctype="multipart/form-data"> <table> <tr> <td><input type="text" name="titel" value="Titel"></td> </tr> <tr> <td><textarea name="beskrivelse" rows="10">Beskrivelse</textarea> </tr> <tr> <td>kategori</td> </tr> <tr> <td> <select name="kategori"> <?PHP //henter kategorierne og udskriver dem i en <select> include("../dbconnect.php"); $kategori = mysql_query("SELECT * FROM kategori") or die(mysql_error()); while ($row = mysql_fetch_array($kategori)) { ?> <option><?PHP echo $row[kategori] ?></option> <?PHP } ?> </select> </td> <td><a href="kat.php">Opret kategori</a></td> </tr> <tr> <td>Status</td> </tr> <tr> <td> <select name="status"> <option>På hylden</option> <option>Udlånt</option> <option>På harddisk</option> </select> </td> </tr> <tr> <td><input type="text" name="lengde" value="Længde"></td> </tr> <tr> <td><input type="text" name="aar" value="År"></td> </tr> <tr> <td><input type="text" name="ejer" value="<?PHP echo $_SESSION[navn]?>" readonly</td> </td> <tr> <td><textarea name="note" rows="3">Note til filmen, hvis ingen lad feltet være tomt</textarea></td> </tr> <tr> <td>Vælg Cover til filmen</td> </tr> <tr> <td><input type="file" name="uploadfil"></td> </tr> <tr> <td><input type="submit" name="opret" value="Opret film"></td> </tr> </table> </form> <a href="logget_ind.php">Tilbage</a> <?PHP } ?>
04. januar 2004 - 02:59
#13
} else { phpinfo(); if ($_FILES['uploadfil']['tmp_name']) { echo "DEBUG";//bliver udskrevet if (move_uploaded_file($_FILES['uploadfil']['tmp_name'], $dir.$_FILES['uploadfil']['name'])) { echo "Filen blev uploadet korrekt!"; include("../dbconnect.php"); mysql_query("INSERT INTO film (titel, beskrivelse, kategori, status, lengde, aar, ejer, note, dato, pic_sti) VALUES ('$_POST[titel]','$_POST[beskrivelse]','$_POST[kategori]','$_POST[status]','$_POST[lengde]','$_POST[aar]','$_POST[ejer]','$_POST[note]','$dato','$filnavn')") or die(mysql_error()); (DETTE STOD LIGE FØR PHPINFO() FØR, RYK DET HERNED): $dir = "covers/"; /* mappen filen skal flyttes til */ $filnavn = $_FILES['uploadfil']['name']; var_dump(); } else { echo "Der er opstået en fejl!"; }
04. januar 2004 - 03:06
#14
interkriller Hvad er ideen i at erklære tingene efter de skal bruges??? Check mysql_query(), den bruger $filnavn ...
04. januar 2004 - 03:07
#15
nej det er da vist løgn.......tænker mig ikke om....2.min
04. januar 2004 - 03:10
#16
smid et svar zups det virkede
04. januar 2004 - 03:16
#17
welle ?
Vi tilbyder markedets bedste kurser inden for webudvikling