Avatar billede frederikschack Nybegynder
19. juni 2005 - 23:14 Der er 5 kommentarer og
1 løsning

Method=post, poster ikke variabler

Jeg skulle lige hurtigt lave en lille side, men bliver bremset af at method=post ikke fungerer som den plejer.

Ganske vidst poster den dataene i første forsøg, men når man så forsøger at post nogle nye data, så poster den tilsyneladende dataene fra det første forsøg?!

Formularen findes på:

http://www.6k.dk/post/fejlpost_formular.php
-------------------------
<?php
session_start();
include 'viewerheader.php';
?>
<center>

<form method="get" action="fejlpost_send.php">

<table border="0">
<tr><td colspan="2"><font size=5>Formular til anmeldelse af fejl-leveret post</font><br><br></td></tr>

<tr><td colspan="2"><b>Dine oplysninger:</b></td></tr>
<tr><td>Navn<font color="#ff0000">*</font></td><td><input type="text" size="50" name="AnmelderNavn"></td></tr>
<tr><td>Adresse<font color="#ff0000">*</font></td><td><input type="text" size="50" name="AnmelderAdresse1" value="<?PHP printf($_SESSION["AnmelderAdresse1"])?>"></td></tr>
<tr><td>Adresse</td><td><input type="text" size="50" name="AnmelderAdresse2" value="<?PHP printf($_SESSION["AnmelderAdresse2"])?>"></td></tr>
<tr><td>Post nr.<font color="#ff0000">*</font></td><td><input type="text" size="50" name="AnmelderPostnr" value="<?PHP printf($_SESSION["AnmelderPostnr"])?>"></td></tr>
<tr><td>Tlf.</td><td><input type="text" size="50" name="AnmelderTlf" value="<?PHP printf($_SESSION["AnmelderTlf"])?>"></td></tr>
<tr><td>E-mail</td><td><input type="text" size="50" name="AnmelderEmail" value="<?PHP printf($_SESSION["AnmelderEmail"])?>"></td></tr>
<tr><td colspan="2"><br></td></tr>

<tr><td colspan="2"><b>Hvornår modtog du det fejlleverede brev:</b></td></tr>
<tr><td>Dato</td><td> Dag:<input type="text" size="2" name="ModtagelsesDatoDag"> Måned:<input type="text" size="2" name="ModtagelsesDatoMaaned"> År:<input type="text" size="2" name="ModtagelsesDatoAar"></td></tr>
<tr><td colspan="2"><br></td></tr>

<tr><td colspan="2"><b>Brevets modtager:</b></td></tr>
<tr><td>Navn<font color="#ff0000">*</font></td><td><input type="text" size="50" name="ModtagerNavn"></td></tr>
<tr><td>Adresse<font color="#ff0000">*</font></td><td><input type="text" size="50" name="ModtagerAdresse1"></td></tr>
<tr><td>Adresse</td><td><input type="text" size="50" name="ModtagerAdresse2"></td></tr>
<tr><td>Post nr.<font color="#ff0000">*</font></td><td><input type="text" size="50" name="ModtagerPostnr"></td></tr>
<tr><td colspan="2"><br></td></tr>

<tr><td colspan="2"><b>Brevets afsender:</b></td></tr>
<tr><td>Navn<font color="#ff0000">*</font></td><td><input type="text" size="50" name="AfsenderNavn"></td></tr>
<tr><td>Adresse<font color="#ff0000">*</font></td><td><input type="text" size="50" name="AfsenderAdresse1"></td></tr>
<tr><td>Adresse</td><td><input type="text" size="50" name="AfsenderAdresse2"></td></tr>
<tr><td>Post nr.<font color="#ff0000">*</font></td><td><input type="text" size="50" name="AfsenderPostnr"></td></tr>
<tr><td colspan="2"><br></td></tr>

<tr><td></td><td><input type="submit" name="submit" value="send"></td></tr>

</table>


</form>
</center>

<?php
include 'viewerfooter.php';
?>


Dataene sendes til:

http://www.6k.dk/post/fejlpost_send.php
-------------------------
<?php
session_start();
include 'opendb.php';

printf("posted data %s", $AnmelderNavn);
printf("<br>");

$_SESSION["AnmelderNavn"] = $AnmelderNavn;
$_SESSION["AnmelderAdresse1"] = $AnmelderAdresse1;
$_SESSION["AnmelderAdresse2"] = $AnmelderAdresse2;
$_SESSION["AnmelderPostnr"] = $AnmelderPostnr;
$_SESSION["AnmelderTlf"] = $AnmelderTlf;
$_SESSION["AnmelderEmail"] = $AnmelderEmail;

$sql="INSERT INTO Fejlpost (`AnmelderNavn`, `AnmelderAdresse1`, `AnmelderAdresse2`, `AnmelderPostnr`, `AnmelderTlf`, `AnmelderEmail`, `ModtagelsesDato`, `ModtagerNavn`, `ModtagerAdresse1`, `ModtagerAdresse2`, `ModtagerPostnr`, `AfsenderNavn`, `AfsenderAdresse1`, `AfsenderAdresse2`, `AfsenderPostnr`) VALUES ('$AnmelderNavn', '$AnmelderAdresse1', '$AnmelderAdresse2', '$AnmelderPostnr', '$AnmelderTlf', '$AnmelderEmail', '$ModtagelsesDato', '$ModtagerNavn', '$ModtagerAdresse1', '$ModtagerAdresse2', '$ModtagerPostnr', '$AfsenderNavn', '$AfsenderAdresse1', '$AfsenderAdresse2', '$AfsenderPostnr')";

if($result=mysql_query($sql))
{
  printf("Tak for din anmeldelse af fejlpost.");
  printf("<a href='http://www.6k.dk/post/fejlpost_formular.php'>Anmeld ny fejlpost</a>");
}
else
{
  printf("Fejl under anmeldelsen af fejlpost, prøv igen.");
}



include 'closedb.php';
?>
Avatar billede frederikschack Nybegynder
19. juni 2005 - 23:24 #1
I kan bare nøjes med at udfylde navne feltet for at teste det.
Avatar billede frederikschack Nybegynder
19. juni 2005 - 23:54 #2
Hmm. godnat.....
Avatar billede kourinsu Nybegynder
20. juni 2005 - 00:09 #3
Sjovt, jeg har egentlig aldrig vist, at man kunne lave print-funktionen C style i PHP :)Det vil jeg da også til at gøre, så bliver omstillingen jo ikke så svær, når man skifter.

Hvad sker der, hvis du bruger $_GET['AnmelderNavn']?
Avatar billede kourinsu Nybegynder
20. juni 2005 - 01:49 #4
Tror jeg ved hvad den præcise forklaring er:

Første gang man submitter formen, skaber den en session, der hedder $AnmelderNavn, hvilket er det samme, som din input-felt hedder. Næste gang du submitter formen printer du inholdet af din session i linjen "printf("posted data %s", $AnmelderNavn)" og ikke indholdet af dit inputfelt. Desuden overskrives AnmelderNavn af sig selv i linien "$_SESSION["AnmelderNavn"] = $AnmelderNavn;". Dvs at du egentlig sidder i en ond cirkel.

Jeg gætter på, at din server kører med register_globals på on. Dette løses ved at tilgå dine variabler med fx $_GET[''], $_POST[''] og $_SESSION['']. På den både ved du altid hvor dine variabler kommer fra.
Avatar billede frederikschack Nybegynder
06. juli 2005 - 22:13 #5
Hej, kourinsu.

Tak, smid et svar :o) Sorry for at være så sent på den.
Avatar billede kourinsu Nybegynder
08. juli 2005 - 18:49 #6
Værsgo :-)
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