Skriver ikke data til databasen

Tags:    php

Hej. Er helt ny her og ny i PHP.

Har dowloaded gæstebog programmet fra "Start på PHP" hæftet.

Database og 2 rækker data er oprettet direkte i comtrolpanelet hos min udbyderen.

Når programmet startes hos udbyderen viser browseren en input form samt de 2 rækker data.

Ved submit af yderligere form data sker der ikke noget, data bliver ikke skrevet ned i databasen??

Jeg kan ikke finde fejlen.
Enhver hjælp er meget velkommen.

-----------------------------------
Her er programmet:

<HTML>
<HEAD><TITLE>Min gæstebog</TITLE></HEAD>
<BODY>
<?
$username = "xxxxx";
$password = "xxxxx";
$host="xxxxxxxx.xxxxxxxxxxxx.com";

$db = mysql_connect($host,$username,$password);

mysql_select_db("gaest", $db);

if($skriv){
$besked = str_replace("\n", "<BR>", $besked);
$dato_array = getdate();
$dato = $dato_array["mday"] . "/" . $dato_array["mon"] . "-" . $dato_array["year"];
mysql_query("INSERT INTO bog (navn, email, dato, besked) VALUES ('$navn', '$email', '$dato', '$besked')");
}


?>
<CENTER>
<FORM METHOD=POST ACTION="gbog.php">
<INPUT TYPE=hidden NAME=skriv VALUE=1>
navn: <INPUT TYPE=text NAME=navn><BR>
email: <INPUT TYPE=text NAME=email><BR>
<TEXTAREA NAME=besked COLS=30 ROWS=5></TEXTAREA><BR>
<INPUT TYPE=submit VALUE="send">
</FORM>
<BR><BR>
<TABLE>
<?
$foresp = mysql_query("SELECT navn, email, dato, besked FROM bog ORDER BY nr DESC");
while($data = mysql_fetch_row($foresp)){
echo "<TR><TD VALIGN=TOP>";
echo "fra: <A HREF=\"mailto:$data[1]\">$data[0]</A>";
echo "<BR>$data[2]";
echo "</TD><TD VALIGN=TOP>$data[3]</TD></TR>";
}
?>
</TABLE>
</CENTER>
</BODY>
</HTML>



8 svar postet i denne tråd vises herunder
3 indlæg har modtaget i alt 3 karma
Sorter efter stemmer Sorter efter dato
Hedder din fil gbog.php?



Hvor er det utroligt ærgeligt at sådan en bog ikke tager forbehold for fejl.

Erik, du bør altid have en form for fejlreportering ved fejl under forbindelse til database serveren, valg af database samt ved indsættelse af data.

Dette gøres ved brug af "or die (mysql_error());"

Du kan bruge dette efter mysql_connect, mysql_select_db og mysql_query.

På den måde udskriver php automatisk en fejl meddelelse hvis tingene ikke kan eksekveres.

med din kode vil du ex. få:
Fold kodeboks ind/udKode 


Prøv det og se om ikke den kommer med en fejl :)

phps dokumentation til mysql_error() http://dk.php.net/mysql_error



problemet er at dine variabler hedder noget forkert. For at hente postede data skal du kalde POST-arrayet. Så fx istedet for $skriv skal du kalde $_POST['skriv'] - på den måde ved PHP hvor dataene kommer fra.

Hele dette stykke:
Fold kodeboks ind/udPHP kode 


skal således omskrives til
Fold kodeboks ind/udPHP kode 




Indlæg senest redigeret d. 16.03.2009 09:14 af Bruger #8223
Til Morten

Hedder din fil gbog.php?


ja



Tak Ken, prøver med error- output i aften.
Erik



<problemet er at dine variabler hedder noget <forkert. For at hente postede data skal du <kalde POST-arrayet. Så fx istedet for $skriv <skal du kalde $_POST['skriv'] - på den måde <ved PHP hvor dataene kommer fra.

huha, den kode jeg har kopieret stammer fra et hæfte = "Start på PHP" anno 2001.

CGI , som det vist hedder, bliver ændret i aften.

Erik




programmet virker nu. Tak for hjælpen.




Erik: Super :)



t