06. april 2006 - 22:24
Der er
15 kommentarer og 1 løsning
Det bliver ikke sendt til sql?
Jeg har et lille problem her. Det "virker" fint, der er bare det problem at den ikke bliver sendt til sql databasen. Filen her: <?php session_start(); if (isset($_SESSION['aid'])) { include("config.php"); if($_POST['upload']){ if ($_POST['pic'] == 1) { $files = $_FILES['upfil']['name']; $dist = $_SERVER["DOCUMENT_ROOT"] . "/"; move_uploaded_file($_FILES['upfil']['tmp_name'], $dist . $files); } elseif ($_POST['pic'] == 2) { $files = "maps/de_dust2.jpg"; } elseif ($_POST['pic'] == 3) { $files = "maps/de_nuke.jpg"; } elseif ($_POST['pic'] == 4) { $files = "maps/aztec.jpg"; } elseif ($_POST['pic'] == 5) { $files = "maps/de_cbble.jpg"; } elseif ($_POST['pic'] == 6) { $files = "maps/de_clan1_mill.jpg"; } elseif ($_POST['pic'] == 7) { $files = "maps/de_train.jpg"; } else { $files = "maps/inferno.jpg"; } $sql = "INSERT INTO `cw` (`id`, `modstander`, `resultat`, `vtl`, `maps`, `dato`, `tekst`) VALUES ('$_POST[id]', '$_POST[modstander]', '$_POST[resultat]', '$_POST[vtl]', '$_POST[maps]', '$_POST[dato]', '$_POST[tekst]')"; } } include("tjek.htm"); php?> <html> <head> <title>Admin system</title> </head> <body> <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data"> Modstander:<br> <input name="modstander" type="text" id="modstander"><br> <br> Resultat:<br> <input name="resultat" type="text" id="resultat"><br> <select size="1" name="vtl"> <option>Vundet</option> <option>Tabt</option> <option>Lige</option> </select><br> Dato:<br> <input name="dato" type="text" id="dato"> Ekstra info:<br> <textarea rows="3" name="tekst" cols="20"></textarea><br> Maps:<br> <input type="radio" value="2" checked name="pic"> de_dust2<br> <input type="radio" value="3" checked name="pic"> de_nuke<br> <input type="radio" value="4" checked name="pic"> de_aztec<br> <input type="radio" value="5" checked name="pic"> de_cbble<br> <input type="radio" value="6" checked name="pic"> de_clan1_mill<br> <input type="radio" value="7" checked name="pic"> de_train<br> <input type="radio" value="8" checked name="pic"> de_inferno<br> <input name="ny" type="submit" value="send"></form> </body> </html>
Annonceindlæg fra COMM2IG
06. april 2006 - 22:28
#1
Prøv lige sådan: <?php session_start(); if (isset($_SESSION['aid'])) { include("config.php"); if($_POST['upload']){ if ($_POST['pic'] == 1) { $files = $_FILES['upfil']['name']; $dist = $_SERVER["DOCUMENT_ROOT"] . "/"; move_uploaded_file($_FILES['upfil']['tmp_name'], $dist . $files); } elseif ($_POST['pic'] == 2) { $files = "maps/de_dust2.jpg"; } elseif ($_POST['pic'] == 3) { $files = "maps/de_nuke.jpg"; } elseif ($_POST['pic'] == 4) { $files = "maps/aztec.jpg"; } elseif ($_POST['pic'] == 5) { $files = "maps/de_cbble.jpg"; } elseif ($_POST['pic'] == 6) { $files = "maps/de_clan1_mill.jpg"; } elseif ($_POST['pic'] == 7) { $files = "maps/de_train.jpg"; } else { $files = "maps/inferno.jpg"; } $sql = "INSERT INTO `cw` (`id`, `modstander`, `resultat`, `vtl`, `maps`, `dato`, `tekst`) VALUES ('$_POST[id]', '$_POST[modstander]', '$_POST[resultat]', '$_POST[vtl]', '$_POST[maps]', '$_POST[dato]', '$_POST[tekst]')"; mysql_query($sql); } } include("tjek.htm"); php?> <html> <head> <title>Admin system</title> </head> <body> <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data"> Modstander:<br> <input name="modstander" type="text" id="modstander"><br> <br> Resultat:<br> <input name="resultat" type="text" id="resultat"><br> <select size="1" name="vtl"> <option>Vundet</option> <option>Tabt</option> <option>Lige</option> </select><br> Dato:<br> <input name="dato" type="text" id="dato"> Ekstra info:<br> <textarea rows="3" name="tekst" cols="20"></textarea><br> Maps:<br> <input type="radio" value="2" checked name="pic"> de_dust2<br> <input type="radio" value="3" checked name="pic"> de_nuke<br> <input type="radio" value="4" checked name="pic"> de_aztec<br> <input type="radio" value="5" checked name="pic"> de_cbble<br> <input type="radio" value="6" checked name="pic"> de_clan1_mill<br> <input type="radio" value="7" checked name="pic"> de_train<br> <input type="radio" value="8" checked name="pic"> de_inferno<br> <input name="ny" type="submit" value="send"></form> </body> </html> //>Rune
07. april 2006 - 09:36
#2
Yee, ;D - $sql sender den jo ikke afsted i sig selv ;)
07. april 2006 - 13:37
#3
medions, det virker stadig ikke, men tak fordi du vil hjælpe. pvtsommer, hvad skal jeg så skrive for at den sender den afsted?
07. april 2006 - 13:58
#4
$sql = "INSERT INTO `cw` (`id`, `modstander`, `resultat`, `vtl`, `maps`, `dato`, `tekst`) VALUES ('$_POST[id]', '$_POST[modstander]', '$_POST[resultat]', '$_POST[vtl]', '$_POST[maps]', '$_POST[dato]', '$_POST[tekst]')"; mysql_query($sql); ^^ Det var den rettelse Medions kom med. Prøv at ændre nederste linje af ændringen til: mysql_query($sql) or die(mysql_error()); Så får du - ved fejl - selve sql-fejlen, og hvad der er galt. YDermere vil jeg endnu engang pointere at jeg ville benytte: $modstander = htmlentities($_POST[modstander]); med alle dine posts, og gemme disse variabler, for at undgå eventuelle SQL-injections (hvor man laver rav i databasen)
08. april 2006 - 14:35
#5
Nu har jeg smidt "mysql_query($sql) or die(mysql_error());" ind, men det virker stadig ikke. Hvordan vil du skrive den: $modstander = htmlentities($_POST[modstander]);? Altså det skal vel være inden i VALUES ikke?
08. april 2006 - 16:50
#6
Du skal først connete så åbne databasen får du kan indsætte i den: //Åbner forbindelse til databasen $link = mysql_connect ('servernavn', 'brugernavn', 'password'); // åber til databasen $db = mysql_select_db('databasenavnet', $link); Så kan du bruger mysql_query til at udføre din SQL sætning. Her er de samme to linier kode hvis du vil havde den til at skrive hvis der sker en fejl. //Åbner forbindelse til databasen $link = mysql_connect ('servernavn', 'brugernavn', 'password'); if (!$link) { die('Not connected : ' . mysql_error()); } // åber til databasen $db = mysql_select_db('databasenavnet', $link); if (!$db) { die ('Can\'t use foo : ' . mysql_error()); }
08. april 2006 - 16:51
#7
Eller det ligger måske i config.php?
08. april 2006 - 18:52
#8
ja det ligger i config.php, bare ikke skrevet sådan..
08. april 2006 - 19:28
#9
Får du ikke en fejl når du har prøvet med? mysql_query($sql) or die(mysql_error()); Ja dette skal gælde for alle variable der skal i VALUES delen: $modstander = htmlentities($_POST[modstander]); og rette SQL sætningen til eks: $modstander = htmlentities($_POST['modstander']); $resultat = htmlentities($_POST['resultat']); $sql = "INSERT INTO `cw` (`id`, `modstander`, `resultat`, `vtl`, `maps`, `dato`, `tekst`) VALUES ('$_POST[id]', '$modstander', '$resultat', ....)";
08. april 2006 - 19:39
#10
okay, så prøver jeg at skrive det ind..
08. april 2006 - 19:46
#11
det virker stadig ikke.. og nej jeg for ikke en fejl.. :S
08. april 2006 - 19:52
#12
og er du så sikker på at session variablen har en værdi i denne if sætning:? if (isset($_SESSION['aid'])) { Samt umiddelbart har du ikke et form felt som hedder "upload" som også er en betingelse for den udføre SQL sætningnen: if($_POST['upload']){
10. april 2006 - 02:14
#13
yes, nu sender den det til sql, MEN jeg har et nyt problem, for det første skriver den 2 hver gang jeg skriver en og den ene er der intet i. Og det med billeder virker ikke - det er måske helt forkert gjordt?
10. april 2006 - 09:57
#14
Når man har form og kode på samme side skal man normalt tjekke på om man har mdtaget data fra form. Det kan gøres ved at tjekke på om eksvis et felt eller submit knap indeholder data, eks med din submit knap: <?php if (isset($_POST['ny'])) { // Gem til database } ?> <html> <!-- vis formen her -->
10. april 2006 - 17:55
#15
super så virker det.. Skriv et svar ;)
10. april 2006 - 20:07
#16
Ok her er et svar ;)
Vi tilbyder markedets bedste kurser inden for webudvikling