Email form met 3 pagina's

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Tymen  Wander

Tymen Wander

19/08/2014 14:57:41
Quote Anchor link
Hallo,

Ik probeer al een tijdje een email form te maken met 3 verschillende pagina's. De eerste waar je de gegevens kan invullen, tweede waar je de gegevens kan controleren en uitprinten en de derde wat een bedankt pagina is en wat de email stuurt.

Dit is de eerste pagina:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<form method="post" action="print.php">
 <ul>
                     <li>
                        <label for="achternaam">Achternaam*</label>
                <input type="text"    name="achternaam" id="achternaam" class="textfields">
        </li>
                              <li>
           <label for="naam">Voornaam*</label>
                       <input type="text"  name="naam" id="naam" class="textfields">
        </li>
              
                <li>
           <label for="pin">PIN nummer*</label>
                  <input type="text"  name="pin" id="pin" class="textfields">
        </li>

        <input type="submit" class="button" value="Verzend">
                                     <br>



      </ul>
    </form>




Dit is de tweede pagina:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
echo "<br> $naam";
echo "<br> $achternaam";
echo "<br> $pin";

Dit werkte alleen werd op de derde pagina de email niet verzonden.



En dit is de derde pagina:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?php session_start();
$achternaam = $_POST['achternaam'];
$naam = $_POST['naam'];
$pin = $_POST['pin'];
$straat = $_POST['straat'];
$huisnummer = $_POST['huisnummer'];
$postcode = $_POST['postcode'];
$plaats = $_POST['plaats'];
$email = $_POST['email'];

$to ='[email protected]';

$subject ='bestelformulier';

$body = <<<EMAIL
  Naam: $naam $achternaam
  Email: $email
  Nummer: $nummer
  Onderwerp: $onderwerp
  Bericht: $vragen
EMAIL
;

$headers = "From: [email protected]\r\n";
$headers = "Reply-to: $naam <$email>\r\n";

if ($_POST)
 {

  mail($to, $subject, $body, $headers);
  $goed = 'Bericht verzonden, we zullen zo snel mogelijk contact met u opnemen.';
    
}

?>

Deze pagina verzond de email niet.

Ik hoop dat het probleem duidelijk is en dat iemand me hiermee kan helpen.

Bvd,

Tymen
Gewijzigd op 19/08/2014 14:58:49 door Tymen Wander
 
PHP hulp

PHP hulp

23/12/2024 21:07:52
 
Obelix Idefix

Obelix Idefix

19/08/2014 21:57:51
Quote Anchor link
Tymen Wander op 19/08/2014 14:57:41:
Dit is de tweede pagina:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
echo "<br> $naam";
echo "<br> $achternaam";
echo "<br> $pin";

Dit werkte alleen werd op de derde pagina de email niet verzonden.

Dat kan nooit, alleen, de tweede pagina zijn. Met deze code kan het in ieder geval niet werken. En hoe kom je van de tweede op de 3e pagina?

Waarom maak je op de derde pagina al die variabelen aan (regel 2 t/m 9 + 11 en 13)?
Ik zou van $body een 'gewone' variabele maken. Wat zit er in $body als je die echoot?
Verder zou ik geen variabelen zonder controle / beveiliging in een mail zetten.
Waar controleer je of de mail verzonden wordt? Je gaat er nu van uit dat die verzonden wordt.
De headers van je mail lijken mij ook onjuist (http://phpwiki.santhe.nl/index.php?title=De_juiste_mailheaders)
Kijk anders eens naar swiftmailer of phpmailer, nemen je het nodige werk uit handen t.a.v. instellingen voor de mailfunctie van php.
Gewijzigd op 19/08/2014 21:58:33 door Obelix Idefix
 
Sven Thijssen

Sven Thijssen

20/08/2014 00:28:34
Quote Anchor link
Ik zou iets dergelijks doen. Bij het eerste formulier een sessie creëren voor de naam, achternaam en pin (check wel of ze veilig zijn).

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
session_start();
$_SESSION['naam'] = $_POST['naam'];
$_SESSION['achternaam'] = $_POST['achternaam'];
$_SESSION['pin']; = $_POST['pin'];
?>


Als voor de drie velden nog geen sessie gecreëerd is, dan wordt het eerste formulier weergegeven. (Let op: print.php wordt op de huidige pagina dan uitgevoerd).

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?php
if (!(isset($_SESSION['naam']) && $_SESSION['naam'] != '') || !(isset($_SESSION['achternaam']) && $_SESSION['achternaam'] != '') || !(isset($_SESSION['pin']) && $_SESSION['pin'] != '')) {
echo '<form method="post" action="">
 <ul>
                     <li>
                        <label for="achternaam">Achternaam*</label>
                <input type="text"    name="achternaam" id="achternaam" class="textfields">
        </li>
                              <li>
           <label for="naam">Voornaam*</label>
                       <input type="text"  name="naam" id="naam" class="textfields">
        </li>
              
                <li>
           <label for="pin">PIN nummer*</label>
                  <input type="text"  name="pin" id="pin" class="textfields">
        </li>

        <input type="submit" class="button" value="Verzend">
                                     <br>



      </ul>'
;
}

else{
 echo 'Controleer de velden';
 echo "<br> $naam";
 echo "<br> $achternaam";
 echo "<br> $pin";
 echo 'J email formulier (je waarden voor $naam zijn nu niet $_POST['naam'] maar $_SESSION['naam']';
}

?>
 
Obelix Idefix

Obelix Idefix

20/08/2014 11:26:28
Quote Anchor link
Waar komen de variabelen op regel 28 - 30 vandaan?
Verder zou ik consequent zijn: je gebruikt nu in de regels 27 / 31 de ene keer echo met ' en de andere keer "
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.