Avatar billede farhang Nybegynder
11. oktober 2006 - 20:27 Der er 8 kommentarer og
1 løsning

Php-formular og validering!

Hej,

Jeg har lavet et kontakt formular med validering, som kører gennem følgende sider:

Kontakt.php med en include, kontaktinclude.php:

<form action="includes/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="" value="Send" name="Send">
              </td>
            </tr>
          </table>
        </form>

Kontaktform.php:

<?php

// Receiving variables
@$pfw_ip= $_SERVER['REMOTE_ADDR'];
@$Fornavn = addslashes($_POST['Fornavn']);
@$Efternavn = addslashes($_POST['Efternavn']);
@$Adresse = addslashes($_POST['Adresse']);
@$Postnr = addslashes($_POST['Postnr']);
@$By = addslashes($_POST['By']);
@$Telefon = addslashes($_POST['Telefon']);
@$Mobil = addslashes($_POST['Mobil']);
@$Email = addslashes($_POST['E-mail']);
@$Besked = addslashes($_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("");

}

//Sending Email to form owner
$pfw_header = "From: $Email\n"
  . "Reply-To: $Email\n";
$pfw_subject = "Besked til xxxxx";
$pfw_email_to = "mail@e-mail.dk";
$pfw_message = "Visitor's IP: $pfw_ip\n"
. "Fornavn: $Fornavn\n"
. "Efternavn: $Efternavn\n"
. "Adresse: $Adresse\n"
. "Postnr: $Postnr\n"
. "By: $By\n"
. "Telefon: $Telefon\n"
. "Mobil: $Mobil\n"
. "Email: $Email\n"
. "Besked: $Besked\n";
@mail($pfw_email_to, $pfw_subject ,$pfw_message ,$pfw_header ) ;

//Sending auto respond Email to visitor
$pfw_header = "From: mail@e-mail.dk\n"
  . "Reply-To: mail@e-mail.dk\n";
$pfw_subject = "Tak for deres besked!";
$pfw_email_to = "$Email";
$pfw_message = "Kære $Fornavn,\n"
. "\n"
. "Tak for beskeden. Vi vil tage kontakt til dig indenfor 24 timer for at besvarer dig besked. \n"
. "\n"
. "Du er selvfølgelig velkommen til at tage kontakt til os i mellemtiden. \n"
. "\n"
. "\n"
. "Med venlig hilsen/Kind Regards\n"
@mail($pfw_email_to, $pfw_subject ,$pfw_message ,$pfw_header ) ;

header("refresh: 0;url=../kontakttak.php");
?>

hvis man glemmer at taste e-mail-adresse, så bliver man sendt til kontaktvalidering.php med include kontaktreinclude.php, men så skal brugerne taste alt forfra? Hvordan kan man lave en session, så brugeren kan undgå at gentaste?

kontaktreinclude.php:
<link href="library/fonts.css" rel="stylesheet" type="text/css" />
<style type="text/css">
<!--
.style1 {color: #FF0000}
-->
</style>
<form action="includes/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>&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" 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="" value="Send" name="Send">
              </td>
            </tr>
          </table>
        </form>

Kan nogen hjælpe?
Avatar billede challenge Praktikant
11. oktober 2006 - 20:42 #1
Sæt en Session i value på alle dine felter.

hurtige eksempel, uden at skrive dem alle:
<input type="text" name="Mobil" size="22" maxlength="8" value="<?php echo $_SESSION["mobil"]; ?>">

Derefter skal du adde dine POST-informationer.
$_SESSION["mobil"] = $mobil;

Husk at "clere" alle dine Sessions, efter brug, altså nederst i kontaktreinclude.php
$_SESSION["mobil"] = "";

Håber at det er forståeligt :)
Avatar billede farhang Nybegynder
11. oktober 2006 - 20:53 #2
Hvad med med min kontaktform.php mellem disse to sider?
Avatar billede farhang Nybegynder
11. oktober 2006 - 22:42 #3
Hvordan clere'er man?
Avatar billede mixeren Nybegynder
12. oktober 2006 - 00:53 #4
Clere må være det samme som slette/nulstille.

$_SESSION['mobil'] = "";

Sætter session variablen til nul.
Avatar billede farhang Nybegynder
12. oktober 2006 - 10:43 #5
tak, smid et svar.
Avatar billede farhang Nybegynder
12. oktober 2006 - 11:08 #6
Jamen, jeg har jo includet begge mine formular ind i mine sider, mellem de to sidder har jeg min valideringsscript. Hvordan kan jeg få dataene med hele vejen?
Avatar billede challenge Praktikant
12. oktober 2006 - 16:39 #7
Dine informationer ligger i sessionen.
Din session "følger dig" hele tiden, med mindre du lukker din browser, eller "clear'er" dem.
Avatar billede farhang Nybegynder
12. oktober 2006 - 17:30 #8
tak
Avatar billede challenge Praktikant
12. oktober 2006 - 19:59 #9
Tak for point :)
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