Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19
  1. #1

    Aiuto per modifica form mail (saibal)

    Utilizzando il form di saibal ho creato Questa paginetta dove l'utente puo'richiedere tramite il form i dati di accesso ad una lista nozze.

    Il problema è che molti sono portati a pensare che sia un bot automatico ad inviare le password quindi omettono il dato tel/fax e/o email rendendo impossibile ricontattarli.

    Ora ho inserito l'avviso in rosso di inserire almeno uno dei dati.

    Come posso invece fare che almeno uno dei due dati sia necessario ?
    Se metto il controllo a tutti e due i campi succede che se uno vuole inserire solo l'email o solo il telefono gli vengono richiesti tutti e due.

    Invece io vorrei che almeno uno dei due fosse obbligatorio come inserimento ed eventualmente se possibile nel qualcaso fosse omesso che aprisse una pagina di errore specifica.

    Si puo'fare modificando il form o devo ricorrere a javascript ?

    Grassie

  2. #2
    ti bastano un paio di cicli if nella pagina php....

    posta il codice della pagina "richiesta_pass.php" che te la metto a posto!

    Ciao
    Marco

  3. #3
    Urca grazie mille per la disponibilita'.

    Ho salvato il tutto in un file txt che puoi scaricare Qui in modo da evitare di creare un post chilometrico.

    Ti devo una birra...

  4. #4
    eccoti il codice fammi sapere se è tutto ok...

    Codice PHP:
    <?php
    ####################### SAIBAL GENERAL FORM 1.0 ####################
    #                                                                  #
    # Creato da saibal - [url]http://www.lorenzone.it[/url] - [email]saibal@lorenzone.it[/email] #
    # Roma - Aprile 2003                                               #
    #                                                                  #
    #          Scriptino piccolino piccolino da leccarsi i gomiti      #
    #                                                                  #
    #  Dedicato al mio Taricone... il gatto che non deve chiedere mai! #
    #                                                                  #
    # Baci ai pupi                                                     #
    # Saibal alias Lorenzo                                             #
    ####################################################################

    #######################################
    #    IMPOSTAZIONI DI CONFIGURAZIONE   #
    #######################################

    //email del destinatario del modulo
    $destinatario "listenozze@argenteriadabbene.com,dabbene@fastwebnet.it";

    //nome mittente per la corretta intestazione del modulo
    $nome_mittente "Form Sito";

    //email mittente per per la corretta intestazione del modulo
    $email_mittente "form@dabbene.com";

    //oggetto dell'email
    $oggetto_email "Richiesta dati accesso lista nozze";

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

    //se invece avete messo "n" inserire tra virgolette, separati da virgola, i nomi dei campi da rendere OBBLIGATORI
    //Esempio: $campi_req = array("telefono","via");
    $campi_req = array("lista_nozze","nome_cognome");

    //controllo del campo email? valori possibili: "y" e "n"
    $obbligo_email "n";

    //url della pagina di ringraziamento
    $pagina_grazie "../Italiano/dati_richiesti.html";

    //url della pagina errore campi vuoti
    $pagina_error_empty "../Italiano/campi_vuoti_nozze.html";


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

    //intestazione dell'email (arriva al destinatario)
    $corpo "
    Modulo inviato il 
    $data alle ore $ora\n
    Riepilogo dati:\n
     ____________________________________________________________\n"
    ;

    //======================= NON TOCCARE NULLA... SE NON VUOI INCASINARE QUALCOSA =======================\


    ########### CODICE VARIO ###########

    //variabili per rendere lo script compatibile anche con PHP 4.2 - copyright di Chris
    if(!isset($_SERVER) OR !$_SERVER OR !is_array($_SERVER) OR count(array_diff($_SERVER$HTTP_SERVER_VARS))){  
    $_POST = &$HTTP_POST_VARS
    }

    //prendo il numero IP
    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 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'])){

            
    //espressione regolare a cura dell'esimio dott. Grande Minchia - [url]http://www.myphp.it[/url]
            
    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 ++;

                }

            }

    ########### VAI CON L'INVIO DELL'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\n";

    $corpo .= "
     ____________________________________________________________ \n\n

    Grazie per aver utilizzato un Saibal Scriptino - Buona giornata!"
    ;

    //correzione saibal...verifica che mail o telefono siano corretti
      
    if(($email="") or ($telfax="")) {
      echo 
    " devi compilare obligatoriamente il campo mail o telefono. Grazie.";
      }  
    //inizio l'invio dell'email

    mail("$destinatario","$oggetto_email","$corpo""From: $nome_mittente <$email_mittente>");

                    
    header ("Location: $pagina_grazie");

                                    } else {

                    
    header ("Location: $pagina_error_condizioni");

                                }

                            } else {

                    
    header ("Location: $pagina_error_email");

                            }

                        } else {

                        
                    
    header ("Location: $pagina_error_empty");

                        }

    ?>
    Marco Chirico
    Applicazioni Server Side
    http://www.fdesigngroup.it

  5. #5
    Ho provato ma non mi funziona.

    *Edit:nel senso che si comporta come prima non mostrando nessun errore.

  6. #6
    SangueMisto, a dir la verità sarebbe stato più facile scriverti un altro codice perchè questo non e codice molto pratico, cmq l'ho provo a cambiare

    Codice PHP:

    <?php



    if($_GET['lista_nozze']=="" && '$_GET['lista_nozze']==""){


    header ("Location: $_SERVER[HTTP_RERERER].'
    valido=no'");

    }
    else{




    //email del destinatario del modulo
    $destinatario = "listenozze@argenteriadabbene.com,dabbene@fastwebnet.it";

    //nome mittente per la corretta intestazione del modulo
    $nome_mittente = "Form Sito";

    //email mittente per per la corretta intestazione del modulo
    $email_mittente = "form@dabbene.com";

    //oggetto dell'
    email
    $oggetto_email 
    "Richiesta dati accesso lista nozze";

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


    //controllo del campo email? valori possibili: "y" e "n"
    $obbligo_email "n";

    //url della pagina di ringraziamento
    $pagina_grazie "../Italiano/dati_richiesti.html";

    //url della pagina errore campi vuoti
    $pagina_error_empty "../Italiano/campi_vuoti_nozze.html";


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

    //intestazione dell'email (arriva al destinatario)
    $corpo "
    Modulo inviato il 
    $data alle ore $ora\n
    Riepilogo dati:\n
    ____________________________________________________________\n"
    ;

    //======================= NON TOCCARE NULLA... SE NON VUOI INCASINARE QUALCOSA =======================


    ########### CODICE VARIO ###########

    //variabili per rendere lo script compatibile anche con PHP 4.2 - copyright di Chris
    if(!isset($_SERVER) OR !$_SERVER OR !is_array($_SERVER) OR count(array_diff($_SERVER$HTTP_SERVER_VARS))){  
    $_POST = &$HTTP_POST_VARS;
    }

    //prendo il numero IP
    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 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'])){

            
    //espressione regolare a cura dell'esimio dott. Grande Minchia - [url="http://www.myphp.it"][url]http://www.myphp.it[/url][/url]
            
    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 ++;

                }

            }

    ########### VAI CON L'INVIO DELL'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\n";

    $corpo .= "
    ____________________________________________________________ \n\n

    Grazie per aver utilizzato un Saibal Scriptino - Buona giornata!"
    ;

    //correzione saibal...verifica che mail o telefono siano corretti
      
    if(($email="") or ($telfax="")) {
      echo 
    " devi compilare obligatoriamente il campo mail o telefono. Grazie.";
      }  
    //inizio l'invio dell'email

    mail("$destinatario","$oggetto_email","$corpo""From: $nome_mittente <$email_mittente>");

                    
    header ("Location: $pagina_grazie");

                                    } else {

                    
    header ("Location: $pagina_error_condizioni");

                                }

                            } else {

                    
    header ("Location: $pagina_error_email");

                            }

                        } else {

                        
                    
    header ("Location: $pagina_error_empty");

                        }
    }

    ?>
    L'unica cosa che cambia e il controllo

    if($_GET['lista_nozze']=="" && '$_GET['lista_nozze']==""){

    all'inizio.

    po con la variabile valido=no nella pagina del form fai:
    $errore = ( $valido == "no" ) ? "Un dei due campi marcati e obbligatorio" : "";


    echo $errore


    boh...
    vedi un pò tu ..

  7. #7
    Io lo devo aver incasinato ancora di piu' ,cmq mi è sembrato il piu'completo e gettonato

    PS:forse non funza perche'all'interno del php i campi email e telfax non esistono ? :master:

  8. #8
    Hai provato l'opzione che ti ho dato io?

  9. #9
    po con la variabile valido=no nella pagina del form fai:
    $errore = ( $valido == "no" ) ? "Un dei due campi marcati e obbligatorio" : "";


    echo $errore


    boh...
    vedi un pò tu .. [/QUOTE]

    No intiendo dove inserire la variabile...."$errore = ( $valido == "no" ) ? "Un dei due campi marcati e obbligatorio" : "";"

    Pero'cosi' essendo gia'obbligatori Nome_cognome e Lista_nozze non si va a creare confusione quando da errore ?

    *Edit:ho provato cosi'mi da errore il form alla quinta riga del modulo.....

  10. #10
    Allora non avevo capito bene.

    Esendo tutti e due gia'obbligatori l'inizio del codice lo cambi cosi:

    if($_GET['lista_nozze']=="" || '$_GET['lista_nozze']==""){

    $indietro=$_SERVER[HTTP_RERERER]."valido=no";
    header ("Location: $indietro");

    }



    e l'operatore ternario


    $errore = ( $valido == "no" ) ? "I campi Nome_cognome e Lista_nozze sono obbligatori" : "";

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.