-
Form PHP per invio mail
Salve a tutti.
Sto cercando di realizzare un form per l'invio di email da una pagina precedentemente creata. Finora ho fatto questo, ma non riesco a capire perché non funzioni:
IL FORM:
Codice HTML:
<p> <form id="mailform" name="mailform" method="post" action="Form.php">
<p>Nome:
<input type="text" name="nome" /></p>
<p>Email: <input type="text" name="email" /></p>
<p> Messaggio: <textarea cols="40" rows="5" name="messaggio"></textarea></p>
<p><input type="submit" name="submit" value="Invia" /> <input type="reset" name="reset" value="Cancella" /></p></form>
IL PHP:
Codice PHP:
<?php
$nome = $_POST['nome'];
$email = $_POST['email'];
$messaggio = $_POST['messaggio']
if(!empty($_POST['email']) and !empty($_POST['messaggio']) and !empty($_POST['nome']))
else
die("Tutti i campi sono obbligatori!");
mail("liberoventoband@gmail.com" , "Segnalazione dal sito" , "Nome: $nome, Email: $email, Messaggio: $messaggio", "From: liberoventoband@gmail.com\n");
?>
Al momento dell'invio, ricevo il seguente messaggio d'errore:
Parse error: syntax error, unexpected T_IF in /membri/liberovento/Form.php on line 5
I due file sono nella stessa directory e rispettivamente sono contatti.php e form.php (non so se serva che contatti sia in estensione php oppure no).
Scusate se l'errore è banale, ma sono ancora un novizio di php :)
P.S. Se voleste controllare altre cose di persona, ecco il link alla pagina:
http://liberovento.altervista.org/Contatti.php
Grazie a chiunque volesse cercare di dare una mano,
Sebastiano Genna
-
Nella riga
Codice PHP:
$messaggio = $_POST['messaggio']
mancano il punto e virgola finale.
Così l'interprete PHP interpreta quello che segue come fosse appartenente all'istrauzione precedente generando l'errore.
PS.
Quando riporti codice HTML/PHP usa il TAG [PHP] e non già [CODICE]. Quello che viene mostrato risulta più leggibile :wink:
-
Grazie dell'aiuto, hai risolto il problema, ma adesso da un'altro errore:
Parse error: syntax error, unexpected T_ELSE in /membri/liberovento/Form.php on line 6
-
Prima mi ero fermato prima, ora leggo
Codice PHP:
if(!empty($_POST['email']) and !empty($_POST['messaggio']) and !empty($_POST['nome']))
else
die("Tutti i campi sono obbligatori!");
Ma cosa dovrebbe fare esattamente secondo te questo pezzo di codice?
Io potrei provare a leggerlo così:
Se i valori di email, messaggio e nome NON sono vuoti, NON FACCIO NULLA altrimenti blocco l'esecuzione del codice scrivendo il messaggio "Tutti i campi sono obbligatori". Mah!
Giusto per aiutarti ti invito a studiare il PHP.
Ti scrivo la sintassi corretta per quel pezzo di codice:
Codice PHP:
if(condizione) {
Codice da eseguire nel caso in cui la/le condizione/i è/sono verificata/e
}else{
Codice da eseguire nel caso in cui la/le condizione/i NON è/sono verificata/e
}
Naturalmente se come hai fatto tu la condizione è negativa sarebbe al contrario
Codice PHP:
if(!condizione) {
Codice da eseguire nel caso in cui la/le condizione/i NON è/sono verificata/e
}else{
Codice da eseguire nel caso in cui la/le condizione/i è/ sono verificata/e
}
Ora dato che l'errore ti è stato segnalato alla riga 6 e la riga 6 è
Noti differenze?
-
Mi sono effettivamente messo a pensare allo script ed era concettualmente sbagliato. L'ho modificato così e ora funziona:
Codice PHP:
<?php
$nome = $_POST['nome'];
$email = $_POST['email'];
$messaggio = $_POST['messaggio'];
if(!empty($_POST['email']) and !empty($_POST['messaggio']) and !empty($_POST['nome'])) {mail("liberoventoband@gmail.com" , "Segnalazione dal sito" , "Nome: $nome, Email: $email, Messaggio: $messaggio", "From: liberoventoband@gmail.com\n"); echo "<script type=\"text/javascript\">alert(\"Messaggio inviato con successo!\"); history.go(-1)</script>";}
else
echo "<script type=\"text/javascript\">alert(\"Tutti i campi sono obbligatori!\"); history.go(-1)</script>";
?>