Verzending van formulier

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Marcel de Jong

Marcel de Jong

23/05/2014 17:59:57
Quote Anchor link
Hallo,

Ik heb een formulier gebouwd met behulp van hier
Wanneer ik het formulier verzend, wordt onderstaand script aangestuurd.
Ik krijg alleen een blanco mail (alleen mijn labels) binnen.
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
<?php
        // Mail opstellen
                $to  = '[email protected]';
                $onderwerp = 'onderhoudsverzoek';
                $bericht   = "<html><body>";
                $bericht  .= "<table rules='all' class='ff2 fs10 fc2' cellpadding='10'>";
                $bericht  .= "<tr class='ff2 fs14 fc2' ><td>Verzoek tot onderhoud: </td></tr>";
                $bericht  .= "<tr class='ff2 fs14 fc2' ><td>$nbsp;</td></tr>";
                $bericht  .= "<tr class='ff2 fs12 fc2' ><td>Afspraakgegevens:</td></tr>";
                $bericht  .= "<tr><td>Type afspraak: </td><td>".($_POST['ddlSoortOnderhoud']). "</td></tr>";
                $bericht  .= "<tr><td>Type afspraak: </td><td>".($_POST['ddlAfspraakdag'])." / ".($_POST['dllAfspraakmaand']). "</td></tr>";
                $bericht  .= "<tr class='ff2 fs14 fc2' ><td>&nbsp; </td></tr>";                
                $bericht  .= "<tr class='ff2 fs12 fc2' ><td>Voertuiggegevens: </td></tr>";                
                $bericht  .= "<tr><td>Merk voertuig: </td><td>".($_POST['txtMerk']). "</td></tr>";
                $bericht  .= "<tr><td>Model/type: </td><td>".($_POST['txtModel'])."</td></tr>";
                $bericht  .= "<tr><td>Vervaldatum APK: </td><td>".($_POST['ddlApkmaand'])." / ".($_POST['dllApkjaar'])."</td></tr>";
                $bericht  .= "<tr class='ff2 fs14 fc2' ><td>&nbsp; </td></tr>";                
                $bericht  .= "<tr class='ff2 fs12 fc2' ><td>contactgegevens: </td></tr>";                
                $bericht  .= "<tr><td>Naam: </td><td>".($_POST['txtNaam'])."</td></tr>";
                $bericht  .= "<tr><td>Adres: </td><td>".($_POST['txtAdres'])."</td></tr>";
                $bericht  .= "<tr><td>Postcode: </td><td>".($_POST['txtPostcode'])."</td></tr>";
                $bericht  .= "<tr><td>Woonplaats: </td><td>".($_POST['txtWoonplats'])."</td></tr>";
                $bericht  .= "<tr><td>Telefoonnummer: </td><td>".($_POST['txtTelefoon'])."</td></tr>";
                $bericht  .= "<tr><td>Emailadres: </td><td>".($_POST['txtEmail'])."</td></tr>";
                $bericht  .= "<tr class='ff2 fs14 fc2' ><td>&nbsp; </td></tr>";                
                $bericht  .= "<tr class='ff2 fs12 fc2' ><td>Opmerkingen: </td></tr>";                
                $bericht  .= "<tr><td>eventuele opmerkingen: </td><td>".($_POST['txtExtra'])."</td></tr>";                
                $bericht  .= "</table>";            
                $bericht  .= "</body></html>";
                $headers   = 'MIME-Version: 1.0' . "\r\n";
                $headers  .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
                $headers  .= "From: ".htmlspecialchars($_POST['txtNaam'])."\r\n";
                $headers  .= "CC: ".htmlspecialchars($_POST['txtEmail'])."\r\n";
                                    
                 mail($to, $onderwerp, $bericht, $headers);
                
                
    ?>
Gewijzigd op 23/05/2014 18:01:13 door Marcel de Jong
 
PHP hulp

PHP hulp

23/12/2024 08:23:42
 
- Ariën  -
Beheerder

- Ariën -

23/05/2014 18:13:30
Quote Anchor link
Doe een controle of er ge-POST is.
 
Peter  Flos

Peter Flos

23/05/2014 18:15:43
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
if($_SERVER['REQUEST_METHOD']=="POST"){
// Functies
}
?>

Vooruit, gelijk wat je nodig hebt. Meerdere submit buttons?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
if(isset($_POST['SubmitName'])){
// Functies
}
?>
 
Marcel de Jong

Marcel de Jong

24/05/2014 08:57:48
Quote Anchor link
De controle of het formulier ingevuld is, wordt gedaan in het formulier zelf/
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
<?php
// vanaf nu gebruiken we associatieve arrays om de <select>s te vullen!
$onderhoud = array(
    'Onderhoud' => 'Soort Onderhoud',
    'APK' => 'APK',
    'Kleine beurt' => 'Kleine beurt',
    'Grote beurt' => 'Grote beurt',
    'Kleine beurt met APK' => 'Kleine beurt met APK',
    'Grote beurt met APK' => 'Grote beurt met APK',
);


$maanden = array(
    'maand' => 'maand',
    'januari' => 'Januari',
    'februari' => 'Februari',
    'maart' => 'Maart',
    'april' => 'April',
    'mei' => 'Mei',
    'juni' => 'Juni',
    'juli' => 'Juli',
    'augustus' => 'Augustus',
    'september' => 'September',
    'oktober' => 'Oktober',
    'november' => 'November',
    'december' => 'December',
);


$dagen = array(
    'dag' => 'dag',
    '1' => '1',
    '2' => '2',
    '3' => '3',
    '4' => '4',
    '5' => '5',
    '6' => '5',
    '7' => '7',
    '8' => '8',
    '9' => '9',
    '10' => '10',
    '11' => '11',
    '12' => '12',
    '13' => '13',
    '14' => '14',
    '15' => '15',
    '16' => '16',
    '17' => '17',
    '18' => '18',
    '19' => '19',
    '20' => '20',
    '21' => '21',
    '22' => '22',
    '23' => '23',
    '24' => '24',
    '25' => '25',
    '26' => '26',
    '27' => '27',
    '28' => '28',
    '29' => '29',
    '30' => '30',
    '31' => '31'    
);

$jaren = array(
    'jaar' => 'jaar',
    '2013' => '2013',
    '2014' => '2014',
    '2015' => '2015'
);

// deze functie maakt met behulp van een opgegeven array en de standaard geselecteerde optie de HTML aan voor alle <options> van een <select>
function getOptions($array, $selected)
{

    $html = '';
    
    foreach($array as $key => $value)
    {

        $sel = '';
        if($selected == $key)
            $sel = ' selected="selected"';
        $html .= '<option value="' . $key . '"' . $sel . '>' . $value . '</option>';
    }

    
    return $html;
}


// deze functie controleert of het ingevulde goed is en geeft direct de fouten in de vorm van een array terug.
function validate(
    $ddlSoortOnderhoud,
    $txtNaam,
    $txtTelefoon,
    $txtEmail
    )
{

    $errors = array();
    
    if($ddlSoortOnderhoud== '')
        $errors[] = 'U moet het soort onderhoud nog opgeven.';
        
    if($txtNaam==' ')
        $errors[] = 'U heeft u naam nog niet opgegeven.';
    
    if($txtTelefoon==' ')
        $errors[] = 'U telefoonnummer ontbreekt, mochten we vragen hebben kunnen we u niet bereiken.';
    
                
    if(filter_var($txtEmail, FILTER_VALIDATE_EMAIL))
        $errors[] = 'U dient een GELDIG emailadres op te geven.';

    return $errors;
}



// dit is een hulpfunctie om snel de $_POST variabelen in een eigen variabele te zetten
//   en als de $_POST variabele niet bestaat dan geven we een beginwaarde.

function getPostValue($txtname, $default = '')
{

    if(isset($_POST[$txtNaam]))
        $default = $_POST[$txtNaam];
        
    return $default;
}


// initialisatie van de variabelen.
$ddlSoortOnderhoud = getPostValue('ddlSoortOnderhoud','Onderhoud');
$ddlAfspraakdag = getPostValue('ddlAfspraakdag', 'dag');
$ddlAfspraakmaand = getPostValue('ddlAfspraakmaand', 'maand');
$txtMerk = getPostValue('txtMerk');
$txtModel = getPostValue('txtModel');
$txtBouwjaar = getPostValue('txtBouwjaar');
$txtKmstand = getPostValue('txtKmstand');
$ddlApkmaand = getPostValue('ddlApkmaand', 'maand');
$ddlApkJaar = getPostValue('ddlApkJaar', 'jaar');
$txtNaam = getPostValue('txtNaam');
$txtAdres = getPostValue('txtAdres');
$txtPostcode = getPostValue('txtPostcode');
$txtWoonplaats = getPostValue('txtWooonplaats');
$txtTelefoon = getPostValue('txtTelefoon');
$txtEmail = getPostValue('txtEmail');
$txtExtra = getPostValue('txtExtra');

// eerst testen of er een POST verzoek is
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
        
    $errors = validate(
                $ddlSoortOnderhoud,
                $txtNaam,
                $txtTelefoon,
                $txtEmail
                );
    
    if(count($errors) == 0)
    {

          // Als er geen errors zijn dan gegevens opslaan of verzenden per email daarna door naar een andere pagina.
        
        header('location: mail2.php');
        exit;
    }


    // als we hier nog komen dan zijn er dus fouten en kunnen we die aan de gebruiker kenbaar maken
    echo '<ul>';
    foreach($errors as $error)
        echo '<li class="imAlign_center fc3">' . $error . '</li>';
    echo '</ul>';
}

?>

  <form action="" method="post">
   <fieldset class="alignleft">
                <h3 class="ff2 fs12 fc2">Afspraak gegevens</h3>
                <ul>
                    <li>
                        <label class="ff2 fs10 fc2" for="ddlSoortOnderhoud">Soort afspraak *</label>
                        <select id="ddlSoortOnderhoud" name="ddlSoortOnderhoud" class="ff2 fs10 fc2">
                            <?php echo getOptions($onderhoud, $ddlSoortOnderhoud); ?>
                        </select>
                    </li>
                    <li>
                        <label class="ff2 fs10 fc2" for="ddlAfspraakmaand">Gewenste datum</label>
                        <select id="ddlAfspraakdag" name="ddlAfspraakdag" class="datum_dag">
                         <?php echo getOptions($dagen, $ddlAfspraakdag); ?>
                        </select>
                        <select id="ddlAfspraakmaand" name="ddlAfspraakmaand" class="datum_maand">
                         <?php echo getOptions($maanden, $ddlAfspraakmaand); ?>
                        </select>
                        </li>
                    </ul>
                    <div class="clear"></div>
                    <h3 class="ff2 fs12 fc2">Autogegevens</h3>
                    <ul>
                    <li><label class="ff2 fs10 fc2" class="ff2 fs10 fc2" for="txtMerk">Merk</label><input type="text" id="txtMerk" name="txtMerk" value="<?php echo $txtMerk; ?>"/></li>
                    <li><label class="ff2 fs10 fc2" for="txtModel">Model/type</label><input type="text" id="txtModel" name="txtModel" value="<?php echo $txtModel; ?>" /></li>
                    <li><label class="ff2 fs10 fc2" for="txtBouwjaar">Bouwjaar</label><input type="text" id="txtBouwjaar" name="txtBouwjaar" value="<?php echo $txtBouwjaar; ?>"/></li>
                    <li><label class="ff2 fs10 fc2" for="txtKmstand">Kilometerstand</label><input type="text" id="txtKmstand" name="txtKmstand" value="<?php echo $txtKmstand; ?>"/></li>
                    <li>
                        <label class="ff2 fs10 fc2" for="ddlApkmaand">APK verloopdatum</label>
                        <select id="ddlApkmaand" name="ddlApkmaand" class="datum_maand">
                         <?php echo getOptions($maanden, $ddlApkmaand); ?>    
                        </select>
                        <select id="ddlApkJaar" name="ddlApkJaar" class="datum_jaar">
                         <?php echo getOptions($jaren, $ddlApkJaar); ?>                      
                        </select>
                    </li>
                </ul>
                <div class="clear"></div>
   </fieldset>            
            <fieldset class='alignright'>
                <h3 class="ff2 fs12 fc2">Uw gegevens</h3>
                <ul>
                    <li><label class="ff2 fs10 fc2" for="txtNaam">Naam *</label><input type="text" id="txtNaam" name="txtNaam"value="<?php echo $txtNaam; ?>" /></li>
                    <li><label class="ff2 fs10 fc2" for="txtAdres">Adres</label><input type="text" id="txtAdres" name="txtAdres" value="<?php echo $txtAdres; ?>"/></li>
                    <li><label class="ff2 fs10 fc2" for="txtPostcode">Postcode</label><input type="text" id="txtPostcode" name="txtPostcode" class="postcode"value="<?php echo $txtPostcode; ?>"/></li>
                    <li><label class="ff2 fs10 fc2" for="txtWoonplaats">Woonplaats</label><input type="text" id="txtWoonplaats" name="txtWoonplaats" value="<?php echo $txtWoonplaats; ?>"/></li>
                    <li><label class="ff2 fs10 fc2" for="txtTelefoon">Telefoon *</label><input type="text" id="txtTelefoon" name="txtTelefoon" class="telefoon" value="<?php echo $txtTelefoon; ?>"/></li>
                    <li><label class="ff2 fs10 fc2" for="txtEmail">E-mail *</label><input type="text" id="txtEmail" name="txtEmail"  value="<?php echo $txtEmail; ?>"/></li>
                    <li><label class="ff2 fs10 fc2" for="txtExtra">Extra's en/of bijzonderheden</label><textarea class="ff2 fs10 fc2" id="txtExtra" name="txtExtra" rows="6" value="<?php echo $txtExtra; ?>"/></textarea></li>
                    <li><input type="submit" id="submitButton" name="submitButton" value="Verzend formulier" /></li>
                    <small>Velden gemarkeerd met * zijn verplicht</small>
                </ul>
            </fieldset>
</form>
 
Peter  Flos

Peter Flos

24/05/2014 09:25:50
Quote Anchor link
Je verbind door met een header, maar uiteraard bestaan die POST waardes dan nietmeer. Gebruik de include functie ipv header en waarschijnlijk zal de mail dan niet blanco zijn.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php header('location: mail2.php'); ?>


vervangen door...

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php include 'mail2.php'; ?>
 
Marcel de Jong

Marcel de Jong

24/05/2014 10:27:39
Quote Anchor link
Yes, hij is nu bijna goed. nog 2 dingen die niet kloppen.
1. Ik kan 1 mijn mail programma niet direct zien van wie hij is (staat geen naam aan de mail gekoppeld)
2. Hij komt alleen bij de CC binnen en niet bij de ontvanger
Gewijzigd op 24/05/2014 10:39:01 door Marcel de Jong
 
Frank Nietbelangrijk

Frank Nietbelangrijk

24/05/2014 10:38:28
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
$to
  = '[email protected]'; // degene waar de mail naar toe verzonden moet worden
$headers  .= "From: ".htmlspecialchars($_POST['txtNaam'])."\r\n"; // afzender. Dit zou iets kunnen zijn als [email protected]
$headers  .= "CC: ".htmlspecialchars($_POST['txtEmail'])."\r\n"; // een tweede ontvanger, bijvoorbeeld jouw eigen mailadres
$headers  .= 'Reply-To: [email protected]' . "\r\n"; // op welk adres de ontvanger van de email moet antwoorden.

?>
 
Marcel de Jong

Marcel de Jong

24/05/2014 10:46:25
Quote Anchor link
Nu komt er helemaal niets binnen
 
Frank Nietbelangrijk

Frank Nietbelangrijk

24/05/2014 11:05:35
Quote Anchor link
[email protected] vervangen voor het emailadres dat in je formulier ingevuld wordt?
Heb je gezorgd dat er bij de From: een geldig email adres wordt opgegeven en dus geen naam?
heb je ook bij de spam gekeken?

wat krijg je te zien als je onderaan eens doet

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
echo $headers
?>


Kijk ook eens hier: http://phpwiki.santhe.nl/index.php/De_juiste_mailheaders
 
Marcel de Jong

Marcel de Jong

24/05/2014 11:20:38
Quote Anchor link
de headers worden netjes geechod, De email adressen kloppen.

Lijkt net of de mail geblokkeerd word
Gewijzigd op 24/05/2014 11:21:01 door Marcel de Jong
 
Frank Nietbelangrijk

Frank Nietbelangrijk

24/05/2014 11:41:09
Quote Anchor link
Ja maar als je die headers niet laat zien kunnen wij je niet helpen. plak het gewoon even in je editor en wijzig de adressen die je niet openbaar wilt hebben even in iets anders en kopieer het en plak het eens hier.
 
Marcel de Jong

Marcel de Jong

24/05/2014 11:44:34
Quote Anchor link
Hier is het hele 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
    <?php
        // Mail opstellen
                $to  = 'mijn mail'; // degene waar de mail naar toe verzonden moet worden
                $onderwerp = 'onderhoudsverzoek';
                $bericht   = "<html><body>";
                $bericht  .= "<table rules='all' cellpadding='10'>";
                $bericht  .= "<tr class='ff2 fs14 fc2' ><td>Verzoek tot onderhoud: </td></tr>";
                $bericht  .= "<tr class='ff2 fs14 fc2' ><td>$nbsp;</td></tr>";
                $bericht  .= "<tr class='ff2 fs12 fc2' ><td>Afspraakgegevens:</td></tr>";
                $bericht  .= "<tr><td class='ff2 fs10 fc2 fb0'>Type afspraak: </td><td>".($_POST['ddlSoortOnderhoud']). "</td></tr>";
                $bericht  .= "<tr><td>Datum afspraak: </td><td>".($_POST['ddlAfspraakdag'])." / ".($_POST['ddlAfspraakmaand']). "</td></tr>";
                $bericht  .= "<tr class='ff2 fs14 fc2' ><td>&nbsp; </td></tr>";                
                $bericht  .= "<tr class='ff2 fs12 fc2' ><td>Voertuiggegevens: </td></tr>";                
                $bericht  .= "<tr><td class='ff2 fs10 fc2 fb0'>Merk voertuig: </td><td>".($_POST['txtMerk']). "</td></tr>";
                $bericht  .= "<tr><td class='ff2 fs10 fc2 fb0'>Model/type: </td><td>".($_POST['txtModel'])."</td></tr>";
                $bericht  .= "<tr><td>Vervaldatum APK: </td><td>".($_POST['ddlApkmaand'])." / ".($_POST['ddlApkJaar'])."</td></tr>";
                $bericht  .= "<tr class='ff2 fs14 fc2' ><td>&nbsp; </td></tr>";                
                $bericht  .= "<tr class='ff2 fs12 fc2' ><td>contactgegevens: </td></tr>";                
                $bericht  .= "<tr><td>Naam: </td><td>".($_POST['txtNaam'])."</td></tr>";
                $bericht  .= "<tr><td>Adres: </td><td>".($_POST['txtAdres'])."</td></tr>";
                $bericht  .= "<tr><td>Postcode: </td><td>".($_POST['txtPostcode'])."</td></tr>";
                $bericht  .= "<tr><td>Woonplaats: </td><td>".($_POST['txtWoonplaats'])."</td></tr>";
                $bericht  .= "<tr><td>Telefoonnummer: </td><td>".($_POST['txtTelefoon'])."</td></tr>";
                $bericht  .= "<tr><td>Emailadres: </td><td>".($_POST['txtEmail'])."</td></tr>";
                $bericht  .= "<tr class='ff2 fs14 fc2' ><td>&nbsp; </td></tr>";                
                $bericht  .= "<tr class='ff2 fs12 fc2' ><td>Opmerkingen: </td></tr>";                
                $bericht  .= "<tr><td>eventuele opmerkingen: </td><td>".($_POST['txtExtra'])."</td></tr>";                
                $bericht  .= "</table>";            
                $bericht  .= "</body></html>";
                $headers   = 'MIME-Version: 1.0' . "\r\n";
                $headers  .= "From: ".htmlspecialchars($_POST['txtEmail'])."\r\n"; // afzender. Dit zou iets kunnen zijn als [email protected]
                $headers  .= "CC: ".htmlspecialchars($_POST['txtEmail'])."\r\n"; // een tweede ontvanger, bijvoorbeeld jouw eigen mailadres
                $headers  .= 'Reply-To: mijn mail' . "\r\n"; // op welk adres de ontvanger van de email moet antwoorden.

                                    
                 mail($to, $onderwerp, $bericht, $headers);
                
                
                
    ?>
 
- SanThe -

- SanThe -

24/05/2014 11:47:59
Quote Anchor link
De headers zijn niet correct.

Zie:
Frank Nietbelangrijk op 24/05/2014 11:05:35:
Gewijzigd op 24/05/2014 11:48:36 door - SanThe -
 



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.