Mail functie

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Tom Vos

Tom Vos

10/10/2015 15:40:48
Quote Anchor link
Hoi allemaal!

Ik ben bezig met een website, en wil een php mail functie erin zetten.
Ik heb een site gemaakt met een form (html), en een php bestand met de codes van php.
Het probleem is: als ik de form invul, word ik op een lege pagina gegooit, en krijg geen mail binnen.

Het zou fijn zijn als iemand een oplossing heeft!

Groetjes, Tom Vos


Ik heb dit:

HTML:
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
<p><?php echo $feedback ?></p>

<form action="php/order.php" method="post">
    <ul>
        <li>
            <label for="name">Achternaam: </label>
            <input type="text" name="name" id="name" />
        </li>
        <li>
            <label for="email">Email:</label>
            <input
        </li>
        <li>
            <label for="order">Bestelling:</label>
            <textarea id="order" name="order" cols="42" rows="9"></textarea>
        </li>
        <li><input type="submit" name="submit" value="Plaats Uw Bestelling" /></li>
    </ul>
</form>


PHP:
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
<?php
$to
= '[email protected]';
$subject = 'bestelling';

$name = $_POST['name'];
$order = $_POST['order'];

$body = <<<email

Bestelling op naam van: $name

Bestelling:
$order

email
;

$header = "From: $name";

if($_POST){
    if($name == '' || $order == ''){
    }
else{
    mail($to, $subject, $body, $header);
    $feedback = 'Dank u wel voor uw bestelling. U kunt uw bestelling over +/- 30 min ophalen.';
    }
}

?>

- Aar -:
Gelieve in het vervolg bij code de [code][/code]-tags gebruiken.
Hier kan je meer lezen over de mogelijke opmaakcodes.
Alvast bedankt!
Gewijzigd op 10/10/2015 15:43:00 door - Ariën -
 
PHP hulp

PHP hulp

24/04/2024 03:14:06
 
- Ariën  -
Beheerder

- Ariën -

10/10/2015 15:47:51
Quote Anchor link
Na lijn 20 volgt er geen echo of functie, en wordt er niks uitgevoerd als die die waardes leeg zijn.

Wel zie ik dit aan errors, hoewel ze het script niet laten stoppen:
Quote:
Notice: Undefined index: name in /in/vNmGK on line 5
Notice: Undefined index: order in /in/vNmGK on line 6

Dit houdt in dat je niet controleert of iets verstuurd is via POST als formulier. Dit kan eenvouding met deze constructie:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
if($_SERVER['REQUEST_METHOD']=="POST") {
    // het forumlier is via POST verstuurd, en vanaf dit punt kan je de validatie uitvoeren en daarna de nodige acties.
} else {
    // het formulie ris niet verstuurd. Desgewenst kan je in deze stap een formulier tonen, of deze 'else' vergeten.
}

?>


Verder mist er een echo om het bericht te tonen.
Gewijzigd op 10/10/2015 15:49:10 door - Ariën -
 
- SanThe -

- SanThe -

10/10/2015 15:50:04
Quote Anchor link
Waar zou $feedback vandaan moeten komen in deze regel?
echo $feedback

In jouw html staat:
<label for="email">Email:</label>
<input
En waar is de rest van de input?

Je checked niet of er wel gepost is.
je mail is gevoelig voor hackers/spammers omdat je niks controleert/beveiligt.
Je header van de mail is onjuist.
http://phpwiki.santhe.nl/index.php?title=De_juiste_mailheaders
Gewijzigd op 10/10/2015 15:51:53 door - SanThe -
 
Marthijn Buijs

Marthijn Buijs

10/10/2015 16:02:46
Quote Anchor link
Als ik jouw was zou ik gebruik maken van PHPmailer.

Hiermee kan je gemakkelijk e-mails versturen zonder over de headers na te denken.
Ook is het niet moeilijk om meer dan één e-mails te versturen in één keer.
 

10/10/2015 16:03:08
Quote Anchor link
Gebruik PHPmailer Tom. Dit maakt alles veel dynamischer en makkelijker.
 



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.