2 actions in 1 formulier

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Mark Liebregts

Mark Liebregts

25/07/2011 14:30:51
Quote Anchor link
Beste,

Ik heb een formulier die naar een php file refereert omdat de gegevens die ik in dat formulier invul in mijn mailbox terecht moet komen, dit werkt met een action="aanvraag.php"

Nu heb ik van internet een captcha gevonden die ik in dat formulier wil inbrengen.
Nu zit daar een check op en die verwijst weer naar write.php
Nu moet dus het formulier 2 actions pakken, de eerste om het ingevulde naar de mail te krijgen en 1 om de captcha te checken. Nu werkt de captcha niet als ik iets fout intype. Ik heb getracht het "write.php" onder de EOD te zetten maar daarop gaf hij ook een foutmelding.

Heeft iemand een idee hoe ik dit kan oplossen? Ik denk dat er een makkelijke oplossing is maar die heb ik nog niet gevonden.
Wellicht kan ik 2 formulieren maken, maar of dat werkt..

<form action="aanvraag.php"</form> (hier de mailform in)
<form action="write.php"</form> <hier de captcha in)
 
PHP hulp

PHP hulp

22/12/2024 18:44:00
 
- Ariën  -
Beheerder

- Ariën -

25/07/2011 14:38:29
Quote Anchor link
Je kan het beste de acties samenvoegen tot 1 bestand.
 
Ozzie PHP

Ozzie PHP

25/07/2011 14:51:14
Quote Anchor link
Je kunt het bestand write.php ook includen in aanvraag.php. Je zet dan bovenin aanvraag.php:

include 'write.php';
 
Mark Liebregts

Mark Liebregts

25/07/2011 16:38:17
Quote Anchor link
Er zit ook een EOD in het aanvraag script.
Wanneer alles is ingevuld geeft hij een pagina weer waarin ik iets bevestig.

Ik wil eigenlijk dat hij gaat kijken of alles wat ik wil is ingevuld en of de captcha code goed is. Als dat klopt moet hij een pagina openen en als de captcha niet goed is een andere pagina openen.

Wanneer ik de include invoeg doet hij het niet, ook niet als ik de include tussen de EOD zet.

Dit is het aanvraag script:

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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
<?php

include 'write.php';
 
 /* Subject and Email Variables */

    $emailSubject = 'Aanvraag proef PDF';
    $webMaster = '[email protected]';
    
/* Gathering Data Variables */

    $kaartField = $_POST['kaart'];
    $naamField = $_POST['naam'];
    $adresField = $_POST['adres'];
    $postcodeField = $_POST['postcode'];
    $woonplaatsField = $_POST['woonplaats'];
    $telnoField = $_POST['telno'];
    $emailField = $_POST['email'];
    $uitgerekendField = $_POST['uitgerekend'];
    $naamkidsField = $_POST['naamkids'];
    $geslachtField = $_POST['geslacht'];
    $trouwdatumField = $_POST['trouwdatum'];
    $tekstField = $_POST['tekst'];
    $gevondenField = $_POST['gevonden'];
    
    $body = <<<EOD
    
<br><hr><br>
Aangevraagd kaartje: $kaartField <br>
Naam: $naamField <br>
Adres: $adresField <br>
Postcode: $postcodeField <br>
Woonplaats: $woonplaatsField <br>
Telefoonnummer: $telnoField <br>
Email: $emailField <br>
Uitrekendatum: $uitgerekendField <br>
Naam kind: $naamkidsField <br>
Geslacht: $geslachtField <br>
Datum trouwen/adoptie/geboorte: $trouwdatumField <br>
Tekst: $tekstField <br>
Naam gevonden: $gevondenField <br>
EOD
;

    $headers = "From: $emailField\r\n";
    $headers .= "Content-type: text/html\r\n";
    $success = mail ($webMaster, $emailSubject, $body, $headers);
    
/* Results rendered as HTML */

    $Resultaat = <<<EOD

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Bedankt</title>

</head>

<body>
<div>
<div align="left">Bedankt voor uw bestelling. Binnenkort ontvangt u de proefdruk in uw mailbox.</div><br />
<div align="left"><a href="http://www.flinth-design.nl">Terug naar de hoofdpagina.</a></div>
</div>
</body>
</html>

EOD
;

echo "$Resultaat";
?>


en hier het write script:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
session_start();
if (md5($_POST['norobot']) == $_SESSION['randomnr2'])
{
// plaats hier php code voor geslaagde captcha
echo "Bedankt voor uw bestelling. Binnenkort ontvangt u de proefdruk in uw mailbox.
"
;
}

else
{ // plaats hier php code voor gefaalde captcha
echo "U hebt een foutieve code ingevoerd, probeer het opnieuw.";
}

?>


Deze 2 wil ik samenvoegen in een formulier die ergens anders staat.
 
Joren de Wit

Joren de Wit

25/07/2011 16:46:12
Quote Anchor link
Begin bij de basis, dus bij het afhandelen en valideren van de input uit het formulier. Bijvoorbeeld aan de hand van dit script.

Als je alle input gevalideerd hebt, en dus ook gecontroleerd hebt of de captcha goed is ingevuld, ga je verder werken met de input. In jouw geval dus het versturen van de e-mail en het weergeven van de succes pagina.
 



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.