Slettet bruger
02. august 2006 - 12:26
Der er
47 kommentarer og 2 løsninger
mysql_query virker ikk?
Hej.. Hvor virker denne strang ikk? mysql_query("INSERT INTO forum_kommentar (bruger, ip, bid, kommentar) VALUES ('$bruger', '$ip', '$id', '$kommentar')") or die(mysql_error()); ..,,,,,,......................................................... i får lige hele koden.: <?php include('connect.php'); $id = $_POST['id']; if($_POST['submit']){ $emnenavn = $_POST['emne_navn']; $bruger = $_POST['bruger']; $email = $_POST['email']; $kommentar = $_POST['kommentar']; $ip = getenv('REMOTE_ADDR'); mysql_query("INSERT INTO forum_kommentar (bruger, ip, bid, kommentar) VALUES ('$bruger', '$ip', '$id', '$kommentar')") or die(mysql_error()); } $result = mysql_query("SELECT * FROM forum_kommentar WHERE bid = '$id'") or die(mysql_error()); while ($vis = mysql_fetch_array($result)){ echo"<table border='1' width='45%' id='table1' height='187'>"; echo"<tr>"; echo"<td width='128'>Bruger: $vis[bruger] <br>Dato: $vis[dato] </td>"; echo"<td>'$vis[kommentar]' </td>"; echo"</tr>"; echo"</table>"; } echo "$id"; ?> <html> <head> </head> <body> <form action="<?php $_SERVER['php_self'] ?>" METHOD="POST"> Dit navn: <input type="text" name="bruger"> <br> Din mail: <input type="text" name="email"> <br> <textarea name="kommentar" rows="9" cols="70"></textarea> <br> <input type="submit" name="submit" value="Tilføj din kommentar"> </form> </body> </html> OG fejlen er at jeg ikk får indsat nog i bid, altså $id bliver ikk sat i bid?.
Annonceindlæg fra Lenovo
02. august 2006 - 12:36
#1
Hvor kommer $_POST['id'] fra?
02. august 2006 - 12:39
#2
Prøv: $ip = $_SERVER['REMOTE_ADDR'];
02. august 2006 - 12:40
#3
Ligemeget det var $id og ikke $ip =)
Slettet bruger
02. august 2006 - 12:43
#4
ja.. jeg har en oversigt.php til vært forum emne, og det der jeg hente $_POST['id'] fra.
Slettet bruger
02. august 2006 - 12:43
#5
vil i se den ?
02. august 2006 - 12:45
#6
Når databasen begynder at ovføre sig underligt så skyldes det i 9 ud af 10 tilfælde at din SQL-sætning indeholder noget andet end du tror. Derfor bør man som det første i debugningen altid forsøge at udskrive dem før at de forsøges udført: $sql = "INSERT INTO forum_kommentar (bruger, ip, bid, kommentar) VALUES ('$bruger', '$ip', '$id', '$kommentar')"; echo "DEBUG: $sql<br>" mysql_query() or die(mysql_error());
02. august 2006 - 12:46
#7
... prøver lige igen: $sql = "INSERT INTO forum_kommentar (bruger, ip, bid, kommentar) VALUES ('$bruger', '$ip', '$id', '$kommentar')"; echo "DEBUG: $sql<br>"; mysql_query($sql) or die(mysql_error());
Slettet bruger
02. august 2006 - 12:49
#8
så får jeg fejl: $sql = "INSERT INTO forum_kommentar (bruger, ip, bid, kommentar) VALUES ('$bruger', '$ip', '$id', '$kommentar')"; echo "DEBUG: $sql "; mysql_query($sql) or die(mysql_error());
Slettet bruger
02. august 2006 - 12:51
#9
Ops det gik lidt for hurtigt... Den udskriver : DEBUG: INSERT INTO forum_kommentar (bruger, ip, bid, kommentar) VALUES ('', '', '', '')
02. august 2006 - 12:51
#10
Mangler formen ikke Dit emne: <input type="text" name="emne_navn"> <br>
02. august 2006 - 12:52
#11
^ - ignorer den bruges jo ikke endenu :o)
Slettet bruger
02. august 2006 - 12:52
#12
Nej.. ved egentlig ikk hvorfr den lige kom med..?:S
02. august 2006 - 12:56
#14
<?php include('connect.php'); echo "Debug1"; $id = $_POST['id']; echo "Debug2 - id=" . $_POST['id']; if($_POST['submit']){ echo "Debug3 - Submit er sat"; $emnenavn = $_POST['emne_navn']; echo "Debug4 - Emne=".$emnenavn; $bruger = $_POST['bruger']; echo "Debug5 - bruger=".$bruger; $email = $_POST['email']; echo "Debug6 - email=".$email; $kommentar = $_POST['kommentar']; echo "Debug7 - kommentar=".$kommentar; $ip = getenv('REMOTE_ADDR'); echo "Debug8 - ip=".$ip; mysql_query("INSERT INTO forum_kommentar (bruger, ip, bid, kommentar) VALUES ('$bruger', '$ip', '$id', '$kommentar')") or die(mysql_error()); echo "Debug9 - færdig"; } prøv med sådan en debug-fætter og se hvad der kommer ud af det
Slettet bruger
02. august 2006 - 12:58
#15
Men der er ikk nogen der kan sige mig hvorfor jeg ikk får indsat $id i bid?
02. august 2006 - 12:59
#16
Det er en rigtig god ide at omdøbe din submit-knap til at hedde noget andet end submit: <input type="submit" name="nogetAndetEndSubmit" value="Tilføj din kommentar"> Afhængig af hvilken browser du bruger vil dette ellers resultere i en fejl eller ej.
02. august 2006 - 13:00
#17
prøv lige at køre den debug-fætter jeg lavede og se om den overhovede tager nogen af de data med der bliver sendt i formen
Slettet bruger
02. august 2006 - 13:00
#18
Debug1Debug2 - id=
Slettet bruger
02. august 2006 - 13:01
#19
den stopper efter id..
02. august 2006 - 13:01
#20
Så vidt jeg kan se er der jo ikke noget id-felt i din formular.
Slettet bruger
02. august 2006 - 13:02
#21
nej, men henter id fra url..
02. august 2006 - 13:03
#22
Hvis den henter fra et url skal du bruge $_GET[] i stedet for $_POST[].
Slettet bruger
02. august 2006 - 13:03
#23
eller.,, id bliver sat i oversigt.php hvor man kommer fra
Slettet bruger
02. august 2006 - 13:03
#24
okey.. prøver det
Slettet bruger
02. august 2006 - 13:05
#25
Det var det..:P.. Tak.. Niel
02. august 2006 - 13:05
#26
Det ser nu ikke ud til at dit id bliver sendt videre i systemet når du submitter din form.
Slettet bruger
02. august 2006 - 13:06
#27
Niele for point. Smid et svar
02. august 2006 - 13:06
#28
<form action="<?php $_SERVER['php_self'] ?>" METHOD="POST"> ^ - husk at rette action her så action bliver php_self?id=ide-en
Slettet bruger
02. august 2006 - 13:07
#29
Men det virker, jeg får indsat det rigtige i bid, og den henter kun når bid = $id
02. august 2006 - 13:07
#30
... eller brug et hidden-felt: <form action="<?php $_SERVER['php_self'] ?>" METHOD="POST"> <input type="hidden" name="id" value="<?=$_GET["id"]?>">
Slettet bruger
02. august 2006 - 13:08
#31
Smid e niele
Slettet bruger
02. august 2006 - 13:10
#32
Eller har faktisk et problem til... HAr lige koedet noget mere på det, det er en table men den bliver ikk udskrevet? Koden ser såen her ud(det er den table der henter fra forum_emne): <?php include('connect.php'); $id = $_GET['id']; if($_POST['submit']){ $bruger = $_POST['bruger']; $email = $_POST['email']; $kommentar = $_POST['kommentar']; $ip = getenv('REMOTE_ADDR'); mysql_query("INSERT INTO forum_kommentar (bruger, ip, bid, kommentar) VALUES ('$bruger', '$ip', '$id', '$kommentar')") or die(mysql_error()); } $aemne = mysql_query("SELECT * FROM forum_emne WHERE id = '$id'") or die(mysql_error()); while ($emne = mysql_fetch_array($aemne)){ echo"<table border='1' width='45%' id='table1' height='187'>"; echo"<tr>"; echo"<td width='128'>Bruger: $emne[bruger] <br>Dato: --- </td>"; echo"<td>'$emne[emne_navn]' </td>"; echo"</tr>"; echo"</table>"; } $result = mysql_query("SELECT * FROM forum_kommentar WHERE bid = '$id'") or die(mysql_error()); while ($vis = mysql_fetch_array($result)){ echo"<table border='1' width='45%' id='table1' height='187'>"; echo"<tr>"; echo"<td width='128'>Bruger: $vis[bruger] <br>Dato: $vis[dato] </td>"; echo"<td>$vis[kommentar] </td>"; echo"</tr>"; echo"</table>"; } ?> <html> <head> </head> <body> <form action="<?php $_SERVER['php_self'] ?>" METHOD="POST"> Dit navn: <input type="text" name="bruger"> <br> Din mail: <input type="text" name="email"> <br> <textarea name="kommentar" rows="9" cols="70"></textarea> <br> <input type="submit" name="submit" value="Tilføj din kommentar"> </form> </body> </html>
02. august 2006 - 13:10
#33
Skal vi ikke bare alle sammen dele på denne her? Det er svært at bedømme hvem som har biddreget mest. :^)
02. august 2006 - 13:14
#34
Mon ikke den skal outputte i body istedet?
Slettet bruger
02. august 2006 - 13:15
#35
et sidste spørgsmål fik jeg ordnet, (ved ikk lige hvordan) Jo, det var bare dig der kom med det "endlige svar".. men hvordan deler jeg dem?
02. august 2006 - 13:16
#36
Måske? <?php include('connect.php'); ?> <html> <head> </head> <body> <?php $id = $_GET['id']; if($_POST['submit']){ $bruger = $_POST['bruger']; $email = $_POST['email']; $kommentar = $_POST['kommentar']; $ip = getenv('REMOTE_ADDR'); mysql_query("INSERT INTO forum_kommentar (bruger, ip, bid, kommentar) VALUES ('$bruger', '$ip', '$id', '$kommentar')") or die(mysql_error()); } $aemne = mysql_query("SELECT * FROM forum_emne WHERE id = '$id'") or die(mysql_error()); while ($emne = mysql_fetch_array($aemne)){ echo"<table border='1' width='45%' id='table1' height='187'>"; echo"<tr>"; echo"<td width='128'>Bruger: $emne[bruger] <br>Dato: --- </td>"; echo"<td>'$emne[emne_navn]' </td>"; echo"</tr>"; echo"</table>"; } $result = mysql_query("SELECT * FROM forum_kommentar WHERE bid = '$id'") or die(mysql_error()); while ($vis = mysql_fetch_array($result)){ echo"<table border='1' width='45%' id='table1' height='187'>"; echo"<tr>"; echo"<td width='128'>Bruger: $vis[bruger] <br>Dato: $vis[dato] </td>"; echo"<td>$vis[kommentar] </td>"; echo"</tr>"; echo"</table>"; } ?> <form action="<?php $_SERVER['php_self'] ?>" METHOD="POST"> Dit navn: <input type="text" name="bruger"> <br> Din mail: <input type="text" name="email"> <br> <textarea name="kommentar" rows="9" cols="70"></textarea> <br> <input type="submit" name="submit" value="Tilføj din kommentar"> </form> </body> </html>
02. august 2006 - 13:16
#37
Med den viste kode vil id-feltet atid være tomt når formen submittes. Du skal enten bruge 02/08-2006 13:06:27 eller 02/08-2006 13:07:39 for at ændre på dette.
02. august 2006 - 13:18
#38
Nåh joh :o) <form action="<?php $_SERVER['php_self'] ?>" METHOD="POST"> -> <form action="<?php echo $_SERVER['php_self']."?id=".$id; ?>" METHOD="POST">
Slettet bruger
02. august 2006 - 13:32
#39
Jeg skal ikk have mere hjælp, til det nu, jeg hr fået rettet de fejl jeg havde...
02. august 2006 - 13:34
#40
Skal vi som sagt ikke dele på denne her?
Slettet bruger
02. august 2006 - 13:44
#41
Jah. Baa jeg skal hva jeg skal gøre--
02. august 2006 - 13:51
#42
Ingenting til mig
02. august 2006 - 13:59
#43
... Jeg er på vej ud af døren om lidt og har ikke en pc med php test server startet op - men når jeg kigger på scriptet kan jeg se at der ikke sker spor validering på om man har lov til at poste ... Kør med sessions og når man logger ind så sæt sessiono loginid til brugerens id og fjern det når man logger ud - og så når meddellelser postes validerer du på om session login id er sat - hvis den er postes der med session loginid værdien istedet for get overførsel af session værdien... - og kig evt. på 02/08-2006 12:54:47 Årsag: 1. En "idiot" kan poste hvad som helst og udgive sig for at være hvem som helst ... men du har dog ip-adressen så... 2. Din sql håndtering af variabler er hullet da du benytter post/get variabler direkte ... hvis der så skulle være en "idiot" der ville rette sin ip-adresse kunne han rette den til hvilken som helst... ( ^ - idiot i ovenstående heviser til en person der foretager sig noget der er tåbeligt, ulovligt og meget irriterende ) - Jeg er ikke så langt inde i det hele, men du mangler beskyttelse ...
02. august 2006 - 14:12
#44
Glemte lige: Med venlig hilsen, Clemme :o)
02. august 2006 - 14:15
#45
Hvor virker denne strang ikk? mysql_query("INSERT INTO forum_kommentar (bruger, ip, bid, kommentar) VALUES ('$bruger', '$ip', '$id', '$kommentar')") or die(mysql_error()); ------------------------ du skal bruge ` tegn er ret sikker på det dit problem... altså ret bruger til `bruger`, osv.
02. august 2006 - 14:46
#46
jaiz->??? ` ` Er kun nødvendige når det er et reserveret ord.
02. august 2006 - 16:57
#47
Nielle, mon ikke du skulle lægge svaret?
02. august 2006 - 16:59
#48
jaiz se evt. 02/08-2006 13:05:42 02/08-2006 13:06:14
02. august 2006 - 19:34
#49
Et svar :^)
Vi tilbyder markedets bedste kurser inden for webudvikling