Errori in form di contatti

di il
5 risposte

Errori in form di contatti

Ho il seguente form
<?php


// Replace this with your own email address
$siteOwnersEmail = 'la@gmail.com';




if($_POST) {


$name = trim(stripslashes($_POST['contactName']));
$email = trim(stripslashes($_POST['contactEmail']));
$subject = trim(stripslashes($_POST['contactSubject']));
$contact_message = trim(stripslashes($_POST['contactMessage']));


// Check Name
if (strlen($name) < 2) {
$error['name'] = "Inserire il nome.";
}
// Check Email
if (!preg_match('/^[a-z0-9&\'\.\-_\+]+@[a-z0-9\-]+\.([a-z0-9\-]+\.)*+[a-z]{2}/is', $email)) {
$error['email'] = "Inserire un indirizzo mail valido.";
}
// Check Message
if (strlen($contact_message) < 15) {
$error['message'] = "Inserisci il tuo messaggio. Dovrebbe avere almeno 15 caratteri..";
}
// Subject
if ($subject == '') { $subject = "Contact Form Submission"; }




// Set Message
[u]$message .= "Email from: " . $name . "<br />";[/u]
$message .= "Email address: " . $email . "<br />";
$message .= "Message: <br />";
$message .= $contact_message;
$message .= "<br /> ----- <br /> This email was sent from your site's contact form. <br />";


// Set From: header
$from = $name . " <" . $email . ">";


// Email Headers
$headers = "From: " . $from . "\r\n";
$headers .= "Reply-To: ". $email . "\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";




[u]if (!$error) {[/u]


ini_set("sendmail_from", $siteOwnersEmail); // for windows server
$mail = mail($siteOwnersEmail, $subject, $message, $headers);


if ($mail) { echo "OK"; }
else { echo "Something went wrong. Please try again."; }

} # end if - no validation error


else {


$response = (isset($error['name'])) ? $error['name'] . "<br /> \n" : null;
$response .= (isset($error['email'])) ? $error['email'] . "<br /> \n" : null;
$response .= (isset($error['message'])) ? $error['message'] . "<br />" : null;

echo $response;


} # end if - there was a validation error


}


?>
come risolvo i
seguenti errori :
ho sottolineato le righe dove ci sta l'errore

Notice: Undefined variable: message inC:\xampp\htdocs\co\inc\sendEmail.php on line 31

Notice: Undefined variable: error inC:\xampp\htdocs\co\inc\sendEmail.php on line 47
OK

5 Risposte

  • Re: Errori in form di contatti

    L'errore nella variabile "message" è che con la riga
    $message .= "Email from: " . $name . "<br />";
    effettui un "append" ad una variabile che non è stata inizializzata. Semplicemente dovresti fare
    $message = "Email from: " . $name . "<br />";
    Per quanto riguarda la variabile error prova ad usare la funzione "isset":
    if (isset($var)) ...
  • Re: Errori in form di contatti

    Ho fatto queste modifiche... ora non mi da errore..
    però ora se inserisco il nome non mi invia la mail...
    mentre se non inserisco il nome mi invia la mail...
    e mi invia la mail anche se non inserisco nulla..
    Non riesco a capire il problema...
  • Re: Errori in form di contatti

    Probabilmente non hai tolto il "not" davanti alla funzione "isset"


    Sent from my iPhone using Tapatalk
  • Re: Errori in form di contatti

    Il problema spiegato nel post precedente rimane..
    posto il codice
    $siteOwnersEmail = 'la@gmail.com';
    
    
    if($_POST) {
    
       $name = trim(stripslashes($_POST['contactName']));
       $email = trim(stripslashes($_POST['contactEmail']));
       $subject = trim(stripslashes($_POST['contactSubject']));
       $contact_message = trim(stripslashes($_POST['contactMessage']));
    
       // Check Name
    	if (strlen($name) < 2) {
    		$error['name'] = "Inserire il nome.";
    	}
    	// Check Email
    	if (!preg_match('/^[a-z0-9&\'\.\-_\+]+@[a-z0-9\-]+\.([a-z0-9\-]+\.)*+[a-z]{2}/is', $email)) {
    		$error['email'] = "Inserire un indirizzo mail valido.";
    	}
    	// Check Message
    	if (strlen($contact_message) < 15) {
    		$error['message'] = "Inserisci il tuo messaggio. Dovrebbe avere almeno 15 caratteri..";
    	}
       // Subject
    	if ($subject == '') { $subject = "Contact Form Submission"; }
    
    
       // Set Message
       $message = "Email from: " . $name . "<br />";
    	$message .= "Email address: " . $email . "<br />";
       $message .= "Message: <br />";
       $message .= $contact_message;
       $message .= "<br /> ----- <br /> This email was sent from your site's contact form. <br />";
    
       // Set From: header
       $from =  $name . " <" . $email . ">";
    
       // Email Headers
    	$headers = "From: " . $from . "\r\n";
    	$headers .= "Reply-To: ". $email . "\r\n";
     	$headers .= "MIME-Version: 1.0\r\n";
    	$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
    
    
    if (isset ($error)) 
    	 {
          ini_set("sendmail_from", $siteOwnersEmail); // for windows server
          $mail = mail($siteOwnersEmail, $subject, $message, $headers);
    
    		if ($mail) { echo "OK"; }
          else { echo "Errore, Riprova."; }
    		
    	} # end if - no validation error
    
    	else {
    
    		$response = (isset($error['name'])) ? $error['name'] . "<br /> \n" : null;
    		$response .= (isset($error['email'])) ? $error['email'] . "<br /> \n" : null;
    		$response .= (isset($error['message'])) ? $error['message'] . "<br />" : null;
    		
    		echo $response;
    
    	} # end if - there was a validation error
    
    }
    
    ?>
  • Re: Errori in form di contatti

    Scusa, mi correggo ulteriormente: la funzione "isset($error)" restituisce true se la variabile error è settata, cioè in caso di errore. Per cui il codice diventa:
    
    if (!isset($error)) {
       ...
    }
    
Devi accedere o registrarti per scrivere nel forum
5 risposte