Database- formular medd sessions

Tags:    php

Jeg har oprettet følgende formularer til indtastning i min database.
Jeg vil vise brugeren hvad han har indtastet inden databasen opdateres. Problemet er, at de indtastede data ikke indsættes i databasen. (der kommer en tom post).

<html>
<head>
</head>
<BODY>
<form method="POST" action="kart.php">
Fornnavn:<input type="text" name="first"><br>
Efternavn:<input type="text" name="last"><br>
E-mail:<input type="text" name="email"><br>
<input type="submit" name="submit" value=" Indtast oplysninger"></FORM>
</BODY>
</HTML>

formular kart.php:

<?php
session_start();
echo"Dette er hvad der indtastet: ";
print "Fornavn: $first<br>";
print "Efternavn: $last<br>";
print "Email : $email<br>";
print "Er det OK?";
$postfirst =$_POST[first];
$postlast = $_POST[last];
$postemail = $_POST[email];
?>
<form method="POST" action="<? echo $PHP_SELF; ?> ">
<input type="submit" name="ok" value="Ja"><br>
<input type="button" value=" Nej " onclick="self.close()">
</form>
<?php
if ($ok == "Ja"){
$db = mysql_connect("localhost", "root","");
mysql_select_db("kartotek",$db);

$sql = "INSERT INTO kartkort (first,last,email) VALUES('$postfirst', '$postlast','$postemail')";
$result = mysql_query($sql) or die(mysql_error());
echo "Tak for dine oplysninger.\\n"; }
?>



8 svar postet i denne tråd vises herunder
5 indlæg har modtaget i alt 5 karma
Sorter efter stemmer Sorter efter dato
Så kan jeg desværre ikke hjælpe dig..

[Redigeret d. 15/02-05 22:31:47 af Henrik Nielsen]



For det første så skal du tage at læse
http://dk.php.net/manual/en/reserved.variables.php
både _GET og _POST
http://dk.php.net/manual/en/security.globals.php
http://dk.php.net/manual/en/faq.misc.php#faq.misc.registerglobals

For det andet, du kan ikke sende det samme indhold to gange, så skal du evt. putte alt indeholdet i nogle input type hidden felter for at sende dem igen.

Mvh Bob



tror nok det skal være

$postfirst =$_POST['first'];
$postlast = $_POST['last'];
$postemail = $_POST['email'];


-----------------------------------------------------------------------------

Min side ->www.the-hive.dk/~donp/



Har ingen idé om det dur

<html>
<head>
</head>
<BODY>
<form method="POST" action="kart.php">
Fornnavn:<input type="text" name="first"><br>
Efternavn:<input type="text" name="last"><br>
E-mail:<input type="text" name="email"><br>
<input type="submit" name="submit" value=" Indtast oplysninger"></FORM>
</BODY>
</HTML>

formular kart.php:

<?php
session_start();
echo"Dette er hvad der indtastet: ";
print "Fornavn: {$_POST['first']}<br>";
print "Efternavn: {$_POST['last']}<br>";
print "Email : {$_POST['email']}<br>";
print "Er det OK?";
?>

<form method="POST" action="<? echo $PHP_SELF; ?> ">
<input type="submit" name="ok" value="Ja"><br>
<input type="button" value=" Nej " onclick="self.close()">
<input type="hidden" name=first value=<? echo "{$_POST['first']}"; ?>"
<input type="hidden" name=last value=<? echo "{$_POST['last']}"; ?>"
<input type="hidden" name=email value=<? echo "{$_POST['email']}"; ?> "
</form>

<?php
if ($ok == "Ja"){
$db = mysql_connect("localhost", "root","");
mysql_select_db("kartotek",$db);

$sql = "INSERT INTO kartkort (first,last,email) VALUES('{$_POST['first']}', '{$_POST['last']}','{$_POST['email']}')";
$result = mysql_query($sql) or die(mysql_error());
echo "Tak for dine oplysninger.\\n"; }
?>



Hej.
som jeg kan se så prøver du at overføre nogle variabler..
til dette kan bruges koden her.
Fold kodeboks ind/udKode 

Har du problem smid en besked



I starten af dit script skriver du:

Fornnavn:<input type="text" name="first">

Der er en lille fejl der, jeg mener du ville have at der skulle stå fornavn og ikke fornnavn.

Så jeg ville skrive:

Fornavn:<input type="text" name="first">

hehe ;).

M.V.H
Henrik

[Redigeret d. 15/02-05 22:27:37 af Henrik Nielsen]



Ja - det er en fejl - men den er uden betydning i denne sammenhæng.



En anden ting er dit lille javascript der lukker vinduet.
Du burde skrive window.close() i stedet for self.close()
"self" refererer til det aktuelle dokument, mens "window" er hele vinduet.

Hvis vinduet ikke er et popup vindue genereret af javascript, vil internet explorer spørge om det skal lukkes.
Du kan bruge window.close(0) (mener jeg) og vinduet vil lukke ligemeget hvad...

Edit:
Kan godt være at det er window.close(1)

kan jeg ikke huske..

[Redigeret d. 16/02-05 00:42:27 af Jeppe Dyrby]



For det første så skal du tage at læse
http://dk.php.net/manual/en/reserved.variables.php
både _GET og _POST
http://dk.php.net/manual/en/security.globals.php
http://dk.php.net/manual/en/faq.misc.php#faq.misc.registerglobals

For det andet, du kan ikke sende det samme indhold to gange, så skal du evt. putte alt indeholdet i nogle input type hidden felter for at sende dem igen.

Mvh Bob



Såvidt jeg kan se er der tale om, hvordan register globals skal sættes. Jeg kører med PHP 4.0.3 og mener derfor den skal sættes til OFF.
Er der nogen der kan vise mig hvordan jeg skal tilrette mit program (udover de ting der ER nævnt)?



t