Ik heb een contact formulier van Miranda Verburg een beetje vervormt,
nu kan je hem gebruiken om te spammen,
maar hij blijft 1 mailtje per keer versturen.
Kan je instellen dat hij het script blijft herhalen zodat je 50 mailtjes in 1 keer kan sturen?
[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;
// bericht controle
if (empty($_POST['bericht']))
$bericht_fout = 1;
// onderwerp controle
if (empty($_POST['onderwerp']))
$onderwerp_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['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($onderwerp_fout))
echo '<p>U heeft geen onderwerp ingevuld.</p>';
elseif (!empty($bericht_fout))
echo '<p>U heeft geen bericht ingevuld.</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="type">Type:</label><br />
<select name="type">
<option name="contact" value="' .(isset($_POST['contact']) ? htmlspecialchars($_POST['type']) : 'Contact: ') . '">Contact</option>
<option name="tip" value="' .(isset($_POST['tip']) ? htmlspecialchars($_POST['type']) : 'Tip: ') . '">Tip</option>
<option name="fout" value="' .(isset($_POST['fout']) ? htmlspecialchars($_POST['type']) : 'Fout: ') . '">Fout</option>
</select><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="4" style="width: 200px;">' . (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['type'] . $_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>';
}
}
?>[/script]

Groet,
Joep4U
Waarvoor zou je het contactformulier 50x willen verzenden?
Ik hoop dat je je verspreekt in de definitie, want spammen is niet toegestaan.

Of bedoel je dit als een mailing-systeem, waar mensen via een aanmelding + bevestiging mails mee kunnen ontvangen?
Ik dacht al dat ik het hier niet moest vragen,
maar mijn vraag is eigenlijk is het mogelijk om een deel uit het script te herhalen?
Groet,
Joep
tuurlijk... dat kan, check een foreach() of while();
maar de vraag blijft nog steeds, waarom wil je dit script in een loop dan?? snap het niet helemaal...
Ik ben PHP aan het leren,
dat doe ik stap voor stap.
Ik zoek allemaal scripts uit,
maar snap nogsteeds niet hoe een loop werkt.
Ik heb het contact formulier niet als goed voorbeeld gebruikt.
bedankt!
Nee idd,

Want als je dit dus nu in de site van je klant zet bijvoorbeeld. Wordt die dus 50x gespamt met het zelfde formulier, zie hier het nut niet van in. Je benadeeld nu de site owner, ipv gebruikers waar spam op gericht is.

Nogmaals de melding zoals Aar zegt, het is illigaal! Houdt er rekening mee dat posts/topics van phphulp.nl ook in de Google zoekresultaten uitkomen!!!
Ooh,
Ok.
Ik ben nog maar jong (12 jaar)
en had daar nog niet over na gedacht.
Ik was niet van plan om er een spam bot van te maken,
het was eigenlijk alleen bedoeld om te leren.
Je zou er eventueel ook een autotyper van kunnen maken.

Groet,
Joep

PS. Ik heb op gekeken maar daar staat niets over een aantal.
@joep:

Dus volgens jou is dit geen loop van 10 ?? die op de website staat vermeld?

<?php
for($i=0;$i<10;$i++){
echo 'Hoi. $i is nu' . $i . '<br />';
}
?>

Reageren