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 = "info@#.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_.-])+@(([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.046
150
63
PR
www.borgo-italia.it
ciao
if(!eregi("^([a-zA-Z0-9_.-])+@(([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_.-])+@(([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.046
150
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
S passare un valore da un form a un file .php con metodo post PHP 4
K Form che manda dati doppi PHP 1
K Problema form update PHP 2
Elisacau [Contact form 7] Inserire Numero auto incrementante WordPress 1
K form Inserimento record mysql PHP 2
I Form con selettore HTML e CSS 0
K [php]form invio dati PHP 0
G form invio multiplo con checkbox PHP 12
nivaria.achinet Intercettare form solo dopo invio Javascript 1
D Form contatti non funzionante HTML e CSS 0
A Stampare dati da form PHP 15
M Unire 2 funzioni per l'invio di un form e con l'apertura di un div Javascript 0
I Form HTML e CSS 17
otto9due $_FILE non passa i dati dal form PHP 1
M Form: come tornare ai campi già compilati dopo invio PHP 1
G Invio form con PHP PHP 3
felino Form action costum e parametri in queryString WordPress 1
M Come recuperare molteplici input form PHP 1
M Collegamento tra form html e script php PHP 4
L form immagini per il database PHP 0
A form PHP prenotazione tramite query PHP 2
A Form php prenotazione di un azienda sanitaria locale presso studio medico PHP 1
L inserimento form dati multipli ? PHP 0
L Problemi form Pagina php HTML e CSS 3
Cosina Creare bottone delete in form upload PHP 5
Cosina Creare bottone delete in form upload PHP 1
D Devo far funzionare un form di contatti PHP 4
B form gestione input PHP 2
V PHP form intersecate PHP 0
8 Javascript - PDF Form Javascript 0

Discussioni simili