OP mijn contact formulier krijg ik volgende error:
Fatal error: Uncaught Error: Call to undefined function ereg() in /customers/3/1/3//httpd.www/pages/contact.php:55
Stack trace: #0 /customers/3/1/3//httpd.www/index.php(145): require() #1 {main} thrown in /customers/3/1/3//httpd.www/pages/contact.php on line 55
// Daarna een controle met een reguliere expressie uitvoeren:
if (ereg("^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@([a-zA-Z0-9-]+\.)+([a-zA-Z]{2,4})$", $emailadres)) {
return TRUE;
}
Dit heb ik nu kunnen oplossen maar volgende error krijg ik nog steeds:
Parse error: syntax error, unexpected 'else' (T_ELSE), expecting end of file in /customers/3/1/3//httpd.www/pages/contact.php on line 124
Geen idee wat er mis zou kunnen gaan.
Mijn fout zit in lijn 124 (hier op lijn 9):
<?php
/* ..... */
if(!empty($error_msg))
{
//Een van de velden werd niet goed ingevuld
echo "<div class=\"style1\"><b>Het bericht kon niet worden verzonden door volgende redenen:</b></div><br>";
echo $error_msg;
echo "<br><div class=\"style1\">Klik op <a href=javascript:history.back(1)><b>Ga terug</b></a> en vul alle velden in.</span><br><br>";
}
else
{
$recipient = "[email protected]"; //Het email adres van de persoon die vragen moet ontvangen.
$subject = "Contact."; //Subject van de mail.
$header = "From: " . $_POST['naam'] . " " . $_POST['voornaam'] ." <[email protected]>\r\nReply-to: <" . $_POST['MAILFROM'] . ">";
$mail_body = "Contact:\n----------\n\n";
$mail_body .= "Vooraam: " . $_POST['voornaam'] . "\n";
$mail_body .= "Naam: " . $_POST['naam'] . "\n";
$mail_body .= "E-mail: " . $_POST['MAILFROM'] . "\n";
$mail_body .= "Inhoud: " . $_POST['inhoud'] . "\n";
$mail_body .= "Onderwerp: " . $_POST['SUBJECT'] . "\n";
$mail_body .= "IP-adres: " .$_SERVER["REMOTE_ADDR"]. "\n";
$mail_body .= "Browser: " .$_SERVER["HTTP_USER_AGENT"]. "\n";
$mail_body .= "Referer: " .$_SERVER["HTTP_REFERER"]. "\n";
$mail_body .= "Host: " .$_SERVER['HTTP_HOST']. "\n";
$mail_body .= "Tijd: " . date("d-m-Y") . " " . date("H:i") . "\n\n";
$mail_body .= "Bericht:\n";
$mail_body .= $_POST['field'];
mail($recipient, $subject, $mail_body, $header); //verzenden email
echo "<div class=\"style1\"><b>Beste " .$_POST['naam']. ", uw bericht is succesvol verzonden.</b></div><br>
<div class=\"style1\">Er zal zo spoedig mogelijk contact met u opgenomen worden.</div><br><br>";
echo "<div class=\"style1\"><a class=\"main\" href='javascript:history.back(1)'>< Ga terug</a></div>";
}
}
else
{
?>
<form action="" method="POST" name="contact">
<table border="0" align="left" width="50%" class="style1">
<input type='hidden' id='antispam' name='antispam' value='' />
<script type='text/javascript'>
document.getElementById('antispam').value='IkWilGeenSpam';
</script>
<tr>
...
Je hebt blijkbaar een }else{ na een }else{ staan, en dat kan uiteraard niet.
Probeer het probleem eens te isoleren door wat code tijdelijk weg te halen, zodat je een betere overzicht hebt welke statements je hebt.
Je kan ook per accolade er een //comment achterzetten die vertelt waar het bij hoort, en als je netjes TAB gebruikt, moet je het ook snel kunnen zien.
Ook code heeft een houdbaarheidsdatum. Zo is dat script 12 jaar oud. Dan is de kans aanwezig dat er verouderde / achterhaalde / niet werkende technieken in verwerkt zitten.
Nee, maar bij elke else hoort één if, en elke if kan maar één else hebben.
Als je meer gevallen wilt onderscheiden dan de conditie in dat ene if-statement zul je:
- ofwel meerdere condities moeten toevoegen met } elseif (<conditie #2>) {, en zo voor elke conditie een apart elseif-blok maken,
- ofwel een apart if-statement maken
Daarbij helpt het als je je code netjes inspringt, dat wil zeggen, spaties of tabs invoegt aan het begin van je regels, zodat je direct kunt zien in welk accolade-blok je zit.
PHP interesseert het geen biet wat je hiermee doet, maar als de code syntactisch niet klopt dan levert dit gewoon een foutmelding op.
Ik heb geen zin om om dit moment +/- 200 regels door te spitten. Maar in een goede editor zoals Netbeans kan je prima zien welke statements bij elkaar horen.
Als je het niet vindt kan je proberen de code (na het maken van een backupje) te isoleren door wat statements weg te halen.
Ook code heeft een houdbaarheidsdatum. Zo is dat script 12 jaar oud. Dan is de kans aanwezig dat er verouderde / achterhaalde / niet werkende technieken in verwerkt zitten.
[/quote]
Zou om die reden dit script maar herschrijven.