Mailform

Status
Niet open voor verdere reacties.

JoHoDrivers

Gebruiker
Lid geworden
3 aug 2009
Berichten
13
Hier weer een vraagje. (ben blij met dit forum, want ik word hier goed geholpen)

Hieroder het PHP script wat op mijn site draait (www.education-smiling-nation.com)

Ik wil graag dat al het formulier ingevuld is en de gebruiker verzend het dat ze naar een andere pagina gaan. De start pagina ofzo. Nu krijgen ze op een wit scherm een korte tekst te zien die ik in het script heb geschreven. Weet iemand hoe ik dit kan doen.

Dan nog een 2de vraag.
Ik wil ook graag in het bedankt mailtje wat ze krijgen dat hun naam achter het woord "Beste" komt zoals in het script staat. Is dit mogenlijk?

3de vraagje.

In het mailtje wat ik ontvang staat dit:
PHP:
Array
(
    [Voornaam] => 
    [Achternaam] => 
    [straatnaam] => 
    [huisnummer] => 
    [postcode] => 
    [woonplaats] => 
    [tel] => 
    [Email] => 
    [Rekeningnummer] => 
    [T_n_v_] =>
)
Waarom staat er Array en die ( ) dingen?


PHP:
<?php
                if ( $_SERVER["REQUEST_METHOD"] == "POST" ){
                $to = $_POST["Email"];
                $subject = "Bedankt voor uw donatie";
                $bericht = "Beste,";
                $bericht .= "bedankt voor uw donatie. U zult zo spoedig mogelijk een reactie krijgen.";
                $Headers = 'From: Stichting Education Smiling Nation <jos@johodrivers.nl>';
                mail ( $to, $subject, $bericht, $Headers );
                $to2 = "jos@johodrivers.nl";
                $subject2 = "Aanmelding donatie";
                $bericht2 = $array_layout = print_r( $_POST, true );
                $Headers2 = 'From: Education Smiling Nation <jos@johodrivers.nl>';
                mail ($to2, $subject2, $bericht2, $Headers2);
                echo "Uw mail is succesvol verzonden. Klik op terug om terug te keren naar de site.";
                  }else
?>
 
Laatst bewerkt door een moderator:
Vervang

PHP:
echo "Uw mail is succesvol verzonden. Klik op terug om terug te keren naar de site.";

door

PHP:
header ( 'Location: depaginawaarjenaartoewilt.php' );

Je moet er dan wel voor zorgen dat je nog géén output hebt gegeven, want dan krijg je een error.

Oh ja, en zet de volgende keer je code even tussen
PHP:
tags
 
Ik wil graag dat al het formulier ingevuld is en de gebruiker verzend het dat ze naar een andere pagina gaan. De start pagina ofzo. Nu krijgen ze op een wit scherm een korte tekst te zien die ik in het script heb geschreven. Weet iemand hoe ik dit kan doen.
Zie het antwoord van ErikBooy007. Overigens vind ik het persoonlijk wel fijn om na een formulier ingevuld te hebben een bevestiging te krijgen dat het formulier verzonden is.

Dan nog een 2de vraag.
Ik wil ook graag in het bedankt mailtje wat ze krijgen dat hun naam achter het woord "Beste" komt zoals in het script staat. Is dit mogenlijk?
Ja, dit is mogelijk.

3de vraagje.

In het mailtje wat ik ontvang staat dit:

Array
(
[Voornaam] =>
[Achternaam] =>
[straatnaam] =>
[huisnummer] =>
[postcode] =>
[woonplaats] =>
[tel] =>
=>
[Rekeningnummer] =>
[T_n_v_] =>
)

Waarom staat er Array en die ( ) dingen?[/quote]
Dat is nou eenmaal hoe [url=http://nl2.php.net/manual/en/function.print-r.php]print_r[/url] de gegevens toont.
Als je dat niet wil moet je [php]$bericht2 = $array_layout = print_r( $_POST, true );[/php] vervangen door [php]foreach($array_layout as $key => $value)
{
$bericht2 .= $key . ": " . $value . "\n";
}[/php]
Dan zou het in de email moeten komen als
Voornaam: ....
Achternaam: ...
etc.


Om nog even terug te komen op je 2e vraag. Misschien wil je ook graag weten hoe je dat doet :D. Vervang dan [php]$bericht = "Beste,";[/php] door [php]$bericht = "Beste " . $_POST['Voornaam'] . ",";[/php] of als je zowel de voor- als de achternaam wilt gebruiken [php]$bericht = "Beste " . $_POST['Voornaam'] . " " . $_POST['Achternaam'] . ",";[/php]
 
Laatst bewerkt:
Vraag 1 en 3 zijn opgelost. Alleen als ik het antwoord op vraag 2 toepas krijg ik een foutmelding als ik wil verzenden.

Warning: Invalid argument supplied for foreach() in /storage/mijndomein/users/102929/public/sites/www.education-smiling-nation.com/Test/verzend_mail.php on line 11

Warning: Cannot modify header information - headers already sent by (output started at /storage/mijndomein/users/102929/public/sites/www.education-smiling-nation.com/Test/verzend_mail.php:11) in /storage/mijndomein/users/102929/public/sites/www.education-smiling-nation.com/Test/verzend_mail.php on line 17
 
Laatst bewerkt:
Oplossing 1e warning:

Maak van

PHP:
foreach($array_layout as $key => $value)
{
  $bericht2 .= $key . ": " . $value . "\n";
}

Eens

PHP:
foreach($_POST as $key => $value)
{
  $bericht2 .= $key . ": " . $value . "\n";
}

Ik heb geen flauw idee wat de variabele $array_layout in het script doet, maargoed.


Reden voor warning 2:

Precies wat ik zei in m'n eerste post. Je mag nog GEEN output versturen voordat je die Location-header gebruikt. Je zult dus moeten zorgen dat er een geen enkel echo / print statement boven staat. Ook maar er geen HTML in het bestand voorkomen buiten de <?php ?> tags. Er mag dus nog NIETS naar de browser verstuurd worden.
 
Bedankt allemaal,

het is weer goed opgelost. De site werkt nu naar behoren.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan