salve a tutti, è la prima volta che scrivo
sto finendo di realizzare un sito personale ed ho dei problemi con il modulo per l'invio della mail
premetto che non ho una grande esperienza html, php ecc.. ma ci sono riuscito scaricando un template e modificandolo
sto provando in locale il sito con wamp ma non riesco proprio a far funzionare il madulo
ecco l'html:
codice HTML:
<form id="contact-form" class="contact-form" action="#">
<p class="contact-name">
<input id="contact_name" type="text" placeholder="Full Name" value="" name="name" />
</p>
<p class="contact-email">
<input id="contact_email" type="text" placeholder="Email Address" value="" name="email" />
</p>
<p class="contact-message">
<textarea id="contact_message" placeholder="Your Message" name="message" rows="15"
cols="40"></textarea>
</p>
<p class="contact-submit">
<a id="contact-submit" class="submit" href="#">Send Your Email</a>
</p>
<div id="response">
e questo è il php:
Codice 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 = 'miamail@mail.it'; // Your Email
$message_min_length =
1; // 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();
?>
il file php si trova nella cartella root/_include/php/contact.php
sembra che il form non comunichi con il php o non so...
ho lasciato aperte le porte 80 e 25 ed il sito è accessibile dall'esterno della rete
qualcuno mi aiuta?
grazie mille a tutti