Auteur Topic: mailformulier werkt niet.....  (gelezen 12287 keer)

Offline davey

  • MVP
  • *
  • Bedankjes
  • -Gegeven: 22
  • -Ontvangen: 66
  • Berichten: 876
Re: mailformulier werkt niet.....
« Reactie #30 Gepost op: 25 februari 2012, 22:44:34 »
Citaat van: "cyrus1977"
Citaat van: "davey"
nee daarom ook een stappen plan zo lijkt mij duidelijk zo of niet? stap1 stap2 etc

Zie mijn eerdere bericht. Laten we afwachten of de topicstarter er nu dan wel uitkomt.
ja idd anders weet ik het ook niet meer ( ja ze smtp instellingen  :mrgreen:  )  blijkbaar gebruikt richard een email provider  waar ze de smtp server niet zomaar laten gebruiken zoals bij ziggo

Offline cyrus1977

  • Global Moderator
  • MVP
  • *
  • Bedankjes
  • -Gegeven: 27
  • -Ontvangen: 54
  • Berichten: 1.529
    • http://www.bonaerial.nl
Re: mailformulier werkt niet.....
« Reactie #31 Gepost op: 25 februari 2012, 22:59:41 »
Kan zijn dat zijn smtp provider authenticatie verlangt bij het posten van formulieren om formspam te voorkomen... ja ook dat bestaat... heb er zelf ook last van.
  • Mijn Synology: DS415
  • HDD's: 4
See http://www.bonaerial.nl
I am root. If you see me laughing, you better have a backup!
The beginning of knowledge is the discovery of something we do not understand.

Offline Matr1x

  • Global Moderator
  • MVP
  • *
  • Bedankjes
  • -Gegeven: 270
  • -Ontvangen: 771
  • Berichten: 5.090
Re: mailformulier werkt niet.....
« Reactie #32 Gepost op: 26 februari 2012, 00:21:14 »
Citaat van: "davey"
Ik heb hem even getest en werkt als ik hem copieer van dit forum

Als je de Code tag gebruikt, kun je volgens mij wel knippen en plakken.

Voorbeeld:
<?php
session_start
(); // zorg ervoor dat session_start ALTIJD bovenaan ALLES van je pagina staat, anders werkt het niet!

/*******************************
* CONTACT FORMULIER *
* contactformulier&#46;php *
* *
* Author: Miranda Verburg *
* Datum: 10 september 2010 *
* *
* Pas het e-mail adres aan *
* bij $mail_ontv en upload *
* het naar je webserver&#46;&#46; *
********************************/
  • Mijn Synology: DS224+
  • HDD's: 2x HAT3300-4T
  • Extra's: MR2200ac / RT2600ac

Offline richard5000

  • Bedankjes
  • -Gegeven: 10
  • -Ontvangen: 6
  • Berichten: 51
Re: mailformulier werkt niet.....
« Reactie #33 Gepost op: 26 februari 2012, 09:08:05 »
Update:

Ik heb het script in mijn website neergezet zoals aangegeven in deze topic en hij verstuurd het, top (dus ligt niet aan mijn smtp instellingen, zoals ik al vertelde en ik zit bij ziggo :wink:), wat bij mij niet goed werkt is de antiflood controle, heb getracht dit eruit te halen, maar dit lukt niet en krjg ik een foutmelding.

Zou iemand kunnen aangeven hoe en wat ik moet weghalen in het script om de antiflood eruit te krijgen, ik bewerk het met kladblok en sla het op als "alle bestanden" dit lukt mij wel, maar ik haal blijkbaar iets niet goed weg uit het script.

Oke, als de antiflood eruit is werkt het bij mij goed, iedereen alvast bedankt voor de input.

Groet,
Richard

Offline davey

  • MVP
  • *
  • Bedankjes
  • -Gegeven: 22
  • -Ontvangen: 66
  • Berichten: 876
Re: mailformulier werkt niet.....
« Reactie #34 Gepost op: 26 februari 2012, 15:44:41 »
dan moet je die 20 sec naar 1 sec veranderen zoeken naar 20 in het script en change it to 1

deze regel moet je hebben

$seconde = 20 <<<< deze 1 maken ; // 20 seconden voordat dezelfde persoon nog een keer een e-mail mag versturen

Offline richard5000

  • Bedankjes
  • -Gegeven: 10
  • -Ontvangen: 6
  • Berichten: 51
Re: mailformulier werkt niet.....
« Reactie #35 Gepost op: 26 februari 2012, 16:21:06 »
Heb ik geprobeerd, maar helaas zonder succes, blijf dezelfde melding krijgen 20 terwijl ik er 1 van heb gemaakt. Als ik het eruit haal doet het script het niet meer.

Wellicht een speciaal programma om scripts php te bewerken?

Offline davey

  • MVP
  • *
  • Bedankjes
  • -Gegeven: 22
  • -Ontvangen: 66
  • Berichten: 876
Re: mailformulier werkt niet.....
« Reactie #36 Gepost op: 26 februari 2012, 17:56:34 »
ik zal is kijken voor je

Offline davey

  • MVP
  • *
  • Bedankjes
  • -Gegeven: 22
  • -Ontvangen: 66
  • Berichten: 876
Re: mailformulier werkt niet.....
« Reactie #37 Gepost op: 26 februari 2012, 18:03:30 »
bij mij werkt hij gewoon hoor  ik heb hem veranderd naar 1 sec   hij zegt zelfs   U mag slechts één bericht per 1 seconde versturen.   terwijl er 20 in het script staat  dus blijkbaar doe je iets verkeerd   deze regel erin plakken

$seconde = 1; // 20 seconden voordat dezelfde persoon nog een keer een e-mail mag versturen

en de oude regel weghalen he  :mrgreen:

Offline LukeVredeveld

  • MVP
  • *
  • Bedankjes
  • -Gegeven: 42
  • -Ontvangen: 191
  • Berichten: 1.645
    • http://synology.lukevredeveld.nl
mailformulier werkt niet.....
« Reactie #38 Gepost op: 26 februari 2012, 18:18:20 »
Citaat van: "davey"
bij mij werkt hij gewoon hoor  ik heb hem veranderd naar 1 sec   hij zegt zelfs   U mag slechts één bericht per 1 seconde versturen.   terwijl er 20 in het script staat  dus blijkbaar doe je iets verkeerd   deze regel erin plakken

$seconde = 1; // 20 seconden voordat dezelfde persoon nog een keer een e-mail mag versturen

en de oude regel weghalen he  :mrgreen:

Alles achter de // zijn comments. Dus in dit geval is de 1 seconde feitelijk ingesteld. Alles wat achter de // staat maakt geen deuk uit.


Sent from my iPhone using Tapatalk
  • Mijn Synology: DS214+
  • HDD's: 2xHDS5C4040ALE630

Offline richard5000

  • Bedankjes
  • -Gegeven: 10
  • -Ontvangen: 6
  • Berichten: 51
Re: mailformulier werkt niet.....
« Reactie #39 Gepost op: 27 februari 2012, 05:17:07 »
Heb het aangepast zoals aangegeven, ook oude regel weggehaald etc, maar als ik op de verzend knop druk, bijf ik de regel krijgen, u mag maar, 1 seconde etc. en hij verzend niet.

Heb getracht zelf het script aan te passen om de antiflood eruit te halen, maar dan krijg ik een error als ik op knop verzenden druk, ook als ik een tekstblok met bijvoorbeeld "reden" wil invoegen in script krijg ik een foutmelding, heb het bestand opgeslagen als "alle bestanden".

Ook al cookies etc verwijderd, geheugen, maar hij blijft de melding geven. voor de rest werkt het script goed.

Zou iemand zo vriendelijk willen zijn om het onderstaand script aan te passen, zodat de hele antiflood eruit is..?

<?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 = 'XXXXXXXXXX'; // <<<----- 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 = 2; // 2 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 .= "===================================================nn";

$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']) . "nn";

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

$inhoud_mail .= "===================================================nn";

// --------------------
// spambot protectie
// ------
// van de tutorial: http://www.phphulp.nl/php/tutorial/beve ... ieren/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>';
}
}
?>