Form Errore email campi vuoti

mariodp

Nuovo Utente
21 Gen 2010
28
0
0
Ciao ragazzi,
Sto cercando di costruire un form che controlli i campi se sono compilati o vuoti ma….. mi da sempre email vuota anche se è compilata e non mi invia il Form, ci date un occhiata………….. per capire che cosa non va?

PHP:
<?php
// Comunica tutti gli errori PHP (il valore 63 può essere usato in PHP 3)
//echo "vecchio_error_reporting:" . error_reporting(E_ALL ^ E_NOTICE) . "**<br>";
error_reporting(E_ALL ^ E_NOTICE);

// Stesso effetto di error_reporting(E_ALL);
ini_set('error_reporting', E_ALL ^ E_NOTICE);

$email=$_POST['email'];

#######################################
# IMPOSTAZIONI DA CONFIGURARE #
#######################################

// indirizzo email del destinatario del modulo
// $destinatario = "[email protected]";
$destinatario = "[email protected]#.it";

// indirizzo email del mittente, campo FROM
$nome_mittente = "$email";
// $email_mittente = "$email";
// $nome_mittente = "Dal Modulo";

// oggetto del messaggio
$oggetto_email = "Modulo inviato dal sito www.miosito.it";

//(4) se si vogliono rendere tutti i campi NON OBBLIGATORI impostare su "y".
// (valori possibili: "y" e "n")
$all_free = "y";

// se avete messo "n" al punto (4) inserire tra virgolette, separati
// da virgola, i nomi dei campi da rendere OBBLIGATORI
// Esempio: $campi_req = array("nome","telefono","via");
// $campi_req = array("nome","email");

// controllo validità del campo email. (valori possibili: "y" e "n")
$obbligo_email = "y";

// obbligare l'utente ad accettare le condizioni.
// (valori possibili: "y" e "n")
$accetta_condizioni = "y";

// URL della pagina di ringraziamento
$pagina_grazie = "http://www.miosito.it/form/grazie.php";

// URL della pagina errore campi vuoti
$pagina_error_empty = "http://www.miosito.it/form/errore_campi_vuoti.php";

// URL della pagina errore email
$pagina_error_email = "http://www.#.it/form/errore_email.php";

// URL della pagina errore condizioni non accettate
$pagina_error_condizioni = "http://www.#.it/form/errore_condizioni.htm";

// URL della pagina errore invio non autorizzato (mancanza di referer)
$pagina_error_referer = "http://www.#.it/form/errore_referer.htm";

#######################################
# FINE IMPOSTAZIONI DA CONFIGURARE #
#######################################

//ora e data
$ora = date ("H:i:s");
$data = date ("d/m/Y");

//intestazione email che arriva al destinatario
$corpo = "
Modulo inviato il $data alle ore $ora
Riepilogo dati:\n\n";

//controllo codice dinamico
// if ($resp->is_valid) {
// richiesta approvata da captcha!
// } else {
# set the error code so that we can display it. You could also use
# die ("reCAPTCHA failed"), but using the error message is
# more user friendly
// $error = $resp->error;
//echo $error;

header ("Location: $pagina_error_email");
exit();
// }





########### CODICI ###########

//variabili per rendere lo script compatibile anche con la versione PHP 4.2 e maggiori
if(!isset($_SERVER) OR
!$_SERVER OR
!is_array($_SERVER) OR
count(array_diff($_SERVER, $HTTP_SERVER_VARS))) {
$_POST = &$HTTP_POST_VARS;
}

//prende IP ADDRESS
if(isset($_SERVER["HTTP_X_FORWARDED_FOR"])){
if ($_SERVER["HTTP_X_FORWARDED_FOR"] == "") {
$ipnumb = getenv("REMOTE_ADDR");
}else {
$ipnumb = getenv("HTTP_X_FORWARDED_FOR");
}
} else {
$ipnumb = getenv("REMOTE_ADDR");
}
###################################

//controllo referer
if(empty($_SERVER["HTTP_REFERER"])){
header ("Location: $pagina_error_referer");
exit();
}

########### CONTROLLO DEI CAMPI ###########
$control_campi = 0;

if($all_free != "y"){
foreach($_POST as $key => $valore){
if(in_array($key,$campi_req)){
if(trim($valore) == ""){
$control_campi++;
}
}
}
} else {
$control_campi = 0;
}

########### CONTROLLO EMAIL ###########
$control_email = 0;

if($obbligo_email == "y"){
if(isset($_POST['email'])){
if(!eregi("^([a-zA-Z0-9_.-])[email protected](([a-zA-Z0-9_-])+.)+[a-z]{2,6}$", $_POST['email'])){
$control_email++;
}
} else {
$control_email = 0;
}
}

########### CONTROLLO CONDIZIONI ###########
$control_condizioni = 0;

if($accetta_condizioni == "y"){
if(isset($_POST['trattamento_dati']) && $_POST['trattamento_dati'] == "accetto"){
$control_condizioni = 0;
} else {
$control_condizioni ++;
}
}

//echo "control_campi:$control_campi **<br>control_email:$control_email **<br>control_condizioni:$control_condizioni **<br>";

########### INVIO EMAIL ###########
if($control_campi != 0){
header ("Location: $pagina_error_empty");
exit();
} else {
// echo "nessun header CAMPI**<br>";
}

if($control_email != 0){
header ("Location: $pagina_error_email");
exit();
} else {
// echo "nessun header EMAIL**<br>";
}


if($control_condizioni == 0){
foreach($_POST as $key => $valore){
$key = ucfirst(stripslashes(trim($key)));
$valore = stripslashes(trim($valore));
$key = str_replace("_"," ",$key);

if(trim($valore) == "") {
$valore = "Non compilato";
}
$corpo .= $key .": ". $valore ."\n\n";
}
$corpo .= "Numero IP: $ipnumb"."\n";
$corpo .= "____________________________________________________________ \n\n

";

// invio e-mail
// Header Mail
$headmail.="From: $destinatario\n";
$headmail.="Return-Path: $nome_mittente\n";
// $headmail.="User-Agent: Php Mail Function\n";
// $headmail.="X-Accept-Language: en-us, en, ita\n";
// $headmail.="MIME-Version: 1.0\n";
// $headmail.="X-Priority: 1 (Highest)\n";
// $headmail.="Content-Type: text/plain; charset=ISO-8859-1; format=flowed\n";
// $headmail.="Content-Transfer-Encoding: 7bit\n";

//ini_set('sendmail_from', "$destinatario");
/* echo ("nome_mittente:$nome_mittente--<br>
destinatario:$destinatario--<br>
oggetto_email:$oggetto_email--<br>
corpo:" . nl2br($corpo) . "--<br>
headmail:$headmail--<br>");
*/
$risultato = mail($destinatario, $oggetto_email, $corpo, $headmail);
// echo "risultato:$risultato--<br>";
// exit;
header ("Location: $pagina_grazie");
} else {
header ("Location: $pagina_error_condizioni");
}
exit();

?>
 
Ultima modifica di un moderatore:

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao,
comincia con verificare che nel post sia presente il valore che ti aspetti con var_dump:
PHP:
var_dump( $_POST['email']);

PS:
racchiudi il codice tra i tag disponibili sulla barra di formattazione, in questo caso l'icona con scritto php
per ora ho modificato io
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
147
63
PR
www.borgo-italia.it
ciao
if(!eregi("^([a-zA-Z0-9_.-])[email protected](([a-zA-Z0-9_-])+.)+[a-z]{2,6}$", $_POST['email'])){
la funzione eregi è deprecata non devi usarla, usa
PHP:
//...
if(!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)){
//....
 

mariodp

Nuovo Utente
21 Gen 2010
28
0
0
Ciao
fatto ma non cambia nulla mi da sempre email vuota anche se compilata.
Questo è il form ridotto

<form action="inviamail-2.php" method="post" name="modulo" target="_self">
<div id="form">
<h4>Compila il form sottostante per inviarmi un messaggio</h4>
<label for="nome">Cognome Nome</label><input name="nome" id="nome" type="text">
<label for="email">Email</label><input name="email" id="email" type="text">
<label for="messaggio">Messaggio</label>
<textarea name="messaggio" id="messaggio" cols="30" rows="10"></textarea>

<input id="submit" name="submit" value="Invia" type="submit">
</div>
</form>
 

mariodp

Nuovo Utente
21 Gen 2010
28
0
0
cosi modificato mi porta a una pagina che si chiama errore_condizioni.htm

// if(!eregi("^([a-zA-Z0-9_.-])[email protected](([a-zA-Z0-9_-])+.)+[a-z]{2,6}$", $_POST['email'])){

if(!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)){
$control_email++;
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
147
63
PR
www.borgo-italia.it
ciao
per verifirare il post dell'email devi fare come ti ha criric.
il mio era solo per dirti che non si usa più eregi (anzi puo dare errore)
 
Discussioni simili
Autore Titolo Forum Risposte Data
S Dare segnalazione errore stessa pagina del form email PHP 8
L form multipla php sql,errore in inserimento MySQL 0
F Form mail php errore invio PHP 5
M [PHP] errore in semplie form inserimento dati PHP 7
Francesco Polese Errore form invio mail+php PHP 22
L errore mysql per form di registrazione PHP 3
C Form con dentro div errore validatore w3c HTML e CSS 6
K Errore in script creando il form PHP 0
Jam1 Errore nel creare miniature da immagini caricate su un mio form PHP 0
Shyson Se invio form e c'è errore, form non ritorna a video PHP 0
A errore di un form PHP 17
C errore form di contatto PHP 17
S Form contatti: ma dove è l'errore? PHP 7
S form contatti errore PHP 14
B form informazioni - messaggio d'errore PHP 2
G Errore funzione per form PHP 2
SolidSnake4 errore durante invio dati con form PHP 2
C Form mail: Errore Supporto Mr.Webmaster 1
free5zone errore form $_POST PHP 1
carla146 errore in form Supporto Mr.Webmaster 1
D Devo far funzionare un form di contatti PHP 3
B form gestione input PHP 2
V PHP form intersecate PHP 0
8 Javascript - PDF Form Javascript 0
J Form inserimento dati in database Ajax 1
E Gestione profilo utente tramite Form PHP 3
R [C#] Form principale si blocca mentre un altro Thread lavora .NET Framework 0
M Problema con controllo form in real time jQuery 6
D Form validazione Javascript 2
R form recovery pass PHP 0
V Symfony e i form PHP 3
M form con checkbox PHP 8
S come aggiustare un form di contatto? HTML e CSS 3
F query e form con select multipla PHP 17
AC1 Form in finestra modale PHP 1
MarcoGrazia Verifica di una stringa o di un nome proveniente da form Snippet PHP 0
A Inserimento dati nel database tramite form + altre operazioni PHP 18
websilvia Contact form using Bootstrap 3.3.4 PHP 8
Alex_70 Button non funziona nella form PHP 2
C Form email php su pagina index.html? PHP 21
W Rinominare Documenti Con Form Asp Classic ASP 9
S Invio email da form PHP 8
L inviare i dati di un form ad un database PHP 6
L Collegare un form html ad un database access Javascript 2
L creare oggetti da una classe tramite un form Javascript 0
G Impostare suggerimenti campo text di un form Javascript 2
S Problemi di visualizzazione form contatti sito web HTML e CSS 2
L Insert php sql da una form multipla PHP 6
E form PHP 10
W Form da CDONTS a CDOSYS Classic ASP 7

Discussioni simili