Salve a tutti,
Mi chiamo Paolo e sono un'italiano che abita in Brasile da nove anni.
Sono webdesigner e sto, da poco, giocando con il php che mi piace moltissimo.
Ho un problema che forse potete aiutarmi a risolvere:
Lo script che uso (mail.php) l'ho ricavato modificando lo script originale di Lorenzone (Grazie mille Lorenzo'!!!). All'inizio mi bastava, però ora vorrei che mi validasse l'e-mail e che mi dicesse, per esempio, se i campi sono vuoti rimandando l'utente al formulario per riempirli a dovere. Lo so che ci saranno cosí un'infinità di 'elseif', ma non mi importa.
Il problema è che quando aggiungo gli elseif non mi funziona. Il codice originale è:
<?php
// l'indirizzo del destinatario della mail
$to = "noblocodenotas@noblocodenotas.com";
// IL SOGGETTO DELLA MAIL
$subject = "Formulario procedente do site www.noblocodenotas.com";
// COSTRUIAMO IL CORPO DEL MESSAGGIO
$body = "Contenuto del modulo:\n\n";
$body .= "name: " . trim(stripslashes($_POST["name"])) . "\n";
$body .= "email: " . trim(stripslashes($_POST["email"])) . "\n";
$body .= "title: " . trim(stripslashes($_POST["title"])) . "\n";
$body .= "message: " . trim(stripslashes($_POST["message"])) . "\n";
// INTESTAZIONI SUPPLEMENTARI
$headers = "From: Modulo utenti<modulo@noblocodenotas.com>";
// INVIO DELLA MAIL
if(@mail($to, $subject, $body, $headers)) {// Se l'inoltro e' andato a buon fine mostra un messaggio di ricevuto
include('./templates/header.inc');
echo "<h3 style=\"text-align:center;\">Seu recado foi enviado.</h3>";
echo "<hr />";
include('./templates/footer1.inc');
} else {// ALTRIMENTI...
include('./templates/header.inc');
echo "<h3 style=\"text-align:center;\">Problemas no envio!</h3>";
echo "<hr />";
include('./templates/footer1.inc');
}
?>
E quello che ho modificato, ma che non funziona, è:
<?php
include('./templates/header.inc');
// Le variabili che sono contenute nei campi del formulario
$name = $_POST['name'];
$email = $_POST['email'];
$title = $_POST['title'];
$message = $_POST['message'];
// L'indirizzo di provenienza
$url = "http://blog-o-mine.noblocodenotas.com";
// L'espressione che convaliderà l'e-mail
$check = ereg("^[a-zA-Z0-9\.\_\-]+@[a-zA-Z0-9\.\_\-]+\.[a-zA-Z]|{\.[a-zA-Z]+\.[a-zA-Z]}+$", $email);
// Il check-out della mail
$sent = @mail($to, $subject, $body, $headers);
// l'indirizzo del destinatario della mail
$to = "lancelot@noblocodenotas.com";
// IL SOGGETTO DELLA MAIL
$subject = "Modulo proveniente dal sito blog-o-mine";
// COSTRUIAMO IL CORPO DEL MESSAGGIO
$body = "Contenuto del modulo:\n\n";
$body .= "name: " . trim(stripslashes($_POST["name"])) . "\n";
$body .= "email: " . trim(stripslashes($_POST["email"])) . "\n";
$body .= "title: " . trim(stripslashes($_POST["title"])) . "\n";
$body .= "message: " . trim(stripslashes($_POST["message"])) . "\n";
// INTESTAZIONI SUPPLEMENTARI
$headers = "From: $url";
// INVIO DELLA MAIL
if (!$name) {// Se il campo del nome è vuoto manda un messaggio di errore
echo "<h3>Coloque seu nome completo!</h3>";
echo "<hr />";
} elseif (!$email) {// Se il campo de e-mail è vuoto mostra un messaggio di errore
echo "<h3>Coloque seu e-mail!</h3>";
echo "<hr />";
} elseif (!$check) {// Se l'indirizzo di e-mail non è valido mostra un messaggio di errore
echo "<h3>Use um e-mail válido!</h3>";
echo "<hr />";
} elseif (!$title) {// Se il titolo non c'è mostra un messaggio d'errore
echo "<h3>Dê um título!</h3>";
echo "<hr />";
} elseif (!$message) {// Se il testo non c'è mostra un messaggio d'errore
echo "<h3>Escreva seu recado!</h3>";
echo "<hr />";
} elseif($sent) {// Se l'inoltro e' andato a buon fine mostra un messaggio di ricevuto
echo "<h3>Seu recado foi enviado. Obrigado.</h3>";
echo "<hr />";
} else {// ALTRIMENTI...
echo "<h3>Problemas no envio!</h3>";
echo "<hr />";
}
include('./templates/footer.inc');
?>
Con questo non voglio dire che non funzioni; funziona, perché controlla tutti i campi, ma non mi manda la mail, quando arriva al mail($bla, $bla, $bla); mi dice che ci sono problemi nell'invio.
Sarebbe normale se questo succedesse a casa, dove non ho il server configurato per mandare le mail (non mi è mai servito e per questo non l'ho mai fatto), ma quando lo carico sul server in remoto (dove lo script di saibal funziona) il mio non funziona.
Che cosa ho fatto di sbagliato?
Grazie mille!!!