hallo ik ben new hier. ik weet ook niet of hier al een vraag over is. zo ja dan een link. en dan mag hier een slot je op
zo niet hier mij vraag

ik ben met html pas mee begonnen en dat snap ik ( basic)
ik wil nu wat gaan doen met PHP. PHP is een makkelijk te begrijpen script taal maar ik weet niet goed hoe ik zelf taak lijnen kan maken.

zit dus met een probleem.
ik heb dit script
<?php
session_start(); // zorg ervoor dat session_start ALTIJD bovenaan ALLES van je pagina staat, anders werkt het niet!

/*******************************
* CONTACT FORMULIER *
* contactformulier.php *
* *
* Author: Miranda Verburg *
* Datum: 10 september 2010 *
* *
* Pas het e-mail adres aan *
* bij $mail_ontv en upload *
* het naar je webserver.. *
********************************/

// E-mailadres van de ontvanger
$mail_ontv = '[email protected]'; // <<<----- voer jouw e-mailadres hier in!

// Speciale checks voor naam en e-mailadres
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
// naam controle
if (empty($_POST['naam']))
$naam_fout = 1;
// e-mail controle
if (function_exists('filter_var') && !filter_var($_POST['mail'], FILTER_VALIDATE_EMAIL))
$email_fout = 1;
// antiflood controle
if (!empty($_SESSION['antiflood']))
{
$seconde = 20; // 20 seconden voordat dezelfde persoon nog een keer een e-mail mag versturen
$tijd = time() - $_SESSION['antiflood'];
if($tijd < $seconde)
$antiflood = 1;
}
}

// Kijk of alle velden zijn ingevuld - naam mag alleen uit letters bestaan en het e-mailadres moet juist zijn
if (($_SERVER['REQUEST_METHOD'] == 'POST' && (!empty($antiflood) || empty($_POST['naam']) || !empty($naam_fout) || empty($_POST['mail']) || !empty($email_fout) || empty($_POST['bericht']) || empty($_POST['onderwerp']))) || $_SERVER['REQUEST_METHOD'] == 'GET')
{
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
if (!empty($naam_fout))
echo '<p>Uw naam is niet ingevuld.</p>';
elseif (!empty($email_fout))
echo '<p>Uw e-mailadres is niet juist.</p>';
elseif (!empty($antiflood))
echo '<p>U mag slechts &eacute;&eacute;n bericht per ' . $seconde . ' seconde versturen.</p>';
else
echo '<p>U bent uw naam, e-mailadres, onderwerp of bericht vergeten in te vullen.</p>';
}

// HTML e-mail formlier
echo '<form method="post" action="' . $_SERVER['REQUEST_URI'] . '" />
<p>

<label for="naam">Naam:</label><br />
<input type="text" id="naam" name="naam" value="' . (isset($_POST['naam']) ? htmlspecialchars($_POST['naam']) : '') . '" /><br />

<label for="mail">E-mailadres:</label><br />
<input type="text" id="mail" name="mail" value="' . (isset($_POST['mail']) ? htmlspecialchars($_POST['mail']) : '') . '" /><br />

<label for="onderwerp">Onderwerp:</label><br />
<input type="text" id="onderwerp" name="onderwerp" value="' . (isset($_POST['onderwerp']) ? htmlspecialchars($_POST['onderwerp']) : '') . '" /><br />

<label for="bericht">Bericht:</label><br />
<textarea id="bericht" name="bericht" rows="8" style="width: 400px;">' . (isset($_POST['bericht']) ? htmlspecialchars($_POST['bericht']) : '') . '</textarea><br />

<input type="submit" name="submit" value=" Versturen " />
</p>
</form>';
}
// versturen naar
else
{
// set datum
$datum = date('d/m/Y H:i:s');

$inhoud_mail = "===================================================\n";
$inhoud_mail .= "Ingevulde contact formulier " . $_SERVER['HTTP_HOST'] . "\n";
$inhoud_mail .= "===================================================\n\n";

$inhoud_mail .= "Naam: " . htmlspecialchars($_POST['naam']) . "\n";
$inhoud_mail .= "E-mail adres: " . htmlspecialchars($_POST['mail']) . "\n";
$inhoud_mail .= "Bericht:\n";
$inhoud_mail .= htmlspecialchars($_POST['bericht']) . "\n\n";

$inhoud_mail .= "Verstuurd op " . $datum . " via het IP adres " . $_SERVER['REMOTE_ADDR'] . "\n\n";

$inhoud_mail .= "===================================================\n\n";

// --------------------
// spambot protectie
// ------
// van de tutorial: http://www.phphulp.nl/php/tutorial/beveiliging/spam-vrije-contact-formulieren/340/
// ------

$headers = 'From: ' . htmlspecialchars($_POST['naam']) . ' <' . $_POST['mail'] . '>';

$headers = stripslashes($headers);
$headers = str_replace('\n', '', $headers); // Verwijder \n
$headers = str_replace('\r', '', $headers); // Verwijder \r
$headers = str_replace("\"", "\\\"", str_replace("\\", "\\\\", $headers)); // Slashes van quotes

$_POST['onderwerp'] = str_replace('\n', '', $_POST['onderwerp']); // Verwijder \n
$_POST['onderwerp'] = str_replace('\r', '', $_POST['onderwerp']); // Verwijder \r
$_POST['onderwerp'] = str_replace("\"", "\\\"", str_replace("\\", "\\\\", $_POST['onderwerp'])); // Slashes van quotes

if (mail($mail_ontv, $_POST['onderwerp'], $inhoud_mail, $headers))
{
// zorg ervoor dat dezelfde persoon niet kan spammen
$_SESSION['antiflood'] = time();

echo '<h1>Het contactformulier is verzonden</h1>

<p>Bedankt voor het invullen van het contactformulier. We zullen zo spoedig mogelijk contact met u opnemen.</p>';
}
else
{
echo '<h1>Het contactformulier is niet verzonden</h1>

<p><b>Onze excuses.</b> Het contactformulier kon niet verzonden worden.</p>';
}
}
?>
het is van hier af afkomstig. dank er voor
het script werk en send de email en meld dat bv de e-mail niet is in gevuld
bij versturen. kom ik op een nieuwen pagina. en zo als het script zegt als het goed in gevuld is Het contactformulier is verzonden". dit krijg in op een nieuwe pagina. ("website"/contact.php) dit staat in de aders balk terwijl de in vul pagina staat op ("website"/contactphp.html.

welke optie's heb ik
het liefst wil ik dat hij binnen de site template de melding geeft. als dat mogelijk is.
is dit niet mogelijk.
hoe laat ik m automatisch na 3 seconden naar bv home gaan of terug naar contact.

ik heb iets gelezen over header maar ik heb geen idee waar ik dat moet plaatsen.
als iemand mij kan helpen kan dat persoon aan geven waar en hoe ?? ik dat moet toepassen

alvast heel erg bedankt

nog maals als er al een topic over is dan kan hier een slotje op en een link daar naar toe

<?php
if (mail($mail_ontv, $_POST['onderwerp'], $inhoud_mail, $headers))
  {
      // zorg ervoor dat dezelfde persoon niet kan spammen
      $_SESSION['antiflood'] = time();
      header ("refresh:5; url=home.php");
      echo '<h1>Het contactformulier is verzonden</h1>
      
      <p>Bedankt voor het invullen van het contactformulier. We zullen zo spoedig mogelijk contact met u opnemen.</p>';
  }
?>


Zie regel 6 van mijn voorbeeld hierboven. Plaats die regel op regel 113 van jou script in je post.

De 5 is het aantal seconden dat hij wacht voordat je geredirect wordt.

Succes.
ja dit is wat ik bedoel heel erg bedankt ik ben voorlopig tevreden zo.

is het eventueel ook mogelijk om deze melding weer te geven op een en de zelfde pagina ??
het is gewoon een vraag. als het niet mogelijk is jammer dan
en nog maals bedankt voor het snelle oplossing
@Roy,

Hoe bedoel je de melding weergeven op een en dezelfde pagina? Op je contact pagina of op de home pagina?

Je kunt dit gewoon bovenaan in je contact.php (of waar het formulier ook staat) pagina zetten, en dan je form action="contact.php" gebruiken.

PHP code wordt niet afgedrukt in je browser (bekijk broncode), dus heel dat script is voor niemand leesbaar op de client kant.
Door je script in je contact.php (of waar je formulier dan ook staat) te verwerken houdt je dus die melding ook op die pagina ;)

Succes
Als ik je tekst goed begrijp, wil je alles op 1 pagina houden, waarbij je opmaak overeenkomt met de rest van je site. Dan zul je die opmaak moeten toevoegen aan je script. Dat kan door het er 'hard coded' in te zetten of door de opmaak in een apart bestand te zetten en dat te includen.

Roy Rijpma op 16/05/2012 14:29:21

("website"/contact.php) dit staat in de aders balk terwijl de in vul pagina staat op ("website"/contactphp.html.

Kan ik me bijna niet voorstellen. Als je een pagina met php-code er in opslaat (en opent) als html, zul je heel andere output op je scherm zien dan een contactformulier. En ook de action in je form stuurt je niet van een html naar een php pagina.

Overigens geen idee wat je met "ik weet niet goed hoe ik zelf taak lijnen kan maken".

uuuuuu ik...uuu..heb.het ..zelf al op gelost geloof ik........
maar bedankt iedereen hier boven voor al door de zin "php word nooit op je pagina weergeven in de browser"

maar dit is wat ik heb gedaan
ik had deze file contactphp.html
daar in stond de site + het form in de body ( naam / email / onder werp / bericht)dat form lijden naar het losse bestand naar contact.php.
stond in de web template op maak maar toen ik op "verstuur" drukte kwam ik op
"site/contact.php" lege pagina zonder op maak .die pagina zij verstuurd. maar dat vond ik niet mooi.

dus in contact.php stond loss mijn php script .

nu heb ik de html file en de php tot een gebracht

de php staat nu in de body.

maar hoe krijg je dan de ( naam / email / onder werp / bericht) in vul form blokken.
zie regel 53 hier boven. er staat al een form

zo ziet het er nu uit


toch bedankt iedreeen !!




Reageren