Avatar billede kennedk Nybegynder
13. september 2005 - 17:05 Der er 19 kommentarer og
1 løsning

gæstebog.

Jeg har lavet to filer, skriv.php og laes.php
men hver gang jeg går ind i skriv.php så tilføjer den en række i min databse, (mysql), som er tom.
Jeg ved ikke hvordan man kan undgå det?
skriv.php:
<html>
<head><title>skriv</title></head>
<body>

<table>
<form name="skriv" method="post" action="skriv.php">
<tr><td>Navn:</td><td><input type="text" name="navn" maxlength="30" size="30"></td></tr>
<tr><td>Besked:</td><td><textarea name="tekst" rows="6" cols="25"></textarea></td></tr>
<tr><td><input type="submit" value="Send"></td><td></td></tr>
</form>
</table>
<?
$navn = $_REQUEST["navn"];
$tekst = $_REQUEST["tekst"];

include "connect.php";

mysql_query("INSERT INTO gb (id, navn, tekst) values (' ', '$navn', '$tekst')");




mysql_close();
?>


</body>
</html>

og laes.php den udskriver bare indholdet. den virker som den skal.
Avatar billede yezbarh Nybegynder
13. september 2005 - 17:13 #1
<?
include("connect.php");
$navn = $_POST["navn"];
$tekst = $_POST["tekst"];


mysql_query("INSERT INTO gb SET navn = '$navn', tekst = '$tekst'");
?>




mysql_close();
?>
Avatar billede udvikler Nybegynder
13. september 2005 - 17:13 #2
Nok fordi du har skrevet et tomt felt her:

ændre
mysql_query("INSERT INTO gb (id, navn, tekst) values (' ', '$navn', '$tekst')");

til
mysql_query("INSERT INTO gb (id, navn, tekst) values ('$navn', '$tekst')");

PS. går ud fra at id er sat til autoincrement ?
Avatar billede yezbarh Nybegynder
13. september 2005 - 17:17 #3
Hov, mente self.

<?php
include("connect.php");
$navn = $_POST["navn"];
$tekst = $_POST["tekst"];

mysql_query("INSERT INTO gb SET navn = '$navn', tekst = '$tekst'");
mysql_close();
?>
Avatar billede kennedk Nybegynder
13. september 2005 - 17:19 #4
-aco- den er sat til autoincrement.
Avatar billede udvikler Nybegynder
13. september 2005 - 17:21 #5
Jamen, så burde min kode virke :)

Har du prøvet ?
Avatar billede kennedk Nybegynder
13. september 2005 - 17:25 #6
-aco-. Nu kan den skal ikke skrive det ind i min database?:s
Avatar billede kennedk Nybegynder
13. september 2005 - 17:26 #7
og yexbarh, din kan godt skrive idn i databasen, men den laver det samme lille nummer.
Avatar billede udvikler Nybegynder
13. september 2005 - 17:29 #8
Så prøv med:

<form action="" method="POST">

<?php
include "connect.php";

mysql_query("INSERT INTO gb (tekst) VALUES ('$_POST[navn]', '$_POST[tekst]')") or die(mysql_error());
print "Beskeden blev nu gemt!";
print "<br/><br/>";
?>
Avatar billede truelz Nybegynder
13. september 2005 - 17:29 #9
Jamen... Den vil jo køre scriptet hver gang du åbner siden - også inden du har skrevet noget i felterne. PHP-scriptet skal kun køres hvis der står noget i $_POST["tekst"];.
Men det er også rigtigt, du skal bruge POST, og ikke REQUEST.
Avatar billede kennedk Nybegynder
13. september 2005 - 17:34 #10
<html>
<head><title>skriv</title></head>
<body>

<table>
<form name="skriv" method="post" action="">
<tr><td>Navn:</td><td><input type="text" name="navn" maxlength="30" size="30"></td></tr>
<tr><td>Besked:</td><td><textarea name="tekst" rows="6" cols="25"></textarea></td></tr>
<tr><td><input type="submit" value="Send"></td><td></td></tr>
</form>
</table>
<?


include "connect.php";

mysql_query("INSERT INTO gb (tekst) VALUES ('$_POST[navn]', '$_POST[tekst]')") or die(mysql_error());
print "Beskeden blev nu gemt!";
print "<br/><br/>";

mysql_close();
?>


</body>
</html>

Det den kode jeg har nu^^. men den skriver bare: Column count doesn't match value count at row 1. under textboksen :S
Avatar billede kennedk Nybegynder
13. september 2005 - 17:35 #11
Hvad er foreskellen på REQUEST og POST?
Avatar billede yezbarh Nybegynder
13. september 2005 - 17:40 #12
Intet, det har samme virkninger
Avatar billede yezbarh Nybegynder
13. september 2005 - 17:40 #13
<html>
<head><title>skriv</title></head>
<body>

<table>
<form name="skriv" method="post" action="">
<tr><td>Navn:</td><td><input type="text" name="navn" maxlength="30" size="30"></td></tr>
<tr><td>Besked:</td><td><textarea name="tekst" rows="6" cols="25"></textarea></td></tr>
<tr><td><input type="submit" value="Send"></td><td></td></tr>
</form>
</table>
<?


include "connect.php";

mysql_query("INSERT INTO gb (navn,tekst) VALUES ('$_POST[navn]', '$_POST[tekst]')") or die(mysql_error());
print "Beskeden blev nu gemt!";
print "<br/><br/>";

mysql_close();
?>


</body>
</html>
Avatar billede yezbarh Nybegynder
13. september 2005 - 17:42 #14
prøv:
<html>
<head><title>skriv</title></head>
<body>

<table>
<form name="skriv" method="post" action="?side=skriv">
<tr><td>Navn:</td><td><input type="text" name="navn" maxlength="30" size="30"></td></tr>
<tr><td>Besked:</td><td><textarea name="tekst" rows="6" cols="25"></textarea></td></tr>
<tr><td><input type="submit" value="Send"></td><td></td></tr>
</form>
</table>
<?

if ($_GET['side'] == "skriv") {
include "connect.php";

mysql_query("INSERT INTO gb (navn,tekst) VALUES ('$_POST[navn]', '$_POST[tekst]')") or die(mysql_error());
print "Beskeden blev nu gemt!";
print "<br/><br/>";

mysql_close();
}
?>


</body>
</html>
Avatar billede kennedk Nybegynder
13. september 2005 - 17:42 #15
jamen hvorfor skal det så være POST i det her tilfælde?:s
Jeg tjekker lige om det virker :)
Avatar billede truelz Nybegynder
13. september 2005 - 17:44 #16
Nu bliver jeg i tvivl, jeg skriver ikke php selv. Betyder REQUEST at det både kan være GET og POST? Så er det mig der vrøvler.
Avatar billede kennedk Nybegynder
13. september 2005 - 17:47 #17
yezbarh
Dit det virker :)
mange gange tak :)
Avatar billede yezbarh Nybegynder
13. september 2005 - 17:48 #18
Så lidt.
Her kommer et svar, og velbekomme !o]
Avatar billede udvikler Nybegynder
13. september 2005 - 18:07 #19
Sorry jeg ikke svare :)

Mit internet var nede :)
Avatar billede kennedk Nybegynder
13. september 2005 - 18:17 #20
-aco- det er barre OK :)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester