08. november 2005 - 01:51Der er
23 kommentarer og 1 løsning
kan ikke oprette i tabel
Jeg er ved at lave en gæstebog i Php og jeg kan ikke sende til tabel. Jeg kan ikke finde ud af hvori fejlen ligger ? Min connetionstring skulle være iorden, for når jeg opretter et indslag i selve databasen, kan det godt ses på min webside. Den del af koden som jeg håber/tror fejlen ligger i er således
Du kan få evt. fejl meddelelser udskrevet sådan her: mysql_query("INSERT INTO bog (navn, email, dato, besked) VALUES ('$navn', '$email', '$dato', '$besked')") or die(mysql_error());
jo jeg oprettede det også igår, men bad en admin lukke det, da der var fejl i ... og så kan det jo være svært at finde den rigtige fejl :-) ..... jeg prøver lige det du skrev.
det har jeg prøvet nu. Men der kommer ikke nogen fejlmeddelelse ? Man kan skrive gæstebogsindslaget og sende det, men det kommer aldrig på siden med gæstebogsindslag.
nej det kommer aldrig til tabellen, hvorimod hvis jeg går ind i tabellen og opretter noget data under de forskellige felter, kommer det fint på min side som et gæstebogsindslag.
kan det være min webhotel udbyder, der ikke har åbnet en port dertil ? ( er noget af en rookie på det herområde, så håber ikke det var et dumt spørgsmål )
hov håber ikke du misforstod .... det var kun ved if ($skriv){ echo "Inde i if"; .... } at der kom en blank side, når jeg flettede det ind. Den anden kode, der var dog ikke nogen ændring i forhold til først.
Jeg kan ikke umiddelbart se nogen fejl i det du lige har skrevet. Men hvis B-one har slået register globals fra (som jeg mener og håber de har) så kan du ikke længere kode som du tidligere har gjort. Når du laver en form med et element du kalder "skriv", ligger væriden af denne ikke længere i $skriv, men derimod i $_POST['skriv'] og $_REQUEST['skriv'].
$_POST indeholder alle værdier sendt med "post" (som jeg kan se i din form at du også benytter). $_GET indeholder alle get værdier (altså det der ligger på query stringen) og $_REQUEST er $_POST og $_GET sammen.
Hvis jeg var dig ville jeg bare bruge $_POST og $_GET da de også virker selvom scriptet kører med register globals slået til. Der er næsten ingen mennesker der koder med register globals, da det har en tendens til at gøre koden usikker.
okay .... men jeg er stadig ikke helt sikker på hvordan koden skal se ud ? hvad skal $_POST og $_GET erstatte i koden ? eller endnu bedre ... hvordan skal koden så se ud ? :-)
Det var jo netop det jeg skrev til dig. Jeg har lige checket koden og der er ingen syntax fejl i. Har du undersøgt hvor langt du kommer i koden. Det kan du vel gøre ved at sætte print statements ind i koden som her:
bromer .... jeg har fundet ud af at det var det med register globals, og har derfor også rettet det nu. Kan du kort forklare hvad fordelen/ulempen er ved at ha det on/off ? .... og uanset om du kan eller ej, kan du så ikke lige sende et svar, så du kan få dine velfortjente points ? Du skal ha mange tak for hjælpen :-)
Man bør aldrig kode med register globals slået til, det hører til fortiden. Et praktisk argument er også at man som regl ikke kan finde steder at hoste sine ting, der har slået det til.
En af grundene til det er ikke er sikkert er at jeg kan smide variabler ind i dit script uden at du er klar over det ved at kalde script.php?var=value. Derefter vil $var jo have væriden value, og hvis du rent faktisk benytter en variabel der hedder det kan det give problemer hvis man ikke har været opmærksom.
Når du koder med register globals fra vil dette ikke ske man mere manuelt skal vide at nu vil man have fat i noget eksternt idet man går gennem $_GET og $_POST.
he he .... jeg kan sgu stadig ikke finde ud af hvor det er jeg skal bruge $_POST og $_GET :-( ... fandt ud af det med register globals, ved at jeg ændrede det far off til on ...
Du skal bruge $_GET/$_POST på sendt data (form data, addr. bar).
$_POST skal bruges når det er tale om en form af typen post. $_GET skal bruges når det er en form af typen get (en form er get hvis andet ikke er defineret), og når værdien kommer fra addr. baren, som fx. ved links (side.php?id=123).
Register globals påvirker også $PHP_SELF, som er en server variabel, og skal hentes med server præfiks: $_SERVER['PHP_SELF']
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.