Form mail PHP

italsasha

Nuovo Utente
23 Nov 2008
4
0
0
Scusate, io sono troppo "fresca" nel PHP, muovo i primi passi, come si dice. Prima non volevo disturbarvi e aprire un nuovo tema, ma ho un problema, ho personalizzato uno script che mi hanno mandato da MisterDomein, però non riesco a farlo funzionare, browser mi scrive: PHP Parse error: syntax error, unexpected T_ELSE in C:\WebSites\capitalcasaimmobiliare.it_z0mw1rmdshq5 jawo\mailto.php on line 52
mi potreste dire cosa vuol dire? Ho sbagliato qualche codice? Grazie a chi mi può aiutare.
 
ciao
come ti dicevo dovresti copiare il codice che ti da errore bast che tu apra il file incriminato e tu faccia un copia incolla. dal file a qui sul post, qusto per capire da cosa viene generato l'errore
 
Eccolo qui:
<?php

// indirizzo email dove ricevere la email dal form
$receiverMail = 'le.computier@tiscali.it';

// decommentare se si vuole che l'utente sia reindirizzato ad una pagina particolare (e vedi OPZIONE2 sotto)
$redirect = 'http://capitalcasaimmobiliare.it/ringraziamento.html';

// Oggetto della email
$subject = 'Richiesta informazioni dal sito CAPITALCASA immobiliare';

// campi del modulo (da personalizzare con quelli del proprio form)
$nome = trim(stripslashes($_POST['nome']));
$cognome = trim(stripslashes($_POST['cognome']));
$telefono = $_POST['telefono'];
$subj = $_POST['subj'];
$email = $_POST['email'];
$note = trim(stripslashes($_POST['note']));

// dati utente che compila il form (ip ecc. ecc)
$auth = date("Y-m-d")." : ".$_SERVER['HTTP_REFERER']." : ".$_SERVER['REMOTE_ADDR']." : ".$_SERVER['HTTP_USER_AGENT'];

// messaggio di controllo per i campi obbligatori
// se lo sono tutti usare la prima
// se lo sono solo alcuni usare la seconda

$stringa1 = "Tutti i campi sono obbligatori!";

// messaggio di controllo email non valida
$stringa2 = "Indirizzo email non valido!";

// messaggio di invio riuscito (decommentare se si usa OPZIONE1 vedi sotto)
#$stringa3 = "Messaggio inviato correttamente. Grazie!";

// formato del messaggio
$msgformat = "La persona $nome $cognome ha inviato un Modulo di richiesta:\n\nNome: $nome\nCognome: $cognome\nEmail: $email\nTelefono: $telefono\nOggetto: $subj\n\nNote: $note\n\n\nQuesti sono i dati dell'utente che ha compilato il modulo: $auth";

// definisce i campi obbligatori (da personalizzare con quelli del proprio form)
if (( $nome == "nome" ) || ( $cognome == "cognome" ) || ( $telefono == "telefono" ))
// popup di errore sui campi obbligatori
{
echo "<script language=\"JavaScript\">\n";
echo "alert(\"$stringa1\");\n";
echo "javascript:history.go(-1);";
echo "</script>";
}

// controllo del formato della email
else if (eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$", $email))
{
// popup di errore se fallisce il controllo formato email
else
{
echo "<script language=\"JavaScript\">\n";
echo "alert(\"$stringa2\");\n";
echo "javascript:history.go(-1);";
echo "</script>";
}
// invia la email a me
mail($receiverMail, $subject, $msgformat, "From: $email");


// nelle prossime righe definisco se voglio un semplice popup che avvisa l'utente che il messaggio è stato inviato (OPZIONE1) e che lo fa ritornare automaticamente alla pagina dove ha compilato il form

// OPPURE

// se ridirezionarlo verso una pagina web specifica (OPZIONE2)


// OPZIONE1:
// popup di messaggio inviato e ritorno alla pagina precedente
// decommentare $stringa3
// commentare tutto se si usa OPZIONE2 (per commentare usare /* all'inizio e */ alla fine delle righe da commentare)
/*
echo "<script language=\"JavaScript\">\n";
echo "alert(\"$stringa3\");\n";
echo "javascript:history.go(-1);";
echo "</script>";
}
*/
// OPZIONE2:
// popup di messaggio inviato e ridirezionamento ad una pagina web
// decommentare $redirect
// commentare tutto se si usa OPZIONE1 (per commentare usare /* all'inizio e */ alla fine delle righe da commentare)

echo "<script language=\"JavaScript\">\n";
echo "window.location.href=(\"$redirect\");\n";
echo "</script>";
}



?>
Mi scuso per il disturbo e vi ringrazio in anticipo.
 
ciao
così ad occhio e croce

PHP:
// controllo del formato della email
else if (eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$", $email))
{


tra else ed if prova a togliero lo spazio

elseif

altrimenti lo dovrebbe interpretare
else { if {.....}}
mi sembra che sia l'unico errore.

p.s.
non sempre php segnala l'errore alla riga in cui si trova, ma per php il codice else if{ è giusto da errore quando alla fine non trova la graffa di chiusura dell'else
spero di essere stato chiaro, comunque sono qui (e tanti altri)
 
Hai fatto un po' ci casino con le parentesi. Prova così:

PHP:
<?php

// indirizzo email dove ricevere la email dal form
$receiverMail = 'le.computier@tiscali.it';

// decommentare se si vuole che l'utente sia reindirizzato ad una pagina particolare (e vedi OPZIONE2 sotto)
$redirect = 'http://capitalcasaimmobiliare.it/ringraziamento.html';

// Oggetto della email
$subject = 'Richiesta informazioni dal sito CAPITALCASA immobiliare';

// campi del modulo (da personalizzare con quelli del proprio form)
$nome = trim(stripslashes($_POST['nome']));
$cognome = trim(stripslashes($_POST['cognome']));
$telefono = $_POST['telefono'];
$subj = $_POST['subj'];
$email = $_POST['email'];
$note = trim(stripslashes($_POST['note']));

// dati utente che compila il form (ip ecc. ecc)
$auth = date("Y-m-d")." : ".$_SERVER['HTTP_REFERER']." : ".$_SERVER['REMOTE_ADDR']." : ".$_SERVER['HTTP_USER_AGENT'];

// messaggio di controllo per i campi obbligatori
// se lo sono tutti usare la prima
// se lo sono solo alcuni usare la seconda

$stringa1 = "Tutti i campi sono obbligatori!";

// messaggio di controllo email non valida
$stringa2 = "Indirizzo email non valido!";

// messaggio di invio riuscito (decommentare se si usa OPZIONE1 vedi sotto)
#$stringa3 = "Messaggio inviato correttamente. Grazie!";

// formato del messaggio
$msgformat = "La persona $nome $cognome ha inviato un Modulo di richiesta:\n\nNome: $nome\nCognome: $cognome\nEmail: $email\nTelefono: $telefono\nOggetto: $subj\n\nNote: $note\n\n\nQuesti sono i dati dell'utente che ha compilato il modulo: $auth";

// definisce i campi obbligatori (da personalizzare con quelli del proprio form)
if (( $nome == "nome" ) || ( $cognome == "cognome" ) || ( $telefono == "telefono" ))
// popup di errore sui campi obbligatori
{
echo "<script language=\"JavaScript\">\n";
echo "alert(\"$stringa1\");\n";
echo "javascript:history.go(-1);";
echo "</script>";
}

// controllo del formato della email
elseif (!eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$", $email))
// popup di errore se fallisce il controllo formato email
{
echo "<script language=\"JavaScript\">\n";
echo "alert(\"$stringa2\");\n";
echo "javascript:history.go(-1);";
echo "</script>";
}
// invia la email a me
mail($receiverMail, $subject, $msgformat, "From: $email");


// nelle prossime righe definisco se voglio un semplice popup che avvisa l'utente che il messaggio è stato inviato (OPZIONE1) e che lo fa ritornare automaticamente alla pagina dove ha compilato il form

// OPPURE

// se ridirezionarlo verso una pagina web specifica (OPZIONE2)


// OPZIONE1:
// popup di messaggio inviato e ritorno alla pagina precedente
// decommentare $stringa3
// commentare tutto se si usa OPZIONE2 (per commentare usare /* all'inizio e */ alla fine delle righe da commentare)
/*
echo "<script language=\"JavaScript\">\n";
echo "alert(\"$stringa3\");\n";
echo "javascript:history.go(-1);";
echo "</script>";
*/
// OPZIONE2:
// popup di messaggio inviato e ridirezionamento ad una pagina web
// decommentare $redirect
// commentare tutto se si usa OPZIONE1 (per commentare usare /* all'inizio e */ alla fine delle righe da commentare)

echo "<script language=\"JavaScript\">\n";
echo "window.location.href=(\"$redirect\");\n";
echo "</script>";
?>
 
Ciao a tutti!
Sono novizio e cercando un form mail in php mi sono imbattuto in questo.
L'ho provato ma mi appare un popup con scritto: indirizzo email non valido. Anche senza modificarlo.
Avete qualche suggerimento?

Grazie a tutti
 
elimina questa parte:
PHP:
echo "<script language=\"JavaScript\">\n";
echo "alert(\"$stringa1\");\n";
echo "javascript:history.go(-1);";
echo "</script>";
 
Grazie, ho cercato di comprendere il codice.
La parte che mi hai suggerito di eliminare è all'interno del controllo:

Codice:
if (( $nome == "nome" ) || ( $cognome == "cognome" ) || ( $telefono == "telefono" ))

e il messaggio di errore viene generato all'interno del ramo elseif.

Quello che proprio non capisco, è perché la finestra di errore con il messaggio "Indirizzo email non valido", compare al caricamento della pagina. Non ho la possibilità di inserire i dati.

Riporto qui sotto il frammento di codice:

Codice:
// definisce i campi obbligatori (da personalizzare con quelli del proprio form)
if (( $nome == "nome" ) || ( $cognome == "cognome" ) || ( $telefono == "telefono" ))
// popup di errore sui campi obbligatori
{
echo "<script language=\"JavaScript\">\n";
echo "alert(\"$stringa1\");\n";
echo "javascript:history.go(-1);";
echo "</script>";
}

// controllo del formato della email
elseif (!eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$", $email))
// popup di errore se fallisce il controllo formato email
{
echo "<script language=\"JavaScript\">\n";
echo "alert(\"$stringa2\");\n";
echo "javascript:history.go(-1);";
echo "</script>";
}

Grazie per l'aiuto!
 

Discussioni simili