Avatar billede farhang Nybegynder
22. oktober 2006 - 21:54 Der er 18 kommentarer og
1 løsning

Validering og gemme indtastningen i form over flere sider!

Hvordan kan jeg gemme brugernes indtastninig, hvis de f.eks. glemmer at taste e-mail?

kontakt.php:

<?php
session_start();
?>
<form action="kontaktform.php" method="post">
          <table width="100%" border="0" cellspacing="0" cellpadding="0">
            <tr>
              <td height="20" width="20%"><font class="indemenu">&nbsp;Fornavn:</font></td>
              <td colspan="3" width="79%" height="20">
                <input type="text" name="Fornavn" size="22">              </td>
              <td colspan="5" height="20" width="1%"></td>
            </tr>
            <tr>
              <td colspan="9" width="100%" height="5"></td>
            </tr>
            <tr>
              <td height="20"><font class="indemenu">&nbsp;Efternavn:</font></td>
              <td colspan="3" height="20">
                <input type="text" name="Efternavn" size="22">              </td>
              <td colspan="5" height="20"></td>
            </tr>
            <tr>
              <td colspan="9" height="5"> </td>
            </tr>
            <tr>
              <td height="20"><font class="indemenu">&nbsp;Adresse:</font></td>
              <td colspan="3" height="20">
                <input type="text" name="Adresse" size="22">              </td>
              <td colspan="5" height="20"></td>
            </tr>
            <tr>
              <td colspan="9" height="5"> </td>
            </tr>
            <tr>
              <td height="20"><font class="indemenu">&nbsp;Postnr.:</font></td>
              <td colspan="3" height="20">
                <input type="text" name="Postnr" size="22" maxlength="4">              </td>
              <td colspan="5" height="20"></td>
            </tr>
            <tr>
              <td colspan="9" height="5"></td>
            </tr>
            <tr>
              <td height="20"><font class="indemenu">&nbsp;By:</font></td>
              <td colspan="3" height="20">
                <input type="text" name="By" size="22">              </td>
              <td colspan="5" height="20"></td>
            </tr>
            <tr>
              <td colspan="9" height="5"> </td>
            </tr>
            <tr>
              <td height="20"><font class="indemenu">&nbsp;Telefon:</font></td>
              <td colspan="3" height="20">
                <input type="text" name="Telefon" size="22" maxlength="8">              </td>
              <td colspan="5" height="20"></td>
            </tr>
            <tr>
              <td colspan="9" height="5"> </td>
            </tr>
            <tr>
              <td height="20"><font class="indemenu">&nbsp;Mobil:</font></td>
              <td colspan="3" height="20"><input type="text" name="Mobil" size="22" maxlength="8"></td>
              <td colspan="5" height="20">&nbsp;</td>
            </tr>
            <tr>
              <td colspan="9" height="5"> </td>
            </tr>
            <tr>
              <td height="20"><font class="indemenu">&nbsp;E-mail:</font></td>
              <td colspan="3" height="20"><font class="indemenu">
                <input type="text" name="E-mail" size="22">&nbsp;<strong>*</strong></font>              </td>
              <td colspan="5" height="20">&nbsp;</td>
            </tr>
            <tr>
              <td colspan="9" height="5"> </td>
            </tr>
            <tr>
              <td height="20"><font class="indemenu">&nbsp;Besked:</font></td>
              <td height="20" colspan="8" align="left">
                <textarea name="Besked" rows="4" cols="35"></textarea>              </td>
            </tr>
            <tr>
              <td colspan="9" height="5"> </td>
            </tr>
            <tr align="center" valign="middle">
              <td colspan="9" height="25">
                <input type="image" src="images/63.gif" onmouseover="this.src='images/27.gif'" onmouseout="this.src='images/63.gif'" value="Send" name="Send">              </td>
            </tr>
          </table>
</form>

kontaktform.php:

<?php
session_start();
?>
<?php

// Receiving variables
$pfw_ip= $_SERVER['REMOTE_ADDR'];
$Fornavn = $_POST['Fornavn'];
$Efternavn = $_POST['Efternavn'];
$Adresse = $_POST['Adresse'];
$Postnr = $_POST['Postnr'];
$By = $_POST['By'];
$Telefon = $_POST['Telefon'];
$Mobil = $_POST['Mobil'];
$Email = $_POST['E-mail'];
$Besked = $_POST['Besked'];

// Validation
if (! ereg('[A-Za-z0-9_-]+\@[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+', $Email))
{
header("refresh: 0;url=kontaktvalidering.php");
die("");

}

if (strlen($Email) == 0 )
{
header("refresh: 0;url=kontakt.php");
die("");

}
?>

kontaktvalidering.php:

<?php
session_start();
?>
<form action="kontaktform.php" method="post">
          <table width="100%" border="0" cellspacing="0" cellpadding="0">
            <tr>
              <td height="20" width="20%"><font class="indemenu">&nbsp;Fornavn:</font></td>
              <td colspan="3" width="79%" height="20">
                <input type="text" name="Fornavn" value="<?php echo $_POST['Fornavn']; ?>" size="22">
              </td>
              <td colspan="5" height="20" width="1%"></td>
            </tr>
            <tr>
              <td colspan="9" width="100%" height="5"></td>
            </tr>
            <tr>
              <td height="20"><font class="indemenu">&nbsp;Efternavn:</font></td>
              <td colspan="3" height="20">
                <input type="text" name="Efternavn" value="<?php echo $_POST['Efternavn']; ?>" size="22">
              </td>
              <td colspan="5" height="20"></td>
            </tr>
            <tr>
              <td colspan="9" height="5"> </td>
            </tr>
            <tr>
              <td height="20"><font class="indemenu">&nbsp;Adresse:</font></td>
              <td colspan="3" height="20">
                <input type="text" name="Adresse" value="<?php echo $_POST['Adresse']; ?>" size="22">
              </td>
              <td colspan="5" height="20"></td>
            </tr>
            <tr>
              <td colspan="9" height="5"> </td>
            </tr>
            <tr>
              <td height="20"><font class="indemenu">&nbsp;Postnr.:</font></td>
              <td colspan="3" height="20">
                <input type="text" name="Postnr" value="<?php echo $_POST['Postnr']; ?>" size="22" maxlength="4">
              </td>
              <td colspan="5" height="20"></td>
            </tr>
            <tr>
              <td colspan="9" height="5"></td>
            </tr>
            <tr>
              <td height="20"><font class="indemenu">&nbsp;By:</font></td>
              <td colspan="3" height="20">
                <input type="text" name="By" value="<?php echo $_POST['By']; ?>" size="22">
              </td>
              <td colspan="5" height="20"></td>
            </tr>
            <tr>
              <td colspan="9" height="5"> </td>
            </tr>
            <tr>
              <td height="20"><font class="indemenu">&nbsp;Telefon:</font></td>
              <td colspan="3" height="20">
                <input type="text" name="Telefon" value="<?php echo $_POST['Telefon']; ?>" size="22" maxlength="8">
              </td>
              <td colspan="5" height="20"></td>
            </tr>
            <tr>
              <td colspan="9" height="5"> </td>
            </tr>
            <tr>
              <td height="20"><font class="indemenu">&nbsp;Mobil:</font></td>
              <td colspan="3" height="20">
                <input type="text" name="Mobil" value="<?php echo $_POST['Mobil']; ?>" size="22" maxlength="8" >
              </td>
              <td colspan="5" height="20">&nbsp;</td>
            </tr>
            <tr>
              <td colspan="9" height="5"> </td>
            </tr>
            <tr>
              <td height="20"><font class="indemenu">&nbsp;E-mail:</font></td>
              <td colspan="3" height="20"><font class="indemenu">
                <input type="text" name="E-mail" value="<?php echo $_POST['E-mail']; ?>" size="22">&nbsp;<strong>*</strong>&nbsp;<span class="style1">Udfyld venligst!</span></font>              </td>
              <td colspan="5" height="20">&nbsp;</td>
            </tr>
            <tr>
              <td colspan="9" height="5"> </td>
            </tr>
            <tr>
              <td height="20"><font class="indemenu">&nbsp;Besked:</font></td>
              <td height="20" colspan="8" align="left">
                <textarea name="Besked" value="<?php echo $_POST['Besked']; ?>" rows="4" cols="35"></textarea>
              </td>
            </tr>
            <tr>
              <td colspan="9" height="5"> </td>
            </tr>
            <tr align="center" valign="middle">
              <td colspan="9" height="25">
                <input type="image" src="images/63.gif" onmouseover="this.src='images/27.gif'" onmouseout="this.src='images/63.gif'" value="Send" name="Send">
              </td>
            </tr>
          </table>
        </form>

Hvad er bedst at gør?
Avatar billede henninghabor Nybegynder
22. oktober 2006 - 23:16 #1
En måde du kunne gøre det på er at gemme felterne i cookies og så hente dem ind i deres respektive felter i formularen.
Avatar billede farhang Nybegynder
22. oktober 2006 - 23:34 #2
Jeg er ikke så stærk i cookies (kun til at spise dem ;-)) Kan du hjælpe mig i gang?
Avatar billede henninghabor Nybegynder
23. oktober 2006 - 00:08 #3
For hvert felt laver du en cookie på denne måde:

setcookie("feltets navn", "feltets indhold", time() + 900, "/");

900 er hvor længe cookie skal være sat. I dette tilfælde (60 sek. * 15 min) = 900 sek.

"/" sætter cookie til at blive læst på hele domænet. Du kan undlade denne hvis din filstruktur er simpel.

F. eks.:

setcookie("fornavn", $Fornavn, time() + 900, "/");
Avatar billede henninghabor Nybegynder
23. oktober 2006 - 00:09 #4
Når du skal indsætte en cookie i din formular:

<input type="text" name="Fornavn" value="<?php echo $_COOKIE["Fornavn"]; ?>" size="22">
Avatar billede henninghabor Nybegynder
23. oktober 2006 - 00:11 #5
Men da php ikke kan udskrive html før en cookie skrives eller hentes, bør du sætte denne i starten af din fil:

ob_start();
Avatar billede henninghabor Nybegynder
23. oktober 2006 - 00:13 #6
Avatar billede farhang Nybegynder
23. oktober 2006 - 16:14 #7
Hej,

Jamen, jeg har prøvet dit forslag, men det henter ikke de indtastede teksr, som brugeren har skrevet?
Avatar billede henninghabor Nybegynder
23. oktober 2006 - 17:03 #8
Hvor sætter du cookie?

Jeg ville gøre det i kontaktform.php efter "// receiving variables" afsnittet.
Avatar billede farhang Nybegynder
23. oktober 2006 - 17:21 #9
Jeg sætter det i kontakt.php og kontaktvalidering.php
Avatar billede farhang Nybegynder
23. oktober 2006 - 17:22 #10
hvor skal jeg skrive det, så det virker?
Avatar billede henninghabor Nybegynder
23. oktober 2006 - 18:10 #11
I kontaktform.php efter alle dine $_POST, men før // Validation
if (! ereg('[A-Za-z0-9_-]+\@[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+', $Email))
{
header("refresh: 0;url=kontaktvalidering.php");
die("");

}
Avatar billede farhang Nybegynder
23. oktober 2006 - 20:16 #12
Hej,

Det virker fint med kun en felt, men ikke når der er flere f.eks.:

<?php

// Receiving variables
@$pfw_ip= $_SERVER['REMOTE_ADDR'];
@$Fornavn = $_POST['Fornavn'];
@$Efternavn = $_POST['Efternavn'];
@$Adresse = $_POST['Adresse'];
@$Postnr = $_POST['Postnr'];
@$By = $_POST['By'];
@$Telefon = $_POST['Telefon'];
@$Mobil = $_POST['Mobil'];
@$Email = $_POST['Email'];
@$Besked = $_POST['Besked'];

?>
<?
setcookie("Fornavn", $Fornavn, time() + 900, "/");
setcookie("Efternavn", $Efternavn, time() + 900, "/");
setcookie("Adresse", $Adresse, time() + 900, "/");
setcookie("Postnr", $Postnr, time() + 900, "/");
setcookie("By", $By, time() + 900, "/");
setcookie("Telefon", $Telefon, time() + 900, "/");
setcookie("Mobil", $Mobil, time() + 900, "/");
setcookie("Email", $Email, time() + 900, "/");
setcookie("Besked", $Besked, time() + 900, "/");
?>
<?
// Validation
if (! ereg('[A-Za-z0-9_-]+\@[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+', $Email))
{
header("refresh: 0;url=../kontaktvalidering.php");
die("");

}

if (strlen($Email) == 0 )
{
header("refresh: 0;url=../kontakt.php");
die("");

}
Avatar billede henninghabor Nybegynder
23. oktober 2006 - 20:31 #13
Hvad mener du med ikke virker?

Får du en fejlmeddelse eller får du ikke skrevet indholdet ud?
Avatar billede farhang Nybegynder
23. oktober 2006 - 20:49 #14
Jeg får ikke udskrevet indholdet ud: http://www.designunltd.dk/la-femme/kontakt.php
Avatar billede henninghabor Nybegynder
23. oktober 2006 - 21:58 #15
Prøv at lave denne i kontaktvalidering (Lige meget hvor):

if($_COOKIE["Fornavn"])
{
  echo "COOKIE skrives";
}
Avatar billede farhang Nybegynder
24. oktober 2006 - 11:49 #16
Hvad hjælper det?
Avatar billede henninghabor Nybegynder
24. oktober 2006 - 12:12 #17
Det er for at finde ud af om cookie er blevet sat eller ej.
Avatar billede farhang Nybegynder
24. oktober 2006 - 12:34 #18
Det hjalp.

Smid et svar
Avatar billede henninghabor Nybegynder
24. oktober 2006 - 15:56 #19
Det gør jeg. :)
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