Hallo Allemaal,

Ik ben pas nieuw hier en ben sinds kort met PHP bezig.

Ik heb een script geschreven maar ik krijg de de volgende error.
Parse error: syntax error, unexpected $end /home/sites/www.royalexander.eu/web/html/testmail/tactcon.php on line 142

Ik kan zelf niet vinden wat er fout zit in het script kunnen jullie me helpen.

hieronder staat het script:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
<style type="text/css">
<!--
body,td,th {
	color: #66CC00;
	font-family: "Times New Roman", Times, serif;
	font-size: 14px;
	font-style: normal;
	font-weight: normal;
	font-variant: normal;
	background: #062792;
}
body {
	background-image: url(../../images/achtergrond1.jpg);
}
.roy2 {
	font-family: "Times New Roman", Times, serif;
	font-size: 14px;
	color: #66cc00;
	background: #062792;
}
-->
</style>
</head>

<body>
<?php
function valid_mail ($str) {
 return (ereg ('(^[0-9a-zA-Z_\.-]{1,}@[0-9a-zA-Z_\.-]{1,}\.)+[0-9a-zA-Z_\.-]{2,}$)', $str));
 }
function valid_name ($str) {
 return (ereg ('^[A-Za-z. -]+$', $str));
 }
function valid_adres ($str) {
 return (ereg ('^([A-Za-z-.])+0-9+([a-z])+$', $str));
 }
function valid_postc  ($str) {
 return (ereg ('^[0-9]{4}]+$', $str));
 }
function valid_postl  ($str) {
 return (ereg ('^[A-Z]{2}]+$', $str));
 }
function valid_plaats  ($str) {
 return (ereg ('^[A-Z]+$', $str));
 }
function valid_telefoon  ($str) {
 return (ereg ('^[0-9]{10}]+$', $str));

 
  
$naam = ucfirst($naam);
if ($verzenbotton != "verzenden" || !valid_name($name) || !valid_mail($mail) || !valid_adres($adres) || !valid_postc($postc) || !valid_postl($postl) || !valid_plaats($plaats) || !valid_telefoon($telefoon) || isset($reactie)) {//dus als het formulier leeg is of een van deze waarden niet is ingevuld
?>
<form action="tactcon.php" method="post">
<table border="0">
    <tr>
      <td class="style4"><div align="right" class="style2">Naam:</div></td>
	  <?php
		if ($verzendbutton && !valid_name($name)) {
			echo "<font color=\"red\">Vul hier uw naam correct in!</font>";
	    }
	?>
      <td><input name="name" type="text" class="roy2"  id="name" size="75"  value="<?php echo $naam ?>"/></td>
    </tr>
    <tr>
      <td class="style4"><div align="right" class="style2">Adres:</div></td>
	  <?php
		if ($verzendbutton && !valid_adres($adres)) {
			echo "<font color=\"red\">Vul hier uw Adres correct in!</font>";
	    }
	?>
      <td><input name="adres" type="text" class="roy2" id="adres" size="75" value="<?php echo $adres ?>"/></td>
    </tr>
	<tr>
      <td class="style4"><div align="right" class="style2">Postcode + Plaats: </div></td>
	  <?php
		if ($verzendbutton && !valid_plaats($plaats) && !valid_postc($postc) && !valid_postl($postl)) {
			echo "<font color=\"red\">Vul hier uw Postcode en/of woonplaats correct in!</font>";
	    }
	?>
      <td><input name="postc" type="text" class="roy2" id="postc" size="10" value="<?php echo $postc ?>"/>
      <input name="postl" type="text" class="roy2" id="postl" size="5" value="<?php echo $postl?>"/>
      <input name="plaats" type="text" class="roy2" id="plaats" size="50" value="<?php echo $plaats ?>"/></td>
    </tr>
    <tr>
      <td class="style4"><div align="right" class="style2">E-mail-adres:</div></td>
	  <?php
		if ($verzendbutton && !valid_mail($mail)) {
			echo "<font color=\"red\">Vul hier uw e-mailadres correct in!</font>";
	    }
	?>
      <td><input name="mail" type="text" class="roy2" id="mail" size="75" value="<?php echo $mail ?>" /></td>
    </tr>
    <tr>
      <td class="style4"><div align="right"><span class="style2">Telefoonnummer</span>:</div></td>
	  <?php
		if ($verzendbutton && !valid_telefoon($telefoon)) {
			echo "<font color=\"red\">Vul hier uw telefoonnummer correct in!</font>";
	    }
	?>
      <td><input name="telefoon" type="text" class="roy2" id="telefoon" size="75" value="<?php echo $telefoon ?>"/></td>
    </tr>
    <tr>
      <td class="style4"><div align="right" class="style2">Reactie/Vraag:</div></td>
	  <?php
		if ($verzendbutton && !isset($reactie)) {
			echo "<font color=\"red\">Geef hier uw reactie</font>";
	    	?>
      <td><textarea cols="58" rows="10" name="reactie" class="roy2" id="reactie"><?php echo $reactie ?></textarea></td>
    </tr>
  </table>
  </form>
  <?php 
  } else { // in alle andere gevallen (dus formulier verzonden)
    $boodschap=
	"
    Reactie van Royalexander.eu
    ================================
    Naam:                  .$naam.
    Adres:                 .$adres.
    Postcode + woonplaats: .$postc.+.$postl. .$plaats.
    Telefoonnummer:        .$telefoon.
    Reactie:
    .$reactie.";
  
    $mailFrom = "$naam $mail";
    $mailTo = "[email protected]";           
    $msgSubject = "Reactie via de site"; 
    $msgBody = "$boodschap"; 
    $xHeaders = "From: $mail\nX-Mailer: PHP/" . phpversion();
    ini_set(sendmail_from, "$mail");
    mail ($mailTo, $msgSubject, $msgBody, $xHeaders);
    ini_restore;
    echo "<font color=\#66CC00\">bedankt ".$naam.", Je reactie of vraag wordt zo snel mogelijk beantwoord</font>";
    }
    ?>
</body>
</html>


ik hoop dat jullie me kunnen helpen.

groeten,

MarcelDJ
ModEdit: Welkom Marcel,

Je had het bijna goed met de code tags. Het moeten [ignore]
 en 
tags zijn, dus zonder de underscores.[/ignore]

SanThe.
Je topictitel is de error? Ga dan maar alle ( en ) en { en } tellen. Zeer waarschijnlijk dat er daar wat aan mankeert.
Ja dat is de error.

als ik de ( en ) of { en } moet tellen geld dat dan per stukje script wat tussen


<?php ...... ?>

staat.

of moet ik alles bij elkaar optellen?
nee niet optellen, voor elke { of ( moet er ook een ) of } zijn. anders denkt php dat hij nog ergens mee bezig is....
function valid_plaats ($str) {
return (ereg ('^[A-Z]+$', $str));
}
function valid_telefoon ($str) {
return (ereg ('^[0-9]{10}]+$', $str));

Bij je laatste functie mis je nog een }
ik heb dat aangepast maar ik krijg nog steeds die melding
dan moet je alles even opmaken:

na een if, else, for, while enz spring je 1 tab in.

<?php
if($_SERVER['request_method'] == "POST") {
     //hier je code
} else {
     // hier weer code
     if(!empty($naam)) {
           //weer in springen
           if($var == "iets") {
                 // bla bla
           }
     }
}
?>

op deze manier kan je makkelijk zien hoeveel je er nog moet afsluiten
uiteindelijk is het gelukt.
hij wordt geopend en ik kan deze invullen.
Bij het verzenden krijg ik de volgende melding:

Warning: ereg() [function.ereg]: REG_ERANGE in /home/sites/www.royalexander.eu/web/html/testmail/tactcon2.php on line 40

Ook krijg ik dat er bepaalde velden niet of niet correct zijn ingevuld. terwijl alle velden aan de voorwaarden voldoen waar ze aan moeten voldoen

hoe kan dit nu?
als je het mij vraagt is heel je code nogal rommelig en onoverzichtelijk. daar heb je nu zelf ook last van. probeer eerst je code wat netter te maken. dan haal je de fouter er veel sneller uit.

dit is een algemene manier op je formulieren af te handelen:


<?php
if($_SERVER['REQUEST_METHOD'] == "POST") {

	# Hier de afhandeling van het formulier
	
	# Hier komen je errors in te staan
	$errors = "";
	
	# Naam mag niet leeg zijn
	if(empty($_POST['naam'])) {
		$errors .= "U heeft geen naam ingevuld.<br />";
	}
	if(!is_numeric($_POST['telefoonnummer']) || strlen($_POST['telefoonnummer']) != 10)  {
		$errors .= "Verkeerd telefoonnummer.<br />";
	}
	
	# Kijken of er een error is
	if(!empty($errors)) {
		echo "Errors: " . $errors;
	} else {
	
		# Mail versturen
		mail();
	}	
	
} else {
	?>
 	<form method="POST" action="<?php $_SERVER['PHP_SELF']; ?>">
		<input type="text" name="naam" />
		<input type="text" name="telefoonnummer" />
	</form>
	<?php
}
?>

Reageren