Hasselt Geplaatst: 7 maart 2011 Geplaatst: 7 maart 2011 Goedendag, Ik heb met veel moeite een email van PHP in elkaar geknutseld Zonder php kennis.. Dit werkt perfect. Echter na verzenden van het emailformulier blijft hij op die pagina staan. Ik zou graag willen dat na het verzenden weer terug gaat naar de index.html Hieronder 1x html text voor de contact.html. pagina en 1x het php scriptvoor op de server. Wie wil er eens naar kijken. Om reclame te voorkomen het ik kruisjes op de namen gezet. <form name="form1" method="post" action="post.php"> <p align="center">Uw Naam: <br><input name="naam" type="text" value""><br> Uw E-mail: <br><input name="email" type="text" value=""></p> <p align="center">Uw Bericht:<br> <textarea name="bericht" rows="7" cols="45"></textarea><br> <input type="submit" name="Submit" value="Verzenden"> <?php $naam = htmlspecialchars($_POST['naam']); $email = htmlspecialchars($_POST['email']); $bericht = htmlspecialchars($_POST['bericht']); if (!$naam) { echo "u heeft geen naam ingevuld!"; exit; } if (!$email) { echo "u heeft geen e-mailadres ingevuld!"; exit; } if (!$bericht) { echo "u heeft geen bericht ingevuld!"; exit; } else { $tijd = time(); $datum = strftime("%d/%m/%y %H:%M", $tijd); $ip = getenv("REMOTE_ADDR"); $message = "" . $naam . " met het e-mailadres " . $email . " en het IP $ip stuurde op $datum het volgende bericht: ____________________________________ " . $bericht . " ------------------------------------"; $mailadres = "info@xxxxxxxxxxxxxxx.nl"; $message = str_replace ("<br>","\n", $message); mail("$mailadres", "Bericht van www.xxxxxxxxxxxxxxx.nl", $message, "From: " . $email . ""); echo "Uw bericht is met succes verzonden. We helpen u zo snel mogelijk."; } ?>
Big fellow Geplaatst: 7 maart 2011 Geplaatst: 7 maart 2011 Zet in de header van de pagina die je "stuurt" om de bevestiging te tonen: <meta http-equiv="refresh" content="5;url=http://jouwebsite.nl/index.html"> De "5" geeft aan na hoeveel seconden de redirect wordt gedaan. “Success is not final, failure is not fatal: it is the courage to continue that counts.” ~ Winston Churchill
Gast Tha Great Mac Geplaatst: 7 maart 2011 Geplaatst: 7 maart 2011 Laatste regel: header("refresh: 5; index.html");
Big fellow Geplaatst: 7 maart 2011 Geplaatst: 7 maart 2011 Origineel bericht van: Tha Great Mac Laatste regel: header("refresh: 5; index.html"); Gaat niet werken aangezien je hoogstwaarschijnlijk een error krijgt in de trant van "headers already sent". Zoals het in de naam al doet vermoeden dien je dus eerst de header te sturen voordat je de "echo" doet. Anders wordt de echo gezien als "header"... Daarom is het ook zeer belangrijk dat "<?php" zonder spatie/enter aan het begin van het bestand staat... “Success is not final, failure is not fatal: it is the courage to continue that counts.” ~ Winston Churchill
Gast Tha Great Mac Geplaatst: 7 maart 2011 Geplaatst: 7 maart 2011 Origineel bericht van: Big fellow Gaat niet werken aangezien je hoogstwaarschijnlijk een error krijgt in de trant van "headers already sent". Je hebt gelijk, in de loop der code kan dat inderdaad niet altijd. Kan evt. ook middels javascript... window.location="je-url";
Hasselt Geplaatst: 7 maart 2011 Auteur Geplaatst: 7 maart 2011 Op deze manier werkt het niet ??? <?php $naam = htmlspecialchars($_POST['naam']); $email = htmlspecialchars($_POST['email']); $bericht = htmlspecialchars($_POST['bericht']); if (!$naam) { echo "u heeft geen naam ingevuld!"; exit; } if (!$email) { echo "u heeft geen e-mailadres ingevuld!"; exit; } if (!$bericht) { echo "u heeft geen bericht ingevuld!"; exit; } else { $tijd = time(); $datum = strftime("%d/%m/%y %H:%M", $tijd); $ip = getenv("REMOTE_ADDR"); $message = "" . $naam . " met het e-mailadres " . $email . " en het IP $ip stuurde op $datum het volgende bericht: ____________________________________ " . $bericht . " ------------------------------------"; $mailadres = "info@xxxxxxxxxxxxxxx.nl"; $message = str_replace ("<br>","\n", $message); mail("$mailadres", "Bericht van www.xxxxxxxxxxxxxxx.nl", $message, "From: " . $email . ""); echo "Uw bericht is met succes verzonden. We helpen u zo snel mogelijk."; } <?php refresh: 5; index.html ?>
Gast Tha Great Mac Geplaatst: 7 maart 2011 Geplaatst: 7 maart 2011 Origineel bericht van: Blackout echo "Uw bericht is met succes verzonden. We helpen u zo snel mogelijk."; }refresh: 5; index.html ?> Zie kleine correctie, probeeer het gewoon maar ff...
Hasselt Geplaatst: 7 maart 2011 Auteur Geplaatst: 7 maart 2011 Hallo, Bedankt voor het meedenken. De pagina gaat nog steeds niet terug naar de index.html
Big fellow Geplaatst: 7 maart 2011 Geplaatst: 7 maart 2011 Maak dit er eens van: Origineel bericht van: Blackout <meta http-equiv="refresh" content="5;url=http://jouwebsite.nl/index.html"> <?php $naam = htmlspecialchars($_POST['naam']); $email = htmlspecialchars($_POST['email']); $bericht = htmlspecialchars($_POST['bericht']); if (!$naam) { echo "u heeft geen naam ingevuld!"; exit; } if (!$email) { echo "u heeft geen e-mailadres ingevuld!"; exit; } if (!$bericht) { echo "u heeft geen bericht ingevuld!"; exit; } else { $tijd = time(); $datum = strftime("%d/%m/%y %H:%M", $tijd); $ip = getenv("REMOTE_ADDR"); $message = "" . $naam . " met het e-mailadres " . $email . " en het IP $ip stuurde op $datum het volgende bericht: ____________________________________ " . $bericht . " ------------------------------------"; $mailadres = "info@xxxxxxxxxxxxxxx.nl"; $message = str_replace ("<br>","\n", $message); mail("$mailadres", "Bericht van www.xxxxxxxxxxxxxxx.nl", $message, "From: " . $email . ""); echo "Uw bericht is met succes verzonden. We helpen u zo snel mogelijk."; } ?> “Success is not final, failure is not fatal: it is the courage to continue that counts.” ~ Winston Churchill
Puch Geplaatst: 8 maart 2011 Geplaatst: 8 maart 2011 Je gaat verkeerd te werk. Je moet eerst je php controle doen als er iets is verstuurd via $_POST Indien ja, verwerk dat en stuur door naar de index pagina. Indien nee, doe niets en toon het formulier. In bovenstaande code staat geen controle als de email wel degelijk is verstuurd. Ook moeten bezoekers telkens alle gegevens opnieuw invullen als ze er één vergeten zijn. Ik heb het script wat aangepast en deze dingen ingevoegd. Opvangen van fout met behoud van invulde zaken controle als email is verstuurd Indien ja, unset de ingevulde informatie en ga naar index.html Indien nee, geef een foutmelding weer. Succes Php Code: <?php session_start();if (isset($_POST['Submit'])){$naam = htmlspecialchars($_POST['naam']);$email = htmlspecialchars($_POST['email']) ;$bericht = htmlspecialchars($_POST['bericht']);$_SESSION['naam'] = $naam;$_SESSION['email'] = $email;$_SESSION['bericht'] = $bericht;if (!$naam) {$fout .= "u heeft geen naam ingevuld! <br>"; }if (!$email) {$fout .= "u heeft geen e-mailadres ingevuld! <br>";}if (!$bericht) {$fout .= "u heeft geen bericht ingevuld! <br>"; }else {if (!$fout){$tijd = time();$datum = strftime("%d/%m/%y %H:%M", $tijd);$ip = getenv("REMOTE_ADDR");$message = "" . $naam . " met het e-mailadres " . $email . " en het IP $ip stuurde op $datum het volgende bericht: ____________________________________" . $bericht . "------------------------------------";$mailadres = "info@xxxxxxxxxxxxxxx.nl";$message = str_replace ("<br>","\n", $message);$VerstuurEmail = (mail("$mailadres", "Bericht van www.xxxxxxxxxxxxxxx.nl",$message, "From: " . $email . "")) ? true : false;if ($VerstuurEmail){ unset($_SESSION['naam'], $_SESSION['email'], $_SESSION['bericht']); header("location: index.php"); } else { $fout .= "Email werd niet verstuurd"; }}}}if (isset($fout)) { echo "<p>".$fout."</p>"; }?><form name="form1" method="post" action="<?php $_SERVER['PHP_SELF']; ?>"> <p align="center">Uw Naam: <br><input name="naam" type="text" value="<?php echo $_SESSION['naam']; ?>"><br> Uw E-mail: <br><input name="email" type="text" value="<?php echo $_SESSION['email']; ?>"></p><p align="center">Uw Bericht:<br> <textarea name="bericht" rows="7" cols="45"><?php echo $_SESSION['bericht']; ?></textarea><br> <input type="submit" name="Submit" value="Verzenden"> iMac 27" macOS SierraiPhone 5s iOS 10
Aanbevolen berichten
Maak een account aan of log in om te reageren
Je moet een lid zijn om een reactie te kunnen achterlaten
Account aanmaken
Registreer voor een nieuwe account in onze community. Het is erg gemakkelijk!
Registreer een nieuwe accountInloggen
Heb je reeds een account? Log hier in.
Nu inloggen