php formulieren

  • Onderwerp starter Onderwerp starter kalm
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

kalm

Gebruiker
Lid geworden
26 mei 2004
Berichten
823
php
______________

hallo weet iemand waar ik php contactformulieren voor mijn site kan maken?
ps. zijn deze formulieren makelijk te hosten?
groetjes Kalm





__________________
 
Hallo, weet je er iemand soms waar mijn fout zit?

Code:
<?php
/******************************
*  Script:   Form Mail        *
*  Versie:   4.0              *
*  Author:   SkYcE            *
*  Released: 07-12-2006       *
******************************/

//Set sessie voor flood optie
session_start();

/*
** Variabelen instellen
*/

// Naam voor als afzender van het bevestigingsmailtje
$var_name      = "Cuvelier Paul-Henri";
// Het mail adres waarnaar de data verstuurd moet worden en afzender adres
$var_email     = "info@eethuisje.be";
// Bevestigingsmail naar de verstuurder aanzetten (true = aan / false = uit)
$var_confirm   = FALSE;
// Om flooden te voorkomen (true = aan / false = uit)
$var_noflood   = true;
//Bericht wat een bezoeker te zien krijgt als er sprake is van flooden
$var_flood_msg = "U bent aan het flooden!";
//Aantal flood seconden dat het formulier buiten gebruik moet zijn na het versturen van een bericht
$var_flood_sec = 5;
// Geblokkeerde ip adressen, nieuw ip adres toevoegen is nieuwe waarde in de array
$var_ban_ips   = array('255.255.255.0');
// Bericht wat een bezoeker te zien krijgt indien diegene geblokkeerd is
$var_ban_msg   = "U bent geblokkeerd van het versturen van het contact formulier.";

/*
** Hieronder niks veranderen, tenzij je weet wat je doet
*/
//Functie voor ipadres verkrijgen
function get_ip () {
  if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
  $ipadres = $_SERVER['HTTP_X_FORWARDED_FOR'];
  } elseif(isset($_SERVER['HTTP_CLIENT_IP'])) {
  $ipadres = $_SERVER['HTTP_CLIENT_IP'];
  } else {
  $ipadres = $_SERVER['REMOTE_ADDR'];
  }
  
  return $ipadres;
}

//Host verkrijgen 
$hostmask = gethostbyaddr(get_ip()); 
// Formulier weergeven 
$form_view = true;
//Formulier versturen, als er iets misgaat word $ok = false 
$ok = true; 
// Bestandsnaam verkrijgen
$filename = basename($_SERVER['PHP_SELF']);
// Errors
$error = '';

if($_SERVER['REQUEST_METHOD'] == 'POST') {
  //Validate form
  if(!$_POST['geslacht']) { 
        $ok = false; 
        $error .= '- Er is geen geslacht ingevuld<br />'; 
    }
    if(!trim($_POST['voornaam'])) { 
        $ok = false; 
        $error .= '- Er is geen voornaam ingevuld<br />'; 
    }
    if(!trim($_POST['naam'])) { 
        $ok = false; 
        $error .= '- Er is geen naam ingevuld<br />'; 
    }
    if(!trim($_POST['gebdatum'])) { 
        $ok = false; 
        $error .= '- Er is geen geboortedatum ingevuld<br />'; 
    }
    if(!eregi("[A-Za-z0-9_-]+([.]{1}[A-Za-z0-9_-]+)*@[A-Za-z0-9-]+([.]{1}[A-Za-z0-9-]+)+", $_POST['email'])) {  
        $ok = false;  
        $error .= '- Er is geen geldig e-mailadres ingevuld<br />';  
    }
  if(!$_POST['zaakvoerder']) { 
        $ok = false; 
        $error .= '- Er is geen zaakvoerder geselecteerd<br />'; 
    }
  if(!$_POST['restonaam']) { 
        $ok = false; 
        $error .= '- Er is geen restaurantnaam geselecteerd<br />'; 
    }
  if(!$_POST['jaar']) { 
        $ok = false; 
        $error .= '- Er is geen jaartal ingevuld<br />'; 
    }


    
// E-mail naar $var_email (webmaster)
$msg_2_admin = "
Geslacht:  ".$_POST['geslacht']."
Voornaam:      ".$_POST['voornaam']."
Naam:      ".$_POST['naam']."
Email:     ".$_POST['email']."
Geboortedatum: ".$_POST['gebdatum']."
======================================================================
WEDSTRIJD

Zaakvoerder:  ".$_POST['zaakvoeder']."
Naam restaurant:  ".$_POST['restonaam']."
Aantal jaar:  ".$_POST['jaar']."

======================================================================
Note:        ".$_POST['voornaam']."".$_POST['naam']." stuurde deze email op ".date('d-m-Y')." om ".date('H:i').".

             Het IP adres van ".$_POST['voornaam']."".$_POST['naam']." is: ".get_ip()."
             Het hostadres van ".$_POST['voornaam']."".$_POST['naam']." is: ".$hostmask;

// E-mail naar $_POST['email'] (poster)
$msg_2_poster = "Beste ".$_POST['voornaam']."".$_POST['naam'].", 

Bedankt voor het invullen van het formulier. Je hebt het formulier
ingevuld op ".date('d-m-Y')." om ".date('H:i').". Vanaf ".get_ip().".
======================================================================
Geslacht:  ".$_POST['geslacht']."
Voornaam   ".$_POST['voornaam']."
Naam:      ".$_POST['naam']."
Email:     ".$_POST['email']."
Geboortedatum: ".$_POST['gebdatum']."
======================================================================

Zaakvoerder:  ".$_POST['zaakvoerder']."
Naam restaurant:  ".$_POST['restonaam']."
Aantal jaar:  ".$_POST['jaar']."

======================================================================

  if(in_array(get_ip(),$var_ban_ips)) {
    echo $var_ban_msg;
    $form_view = false;
  } elseif ($var_noflood == true && (time()-$_SESSION["antiflood"]) <= $var_flood_sec) {
    echo $var_flood_msg;
    $form_view = false;
  } elseif ($ok == true) {
        @$send = mail($var_email,
                "Contact: Wedstrijd",
                $msg_2_admin,
                "From: ".$_POST['naam']."<".$_POST['email'].">");
        
    if($send == 1) {  
      if($var_confirm == true){  
        mail($_POST['email'],
           "Bevestiging Contact: Wedstrijd",
           $msg_2_poster,
           "From: ".$var_name."<".$var_email.">");  
      }
      
      echo'Beste '.$_POST['naam'].', uw bericht is verzonden, bedankt voor uw reactie.';
      
      if($var_confirm == true){  
        echo'<br /><br />Er is een bevestigingsmail onderweg met wat u heeft ingevuld.'; 
      } 
    }else{  
      echo'Beste '.$_POST['naam'].', uw bericht is helaas niet verzonden.<br /><br />
      Er is een fout opgetreden bij het verzenden. Wij zullen proberen het probleem zo snel mogelijk
      te verhelpen.<br /><br />
      
      Mocht dit probleem na enkele dagen niet verholpen zijn,neem dan contact op met de
      <a href="mailto:'.$var_email.'">Webmaster</a><br /><br />
      
      Bedankt voor uw medewerking.';  
    } 
    
    $form_view = false;
    
    $_SESSION["antiflood"] = time();
  }
}

/*
** Formulier
*/

if($form_view == true) {
  echo '
<html>
<head>
<title>Eethuisje - Stonebridge</title>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href='../algemeen.css' rel='stylesheet' type='text/css'>
</head>
<body bgcolor="#FFFFFF">
<table width="100%" height="100%" border="0" cellspacing="0" cellpadding="0">
    <tr>
      <td align="center" valign="middle"> 
      		<table id="Table_01" width="640" height="480" border="0" cellpadding="0" 
								    cellspacing="0" bgcolor="#a3a7df">
        				 <tr>
								    <td	class="titlehome7">
										Wedstrijd
										<span class="titlehomewit7">
												   <br>
													 Speel mee en win <br />
													 één van de 50 gratis menu's!
												
								        <form method="POST" action="'.$filename.'">		 
  											<table summary="" border="0" width="320" class="wedstrijd" >
															 													       
	<tr><td>Geslacht:</td> 
      <td> 
      <input type="radio" name="geslacht" value="Man"'.(isset($_POST['geslacht']) && $_POST['geslacht'] == "Man" ? ' checked' : '').'> Man 
      <input type="radio" name="geslacht" value="Vrouw"'.(isset($_POST['geslacht']) && $_POST['geslacht'] == "Vrouw" ? ' checked' : '').'> Vrouw 
      </td></tr>
																	
	<tr><td>Voornaam:</td>
      <td><input type="text" name="voornaam" size="26" maxlength="26" value="'.(isset($_POST['voornaam']) ? $_POST['voornaam'] : '').'"></td> 
  </tr> 
  <tr><td>Naam:</td>
      <td><input type="text" name="naam" size="26" maxlength="26" value="'.(isset($_POST['naam']) ? $_POST['naam'] : '').'"></td> 
  </tr> 
  <tr> 
      <td>E-mailadres:</td> 
      <td><input type="text" name="email" size="26" maxlength="36" value="'.(isset($_POST['email']) ? $_POST['email'] : '').'"></td> 
  </tr> 
  <tr><td>Geboortedatum:</td>
      <td><input type="text" name="gebdatum" size="10" maxlength="10" value="'.(isset($_POST['gebdatum']) ? $_POST['gebdatum'] : '').'"></td> 
  </tr> 														
																	
																	
															
															<tr><td><br /></td>
															     <td></td></tr>
															 <tr><td colspan="2">Wie is de zaakvoerder van het restaurant?
															         <br />
      <input type="radio" name="zaakvoerder" value="Pierre"'.(isset($_POST['zaakvoerder']) && $_POST['zaakvoerder'] == "Pierre" ? ' checked' : '').'> Pierre Cuvelier <BR>
      <input type="radio" name="zaakvoerder" value="Marleen"'.(isset($_POST['zaakvoerder']) && $_POST['zaakvoerder'] == "Marleen" ? ' checked' : '').'> Marleen Vandenhoeke <BR>
      <input type="radio" name="zaakvoerder" value="PaulHenri"'.(isset($_POST['zaakvoerder']) && $_POST['zaakvoerder'] == "PaulHenri" ? ' checked' : '').'> Paul-Henri Cuvelier <BR>
																			 <br /></td></tr>
																			 
															 <tr><td colspan="2">Hoe noemt het nieuwe restaurant nu?
															 				 <br />
      <input type="radio" name="restonaam" value="Pierre"'.(isset($_POST['restonaam']) && $_POST['restonaam'] == "Pierre" ? ' checked' : '').'> Stonebridge <BR>
      <input type="radio" name="restonaam" value="Marleen"'.(isset($_POST['restonaam']) && $_POST['restonaam'] == "Marleen" ? ' checked' : '').'> Stonebridge Banket <BR>
      <input type="radio" name="restonaam" value="PaulHenri"'.(isset($_POST['restonaam']) && $_POST['restonaam'] == "PaulHenri" ? ' checked' : '').'> Eethuisje <BR>
																			 <br /></td></tr>
																			 
															  <tr><td colspan="2">	Hoeveel jaar staan de zaakvoeders al<br />
																 ter dienste van hun klanten? 
																   <td><input type="text" name="jaar" size="2" maxlength="2" value="'.(isset($_POST['jaar']) ? $_POST['jaar'] : '').'"></td>

																				<br /><br />


																    </td></tr>
																<tr><td colspan="2" align="center"><input type="submit" name="submit" value="Versturen">
																    </td></tr>		
												   </table>			
												</FORM>			
										</td>
		  					    <td>
											 		 <table summary="">
																    
	    					 <tr > 
          			     <td rowspan="10" > <img src="../images/ff7_02.jpg" width="369" 
										 		 							       height="149" alt="">
										 </td>
		
                     <td width="271" height="12" class="withlinkpage7" valign="middle">
										 		 <a href="3.html">Restaurant</a>
										</td>
									</tr>
									<tr>
		  						  <td> </td>
	</tr>
	<tr>
		
          <td width="271" height="11" class="withlinkpage7" valign="middle">
					<a href="4.html">Tuin</a></td>
	</tr>
	<tr>
		  <td></td>
	</tr>
	<tr>
		
          <td width="271" height="12" class="withlinkpage7huidig" valign="middle"><a href="7.html">Onze kaart & Wedstrijd</a></td>
	</tr>
	<tr>
		  <td></td>
	</tr>
	<tr>
		
          <td width="271" height="11" class="withlinkpage7" valign="middle"><a href="5.html">Onze Menu's</a></td>
	</tr>
	<tr>
		  <td></td>
	</tr>
	<tr>
		
          <td width="271" height="11" class="withlinkpage7" valign="middle"><a href="6.html">Contact</a></td>
	</tr>
	
	<tr>
		  <td></td>
	</tr>
</table>
	<br></td></tr>
</table>

</body>
</html>';
}
?>

de fout zou zitten op regel 139
en dat is:

Code:
  if(in_array(get_ip(),$var_ban_ips)) {
    echo $var_ban_msg;
    $form_view = false;
  } elseif ($var_noflood == true && (time()-$_SESSION["antiflood"]) <= $var_flood_sec) {
    echo $var_flood_msg;
    $form_view = false;
  } elseif ($ok == true) {
        @$send = mail($var_email,
                "Contact: Wedstrijd",
                $msg_2_admin,
                "From: ".$_POST['naam']."<".$_POST['email'].">");

de eerste regel is 136

Bedankt alleszinds
 
Dit is de foutmelding:

Parse error: syntax error, unexpected '"', expecting T_STRING or T_VARIABLE or T_NUM_STRING in mail22.php on line 139
 
als je nou gewoon een nieuw toppic erover zou openen....
en hoe moeten wij nou weten wat r.139 is
 
en hoe moeten wij nou weten wat r.139 is
staat in z'n vorige post....

Ik vermoed dat je probleem hier zit (de bewuste regel 139 dus)
PHP:
elseif ($var_noflood == true && (time()-$_SESSION["antiflood"]) <= $var_flood_sec)

omdat ik vermoed dat dit door de server als volgt wordt geïnterpreteerd:
eerst
PHP:
($var_noflood == true
als die waar is wordt naar het volgende van de gekeken
PHP:
(time()-$_SESSION["antiflood"])
en het zou kunnen dat dan reeds de && wordt gevalideerd, aangezien het tweede altijd een getal oplevert, is dit true. Daarna wordt volgend statement getest:
PHP:
true <= $var_flood_sec)
wat je fout oplevert.

Misschien helpt het met gewoon een extra paar haakjes toe te voegen, als volgt:

elseif ($var_noflood == true && ((time()-$_SESSION["antiflood"]) <= $var_flood_sec))

--Johan
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan