Ik ben al zo'n lange tijd aan t proberen mijn contact.php werkend te krijgen. Heb het hele www afgestruind en het lukt maar niet. Ik hoop heel erg dat iemand me uit de brand helpt. Eeuwig dankbaar!
Hierbij mijn php:


<?php
/*
* Contact Form Class
*/


header('Cache-Control: no-cache, must-revalidate');
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Content-type: application/json');

$admin_email = 'info@mijnadresl'; // Your Email
$message_min_length = 5; // Min Message Length


class Contact_Form{
	function __construct($details, $email_admin, $message_min_length){
		
		$this->name = stripslashes($details['name']);
		$this->email = trim($details['email']);
		$this->subject = 'Contact from Your Website'; // Subject 
		$this->message = stripslashes($details['message']);
	
		$this->email_admin = $email_admin;
		$this->message_min_length = $message_min_length;
		
		$this->response_status = 1;
		$this->response_html = '';
	}


	private function validateEmail(){
		$regex = '/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i';
	
		if($this->email == '') { 
			return false;
		} else {
			$string = preg_replace($regex, '', $this->email);
		}
	
		return empty($string) ? true : false;
	}


	private function validateFields(){
		// Check name
		if(!$this->name)
		{
			$this->response_html .= '<p>Please enter your name</p>';
			$this->response_status = 0;
		}

		// Check email
		if(!$this->email)
		{
			$this->response_html .= '<p>Please enter an e-mail address</p>';
			$this->response_status = 0;
		}
		
		// Check valid email
		if($this->email && !$this->validateEmail())
		{
			$this->response_html .= '<p>Please enter a valid e-mail address</p>';
			$this->response_status = 0;
		}
		
		// Check message length
		if(!$this->message || strlen($this->message) < $this->message_min_length)
		{
			$this->response_html .= '<p>Please enter your message. It should have at least '.$this->message_min_length.' characters</p>';
			$this->response_status = 0;
		}
	}


	private function sendEmail(){
		$mail = mail($this->email_admin, $this->subject, $this->message,
			 "From: ".$this->name." <".$this->email.">\r\n"
			."Reply-To: ".$this->email."\r\n"
		."X-Mailer: PHP/" . phpversion());
	
		if($mail)
		{
			$this->response_status = 1;
			$this->response_html = '<p>Thank You!</p>';
		}
	}


	function sendRequest(){
		$this->validateFields();
		if($this->response_status)
		{
			$this->sendEmail();
		}

		$response = array();
		$response['status'] = $this->response_status;	
		$response['html'] = $this->response_html;
		
		echo json_encode($response);
	}
}


$contact_form = new Contact_Form($_POST, $admin_email, $message_min_length);
$contact_form->sendRequest();

?>



En mijn html:



        	<div class="contact-details" id="contact-form">
     
 <br />
  <br />
  				 <form action="contact.php" method="post" id="form" class="contact-form">
        

        	
        	<p><textarea placeholder="Wat wil je bestellen?" name="comments" rows="5" cols="40"></textarea></p>
        	
            	<p class="contact-name">
            		<input id="contact_name" type="text" placeholder="Naam" value="" name="name" />
                </p>
                <p class="contact-straat">
            		<input id="straat" type="text" placeholder="Straat, huisnummer, postcode en woonplaats" value="" name="name" />
                </p>
                <p class="contact-email">
                	<input id="contact_email" type="text" placeholder="Telefoonnummer en emailadres" value="" name="email" />
                </p>
                <p><textarea placeholder="......." name="comments" rows="5" cols="40"></textarea></p>
                <p class="contact-message">
                	<textarea id="contact_message" placeholder="Bericht of opmerking" name="message" rows="15" cols="40"></textarea>
                </p>
               <center>   <p class="contact-submit">
                	<a id="contact-submit" class="submit" href="contact.php">Bestel!</a>
                </p>
                
                <div id="response">
                
                </div>
            
            
            </form>
         
        </div>

Kan je vertellen wat er niet aan lukt?
En zou je jouw code tussen codetags willen plaatsen zodat het beter leesbaarder is? Zie ook onze 'Veelgestelde Vragen' hierover.
<input id="contact_name" type="text" placeholder="Naam" value="" name="name" />
<input id="straat" type="text" placeholder="Straat, huisnummer, postcode en woonplaats" value="" name="name" />

Kijk eens naar het name atribute
Dank voor reacties
Als ik alle velden invul hipt de site naar boven en komt er geen mail mijn box in....Zal codetags aanpassen.

En hier mijn html

Toevoeging op 29/03/2016 15:40:14:

<div class="contact-details" id="contact-form">

<br />
<br />
<form action="contact.php" method="post" id="form" class="contact-form">



<p><textarea placeholder="Wat wil je bestellen?" name="comments" rows="5" cols="40"></textarea></p>

<p class="contact-name">
<input id="contact_name" type="text" placeholder="Naam" value="" name="name" />
</p>
<p class="contact-straat">
<input id="straat" type="text" placeholder="Straat, huisnummer, postcode en woonplaats" value="" name="name" />
</p>
<p class="contact-email">
<input id="contact_email" type="text" placeholder="Telefoonnummer en emailadres" value="" name="email" />
</p>
<p><textarea placeholder="......." name="comments" rows="5" cols="40"></textarea></p>
<p class="contact-message">
<textarea id="contact_message" placeholder="Bericht of opmerking" name="message" rows="15" cols="40"></textarea>
</p>
<center> <p class="contact-submit">
<a id="contact-submit" class="submit" href="contact.php">Bestel!</a>
</p>

<div id="response">

</div>


</form>

</div>

Hm, komt hier verder geen JavaScript aan te pas, want die Contact_Form class lijkt mij geschikter om verwerkt te worden in een AJAX-call in een soort van inline popup ofzo?

Waar heb je deze code vandaan, en werd daar geen voorbeeld van gebruik bij gegeven?
En ook, is deze code compleet, of ontbreekt er niet gewoon nog een hele zwik JavaScript?

Wanneer je op de normale manier een formuler verzend (het request-response schaakspel) zoals bij normale HTTP requests gebeurt, dan hoef je helemaal geen JSON te gebruiken (die simpelweg HTML bevat)?

Ik vind de hele constructie op zijn zachtst gezegd... curieus.
En los daarvan gebruik je twee keer de waarde 'name' bij het name-argument in je formulier. Deze waardes moeten uniek zijn.
Dank je wel voor reactie. Ik heb deze template van internet en simpelweg gecopypaste en in mapje gezet. Ik ga het over een andere boeg gooien!

Reageren