Fout in code.

Status
Niet open voor verdere reacties.

feikoboy

Gebruiker
Lid geworden
16 nov 2012
Berichten
8
Beste,

Ik heb een joomla site.
Ik heb mijn email adres aangepast alleen plotseling doet het email form het niet meer.

Dit is de code :

PHP:
<?php 

$_POST['onderwerp'] = 'Contactformulier';

// E-mailadres van de ontvanger
$mail_ontv = 'xxxxxxxxxxxx'; // <<<----- voer jouw e-mailadres hier in!

// Speciale checks voor naam en e-mailadres
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
    // voornaam controle
    if (!preg_match('/[ a-zA-Z-]$/', $_POST['voornaam']))
        $voornaam_fout = 1;
    // achternaam controle
    if (!preg_match('/[ a-zA-Z-]$/', $_POST['achternaam']))
        $achternaam_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;
    }
}

       
  // HTML e-mail formulier
  echo '<div style="color: #EF4023;"--><form action="' . $_SERVER['REQUEST_URI'] . '" method="post">
<h1>Contactformulier</h1>
<p>'; // Kijk of alle velden zijn ingevuld - naam mag alleen uit letters bestaan en het e-mailadres moet juist zijn if (($_SERVER['REQUEST_METHOD'] == 'POST' &amp;&amp; (!empty($antiflood) || empty($_POST['voornaam']) || !empty($naam_fout) || empty($_POST['mail']) || !empty($email_fout) || empty($_POST['bericht']) || empty($_POST['achternaam']))) || $_SERVER['REQUEST_METHOD'] == 'GET') { if ($_SERVER['REQUEST_METHOD'] == 'POST') { if (!empty($voornaam_fout)) echo '</p>
<p style="color: #ef4023;">- Uw voornaam mag alleen letters bevatten.</p>
<p>'; elseif (!empty($achternaam_fout)) echo '</p>
<p style="color: #ef4023;">- Uw achternaam mag alleen letters bevatten</p>
<p>'; elseif (!empty($email_fout)) echo '</p>
<p style="color: #ef4023;">- Uw e-mailadres is niet juist.</p>
<p>'; elseif (!empty($antiflood)) echo '</p>
<p style="color: #ef4023;">- U mag slechts één bericht per ' . $seconde . ' seconde versturen.</p>
<p>'; else echo '</p>
<p style="color: #ef4023;">- U bent uw naam, e-mailadres, onderwerp of bericht vergeten in te vullen.</p>
<p>'; } echo '</p>
<table width="55%" cellspacing="0" cellpadding="5">
<tbody>
<tr>
<td align="right">Voornaam:</td>
<td><input id="voornaam" type="text" name="voornaam" value="' . (isset($_POST['voornaam']) ? htmlspecialchars($_POST['voornaam']) : '') . '" /></td>
</tr>
<tr>
<td align="right">Achternaam:</td>
<td><input id="achternaam" type="text" name="achternaam" value="' . (isset($_POST['achternaam']) ? htmlspecialchars($_POST['achternaam']) : '') . '" /></td>
</tr>
<tr>
<td align="right">E-mailadres:</td>
<td><input id="mail" type="text" name="mail" value="' . (isset($_POST['mail']) ? htmlspecialchars($_POST['mail']) : '') . '" /></td>
</tr>
<tr>
<td align="right">Bericht:</td>
<td><textarea id="bericht" style="width: 400px;" name="bericht" rows="8">' . (isset($_POST['bericht']) ? htmlspecialchars($_POST['bericht']) : '') . '</textarea></td>
</tr>
<tr>
<td>*</td>
<td><input type="submit" name="submit" value="Versturen" /></td>
</tr>
</tbody>
</table>
<p>'; } // versturen naar else { // set datum $datum = date('d/m/Y H:i:s'); $inhoud_mail = "===================================================\n"; $inhoud_mail .= "Ingevuld contactformulier " . $_SERVER['HTTP_HOST'] . "\n"; $inhoud_mail .= "===================================================\n\n"; $inhoud_mail .= "Voornaam: " . htmlspecialchars($_POST['voornaam']) . "\n"; $inhoud_mail .= "Achternaam: " . htmlspecialchars($_POST['achternaam']) . "\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['voornaam']) . ' ' . htmlspecialchars($_POST['achternaam']) . ' &lt;' . $_POST['mail'] . '&gt;'; $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 'Bedankt voor het invullen van het contactformulier.</p>
<p>uw gegevens zijn verzonden naar Mieke Hartwig. We zullen zo spoedig mogelijk contact met u opnemen.</p>
<p>'; } else { echo '</p>
<h1>Het contactformulier is niet verzonden</h1>
<p><strong>Onze excuses.</strong> Het contactformulier kon niet verzonden worden.</p>
<p>'; } } ?&gt;</p>
</form>
Ja ik weet het email adres is xxxx heb dat even veranderd voor dit forum.

Ik hoop dat een van jullie mischien weet waar de fout zit.
Alvast bedankt.

Groeten feiko
 
Laatst bewerkt door een moderator:
Het lijkt mij op regel 34 en 69 fout te gaan.
Daar wordt PHP-code in commentaar gezet.

Daarnaast lijkt mij dit geen kwestie geweest te zijn van "alleen e-mailadres wijzigen".
Het onderste gedeelte lijkt gewoon geplakt te zijn zonder het te na te lopen.

PHP:
<?php 

$_POST['onderwerp'] = 'Contactformulier';

// E-mailadres van de ontvanger
$mail_ontv = 'xxxxxxxxxxxx'; // <<<----- voer jouw e-mailadres hier in!

// Speciale checks voor naam en e-mailadres
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
    // voornaam controle
    if (!preg_match('/[ a-zA-Z-]$/', $_POST['voornaam']))
        $voornaam_fout = 1;
    // achternaam controle
    if (!preg_match('/[ a-zA-Z-]$/', $_POST['achternaam']))
        $achternaam_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;
    }
}

       
  // HTML e-mail formulier
  echo '<div style="color: #EF4023;"--><form action="' . $_SERVER['REQUEST_URI'] . '" method="post">
<h1>Contactformulier</h1>
<p>'; // Kijk of alle velden zijn ingevuld - naam mag alleen uit letters bestaan en het e-mailadres moet juist zijn
if (($_SERVER['REQUEST_METHOD'] == 'POST' &amp;&amp; (!empty($antiflood) || empty($_POST['voornaam']) || !empty($naam_fout) || empty($_POST['mail']) || !empty($email_fout) || empty($_POST['bericht']) || empty($_POST['achternaam']))) || $_SERVER['REQUEST_METHOD'] == 'GET') { if ($_SERVER['REQUEST_METHOD'] == 'POST') { if (!empty($voornaam_fout)) echo '</p>
<p style="color: #ef4023;">- Uw voornaam mag alleen letters bevatten.</p>
<p>'; elseif (!empty($achternaam_fout)) echo '</p>
<p style="color: #ef4023;">- Uw achternaam mag alleen letters bevatten</p>
<p>'; elseif (!empty($email_fout)) echo '</p>
<p style="color: #ef4023;">- Uw e-mailadres is niet juist.</p>
<p>'; elseif (!empty($antiflood)) echo '</p>
<p style="color: #ef4023;">- U mag slechts één bericht per ' . $seconde . ' seconde versturen.</p>
<p>'; else echo '</p>
<p style="color: #ef4023;">- U bent uw naam, e-mailadres, onderwerp of bericht vergeten in te vullen.</p>
<p>'; } echo '</p>
<table width="55%" cellspacing="0" cellpadding="5">
<tbody>
<tr>
<td align="right">Voornaam:</td>
<td><input id="voornaam" type="text" name="voornaam" value="' . (isset($_POST['voornaam']) ? htmlspecialchars($_POST['voornaam']) : '') . '" /></td>
</tr>
<tr>
<td align="right">Achternaam:</td>
<td><input id="achternaam" type="text" name="achternaam" value="' . (isset($_POST['achternaam']) ? htmlspecialchars($_POST['achternaam']) : '') . '" /></td>
</tr>
<tr>
<td align="right">E-mailadres:</td>
<td><input id="mail" type="text" name="mail" value="' . (isset($_POST['mail']) ? htmlspecialchars($_POST['mail']) : '') . '" /></td>
</tr>
<tr>
<td align="right">Bericht:</td>
<td><textarea id="bericht" style="width: 400px;" name="bericht" rows="8">' . (isset($_POST['bericht']) ? htmlspecialchars($_POST['bericht']) : '') . '</textarea></td>
</tr>
<tr>
<td>*</td>
<td><input type="submit" name="submit" value="Versturen" /></td>
</tr>
</tbody>
</table>
<p>'; } // versturen naar
else {
// set datum
$datum = date('d/m/Y H:i:s');
$inhoud_mail = "===================================================\n"; $inhoud_mail .= "Ingevuld contactformulier " . $_SERVER['HTTP_HOST'] . "\n";
$inhoud_mail .= "===================================================\n\n";
$inhoud_mail .= "Voornaam: " . htmlspecialchars($_POST['voornaam']) . "\n";
$inhoud_mail .= "Achternaam: " . htmlspecialchars($_POST['achternaam']) . "\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['voornaam']) . ' ' . htmlspecialchars($_POST['achternaam']) . ' &lt;' . $_POST['mail'] . '&gt;';
$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 'Bedankt voor het invullen van het contactformulier.</p>
<p>uw gegevens zijn verzonden naar Mieke Hartwig. We zullen zo spoedig mogelijk contact met u opnemen.</p>
<p>';
} else {
echo '</p>
<h1>Het contactformulier is niet verzonden</h1>
<p><strong>Onze excuses.</strong> Het contactformulier kon niet verzonden worden.</p>
<p>'; } } ?>
</p>
</form>
 
Werkt nog steeds niet

Beste,

Het werkt nog steeds niet.
Kijkt u zelf even:

http://www.miekehartwig.nl/index.php/schilderen-contact

Bedankt voor snelle reactie.

Ik heb deze form laten maken door een bedrijf die ook mijn website hebben gemaakt 3.5 jaar geleden.
Alleen hun rekening forse prijzen daarom dacht ik het zelf op te lossen.

Bij voorbaat dank.

Groeten,
Feiko
 
Als zij iets hebben gemaakt waarvoor betaald is dan is het ook zaak dat zij het werkend maken.

Overigens kun je deze code niet zomaar in een joomla artikel of pagina plakken.

Daarnaast biedt Joomla ook standaard oplossingen om een e-mail naar een contactpersoon te sturen via een formulier.
Welke versie draait de website?
 
reactie

Joomla! 2.5.6 Stable
en
Joomla Platform 11.4.0 Stable

dit duss
 
Heb je al eens een contactpersoon aangemaakt met de details en daarvoor een menu-item aanmaakt? (type: Single Contact)
 
Ik kan alleen aangepaste html keizen in modulles. en ik dacht dat je dat nooit mocht doen.
 
Het is ook geen HTML, het is onderdeel van de standaard opties van Joomla 2.5.

Je hoort het te kunnen selecteren wanneer je een nieuw menu-item aanmaakt of wanneer je een item wijzigt.
 
mijn website ondersteund geen php alleen mijn oude code was een aangepaste html. duss enige idee wst ik nu zou moeten deon?
 
Als het geen PHP ondersteunt zou je geen Joomla kunnen draaien :)

Heb je via Joomla al geprobeerd een contactpersoon aan te maken en een nieuw menu-item aan te maken?
 
nog niet.

snap niet precies wat u daar mee bedoelt
 
Laatst bewerkt door een moderator:
Als ik het goed begrijp draait de website op Joomla 2.5.6.

Hier kun je op inloggen via http://www.miekehartwig.nl/administrator/
Daar kun je een nieuw menu-item aanmaken via "Menus > Main menu > Add new menu item"

Als "Menu Item Type" selecteer je "Single contact", vervolgens kun je in de rechter zijbalk een contactpersoon selecteren.
Verder dien je nog een menu titel op te geven, dit kan bijvoorbeeld "Contact" zijn.

Dan is het een kwestie van opslaan en hij staat op je website inclusief formulier.
 
beste,

Het werkt nog steeds niet zelfs als k in phptester.net hem invoer werkt hij niet. Ik ben ten einde raad
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan