Visualizzazione dei risultati da 1 a 8 su 8

Discussione: Errore php su form

  1. #1

    Errore php su form

    Ciao,

    ho settato un form che trovate qui:
    http://www.ville-stresa.it/contatti.html

    Solo che mi da questi errori quando invio:
    Warning: array_diff(): Argument #2 is not an array in /htdocs/public/www/inviamail.php on line 73 Deprecated: Function eregi() is deprecated in /htdocs/public/www/inviamail.php on line 136 Warning: Cannot modify header information - headers already sent by (output started at /htdocs/public/www/inviamail.php:73) in /htdocs/public/www/inviamail.php on line 224

    Ecco il file infiamail.php

    <?php
    $email=$_POST['email'];

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

    //(1) indirizzo email del destinatario del modulo
    $destinatario = "info@ville-stresa.it";

    //(2) indirizzo email del mittente, campo FROM
    // non toccare se desiderate che l'indirizzo email inserito nel modulo sia
    // riportato nel campo DA del messaggio che sarà ricevuto.
    // Se invece desiderate un campo fisso annullare la prima riga e abilitare
    // la seconda inserendo la dicitura desiderata (per annullare mettere //
    // all'inizio della prima riga e per abilitare togliere // dalla seconda riga)
    $nome_mittente = "$email";
    // $nome_mittente = "Dal Modulo";

    //(3) oggetto del messaggio
    $oggetto_email = "Modulo informazioni Ville-stresa.it";

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

    //(5) 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","trattamento_dati");

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

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

    //(8) URL della pagina di ringraziamento
    $pagina_grazie = "http://www.ville-stresa.it/grazie.html";

    //(9) URL della pagina errore campi vuoti
    $pagina_error_empty = "http://www.ville-stresa.it/errore.html";

    //(10) URL della pagina errore email
    $pagina_error_email = "http://www.ville-stresa.it/errore.html";

    //(11) URL della pagina errore condizioni non accettate
    $pagina_error_condizioni = "http://www.ville-stresa.it/errore.html";

    //(12) URL della pagina errore invio non autorizzato (mancanza di referer)
    $pagina_error_referer = "http://www.ville-stresa.it/errore.html";

    #######################################
    # 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";

    //============== NON TOCCARE NULLA OLTRE QUESTA RIGA ==================\


    ########### 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 ++;

    }

    }

    ########### INVIO EMAIL ###########
    if($control_campi == 0){

    if($control_email == 0){

    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: $nome_mittente <$nome_mittente>\n";
    $headmail.="Return-Path: $nome_mittente\n";
    $headmail.="User-Agent: Php Mail Function\n";
    $headmail.="X-Accept-Language: en-us, en\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");
    mail("$destinatario", "$oggetto_email", "$corpo", "$headmail");

    header ("Location: $pagina_grazie");

    } else {

    header ("Location: $pagina_error_condizioni");

    }

    } else {

    header ("Location: $pagina_error_email");

    }

    } else {


    header ("Location: $pagina_error_empty");

    }

    ?>
    HIGH QUALITY & LOW COST
    www.dpgraphic.com

  2. #2
    Up!

    Qualcuno mi sa dare una mano?

    Grazie!
    HIGH QUALITY & LOW COST
    www.dpgraphic.com

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    128
    non ho letto tutto il codice, anche perchè non hai usato la formattazione ed è di difficile lettura.

    Comunque gli avvisi mi sembrano chiari: la funzione eregi è "deprecata" da php 5.3, al suo posto si usa preg_match.

    Ti segnala inoltre l'errore in un array, ti dice anche la riga. Devi quindi vedere come è costruito quell'array.

    Infine ti dice "headers already sent", quindi devi eliminare ciò che c'è prima (compresi spazi e righe vuote)

  4. #4
    Originariamente inviato da diabolikk
    non ho letto tutto il codice, anche perchè non hai usato la formattazione ed è di difficile lettura.

    Comunque gli avvisi mi sembrano chiari: la funzione eregi è "deprecata" da php 5.3, al suo posto si usa preg_match.

    Ti segnala inoltre l'errore in un array, ti dice anche la riga. Devi quindi vedere come è costruito quell'array.

    Infine ti dice "headers already sent", quindi devi eliminare ciò che c'è prima (compresi spazi e righe vuote)

    Il file in questione é questo:
    www.ville-stresa.it/inviamail.php

    Tieni conto che non so come funziona php e che ho preso questo script dal web.
    Sto cercando di applicarlo sul modulo del sito e non so che senso ha quell'errore...

    Il provider é Register.it e ho acquistato uno spazio linux che supporta proprio php.

    Mi puoi aiutare in maniera più specifica, del tipo correggermi direttamente il codice?

    Se mi dai una mano te ne sarei grato... non so più dove sbattere la testa.

    Grazie mille!
    HIGH QUALITY & LOW COST
    www.dpgraphic.com

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    128
    così non dà più errore

    Codice PHP:

    <?php
    $email
    =$_POST['email'];

    //(1) indirizzo email del destinatario del modulo
    $destinatario "info@ville-stresa.it";

    $nome_mittente "$email";

    //(3) oggetto del messaggio
    $oggetto_email "Modulo informazioni Ville-stresa.it";

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

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

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

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

    //(8) URL della pagina di ringraziamento
    $pagina_grazie "http://www.ville-stresa.it/grazie.html";

    //(9) URL della pagina errore campi vuoti
    $pagina_error_empty "http://www.ville-stresa.it/errore.html";

    //(10) URL della pagina errore email
    $pagina_error_email "http://www.ville-stresa.it/errore.html";

    //(11) URL della pagina errore condizioni non accettate
    $pagina_error_condizioni "http://www.ville-stresa.it/errore.html";

    //(12) URL della pagina errore invio non autorizzato (mancanza di referer)
    $pagina_error_referer "http://www.ville-stresa.it/errore.html";

    #######################################
    # 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"
    ;

    //============== NON TOCCARE NULLA OLTRE QUESTA RIGA ==================\


    //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 ++;

    }

    }

    ########### INVIO EMAIL ###########
    if($control_campi == 0){

    if(
    $control_email == 0){

    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: $nome_mittente <$nome_mittente>\n";
    $headmail.="Return-Path: $nome_mittente\n";
    $headmail.="User-Agent: Php Mail Function\n";
    $headmail.="X-Accept-Language: en-us, en\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");
    mail("$destinatario""$oggetto_email""$corpo""$headmail");

    header ("Location: $pagina_grazie");

    } else {

    header ("Location: $pagina_error_condizioni");

    }

    } else {

    header ("Location: $pagina_error_email");

    }

    } else {


    header ("Location: $pagina_error_empty");

    }

    ?>

  6. #6
    Ora lo sostituisco subito.
    Grazie mille!!!!!

    Ma qual'era il problema... giusto per curiosità...
    HIGH QUALITY & LOW COST
    www.dpgraphic.com

  7. #7
    Originariamente inviato da diabolikk
    così non dà più errore
    .... provato ora ma mi da ancora errore....

    Questo é l'errore:
    Deprecated: Function eregi() is deprecated in /htdocs/public/www/inviamail.php on line 117 Warning: Cannot modify header information - headers already sent by (output started at /htdocs/public/www/inviamail.php:117) in /htdocs/public/www/inviamail.php on line 192


    HIGH QUALITY & LOW COST
    www.dpgraphic.com

  8. #8
    E' piuttosto urgente... nessuno mi sa aiutare?
    Impossibile... dato che siete tutti programmatori php suppongo
    HIGH QUALITY & LOW COST
    www.dpgraphic.com

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.