16. april 2008 - 01:31
Der er
18 kommentarer og 1 løsning
Tilføje til gæstebogen.
Hej! Har ikke lavet php i meget lang tid nu. Jeg vil smide en af mine gamle tagwall's op, som jeg har lavet. Problemet er, at jeg godt kan hente ud fra databasen. Men jeg kan ikke indsætte? Jeg ved ikke hvad problemet er. <? session_start(); include "database.php"; $dato = date("d.m.Y h:i"); $time = time(); $ip = $_SERVER[REMOTE_ADDR]; if($besked){ $besked = str_replace(':D','<img src="glad.gif">',$besked); $besked = str_replace(':(','<img src="ked.gif">',$besked); $besked = str_replace(':)','<img src="smiler.gif">',$besked); mysql_query("insert into gb set brugernavn = '$brugernavn', besked = '$besked', dato = '$dato', ip = '$ip'"); } else{ } ?>
Annonceindlæg fra Axcess Nordic
16. april 2008 - 06:55
#1
Sådan? <? session_start(); include "database.php"; $dato = date("d.m.Y h:i"); $time = time(); $ip = $_SERVER[REMOTE_ADDR]; $besked = $_POST['besked']; $besked = mysql_real_escape_string($besked); if (isset($besked) && $besked != '') { $besked = str_replace(':D','<img src="glad.gif">',$besked); $besked = str_replace(':(','<img src="ked.gif">',$besked); $besked = str_replace(':)','<img src="smiler.gif">',$besked); mysql_query("insert into gb set brugernavn = '$brugernavn', besked = '$besked', dato = '$dato', ip = '$ip'"); } ?>
16. april 2008 - 07:12
#2
prodigy01: Det Nielle har rettet er: Du bruger $besked, det virkede i "gamle" dage eller hvis globals er aktiveret. Men da $besked garanteret er fra en form som POSTER, så skal det være: $_POST['besked'] og ligeså med alle andre felter fra din form.
16. april 2008 - 07:18
#3
Nemlig, men ud over det, har jeg også tilpasset koden så den er beskyttet imod SQL injection. (og fjernet en else-del som ikke havde nogen som helst funktion).
16. april 2008 - 07:36
#4
Det virker godt nok nu. Men den tilføjer kun beskeden, ikke navnet. Skal jeg så gøre det samme som i har gjort med besked.
16. april 2008 - 07:53
#5
Du skal gøre sådan her: $besked = $_POST['besked']; $besked = mysql_real_escape_string($besked); med $brugernavn også...
16. april 2008 - 08:31
#6
Jeg er ikke bekendt med den syntaks, du bruger i din sql.. "insert into gb set brugernavn = '$brugernavn', besked = '$besked', dato = '$dato', ip = '$ip'" kan man det? personligt ville jeg have skrevet "insert into gb (brugernavn, besked, dato, ip) values ('$brugernavn', '$besked', '$dato', '$ip');" skal ikke kunne sige, om begge syntakser virker :)
16. april 2008 - 08:38
#7
16. april 2008 - 08:47
#8
Ville nok foretrække at bruge mulighed 2, da du holder dig til SQL-standard. Er du 100% sikker på at det ikke skal bruges med andre baser end MySQL, er der ikke noget i vejen for at bruge "update"-syntaksen til en insert. Bare min mening.
16. april 2008 - 10:07
#9
Den indsætter dato osv. Men ikke Brugernavn. Jeg prøver lige når jeg kommer hjem.
16. april 2008 - 10:11
#10
så lærte jeg også noget idag :) - kristian
16. april 2008 - 11:58
#11
Begge syntakser er som sagt ok, men fakisk kun i MySQL. Man bør normalt anvende den siste af dem, da man så nemmere kan flyye til en anden database hvis man skal.
16. april 2008 - 12:42
#12
tja, egentlig bør man definere et interface, og så realisere det for hver database, man ønsker at kunne anvende.. det er den kønneste løsning.
16. april 2008 - 15:06
#13
Hehe har ikke forstået. Hvad siger i jeg skal gøre for at den også tilføjer brugernavnet?
16. april 2008 - 15:19
#14
<? session_start(); include "database.php"; $dato = date("d.m.Y h:i"); $time = time(); $ip = $_SERVER[REMOTE_ADDR]; $besked = $_POST['besked']; $besked = mysql_real_escape_string($besked); $brugernavn = $_POST['brugernavn']; $brugernavn = mysql_real_escape_string($brugernavn); if (isset($besked) && $besked != '') { $besked = str_replace(':D','<img src="glad.gif">',$besked); $besked = str_replace(':(','<img src="ked.gif">',$besked); $besked = str_replace(':)','<img src="smiler.gif">',$besked); mysql_query("insert into gb set brugernavn = '$brugernavn', besked = '$besked', dato = '$dato', ip = '$ip'"); } ?>
16. april 2008 - 15:21
#15
Ja jakob, prøved også selv lige. Men hvad gør den der? $brugernavn = mysql_real_escape_string($brugernavn);
16. april 2008 - 15:23
#16
16. april 2008 - 15:26
#17
Ja okay. Hvordan gør jeg så sådan, at man skal fylde felterne ud før man kan tilføje, nu kan man tilføje uden at skrive navn osv.
22. april 2008 - 00:20
#18
smid svar nielle.
22. april 2008 - 06:53
#19
Skal jakobdo ikke også smide et svar?
Vi tilbyder markedets bedste kurser inden for webudvikling