Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    65

    form, controllo casella numerica

    Salve a tutti,
    ho un form a cui ho aggiunto un modulo numerico, mi sapreste dire come faccio a dirgli che deve contenere solo numeri???

    questa stringa non mi funziona
    $control_telefono = 0;

    if($obbligo_telefono == "y"){

    if(isset($_POST['email'])){

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

    $control_email++;

    }

    } else {

    $control_email = 0;

    }

    }


    il php è:
    <?php
    $email=$_POST['email'];

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

    //(1) indirizzo email del destinatario del modulo
    $destinatario = "munick@tiscali.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 inviato dal sito ....";

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

    //(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 = "n";

    //(8) URL della pagina di ringraziamento
    $pagina_grazie = "www.tuosito.it/grazie";

    //(9) URL della pagina errore campi vuoti
    $pagina_error_empty = "http://www.tuo_sito.tld/errore_campi_vuoti.htm";

    //(10) URL della pagina errore email
    $pagina_error_email = "http://www.tuo_sito.tld/errore_email.htm";

    //(11) URL della pagina errore condizioni non accettate
    $pagina_error_condizioni = "http://www.tuo_sito.tld/errore_condizioni.htm";

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

    $pagina_error_telefono = "http://www.tuo_sito.tld/errore_nicola.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";

    //============== 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");

    }

    ?>

  2. #2
    Ciao!

    Per controllare che una certa variabile corrisponda ad un numero puoi usare la funzione
    is_numeric()

    eccoti la reference: http://it.php.net/is_numeric

    Se ti serve un controllo + preciso su : interi, double, ecc hai la lista delle funzioni nel link che ti ho passato ^^


    questo funziona se vuoi permettere un formato del tipo 06777777 altrimenti se vuoi inserire anche numeri del tipo 06-777777 devi scrivere una regex del tipo

    ^[0-9]+\-[0-9]{3,}$

    Codice PHP:
    if (preg_match('/^[0-9]+\-[0-9]{3,}$/',$num))
    {
    //Il tuo codice qui
    }

    significa che accetti dei numeripoi la stanghetta e poi almeno altri 3 numeri

    Spero di esserti stato di aiuto ciao
    !! 
    Digital Riot!
    http://fatmatt.wordpress.com
    -Chi è disposto a rinunciare alla propria libertà in cambio di sicurezza, non merita ne libertà ne sicurezza- Benjamin Franklin

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    65
    Originariamente inviato da fatmatt
    Ciao!

    Per controllare che una certa variabile corrisponda ad un numero puoi usare la funzione
    is_numeric()

    eccoti la reference: http://it.php.net/is_numeric

    Se ti serve un controllo + preciso su : interi, double, ecc hai la lista delle funzioni nel link che ti ho passato ^^


    questo funziona se vuoi permettere un formato del tipo 06777777 altrimenti se vuoi inserire anche numeri del tipo 06-777777 devi scrivere una regex del tipo

    ^[0-9]+\-[0-9]{3,}$

    Codice PHP:
    if (preg_match('/^[0-9]+\-[0-9]{3,}$/',$num))
    {
    //Il tuo codice qui
    }

    significa che accetti dei numeripoi la stanghetta e poi almeno altri 3 numeri

    Spero di esserti stato di aiuto ciao
    !! 
    Ti ringrazio, sei gentilissimo, dove mi consigli di copiare questa stringa?

    Dove hai scritto //il tuo codice qui devo aggiungere altro?

  4. #4
    Ho dato un occhiata veloce al php che hai riportato e non fa riferimenti particolari al numero di telefono che devi controllare, ma controlla solo la validità della mail

    Quindi puoi metterlo dopo il blocco

    ####CONTROLLO EMAIL#####




    i

    Codice PHP:
     //SE non è un numero valido 
    if (!preg_match('/^[0-9]+-[0-9]{3,}$/',$num))
    {
      
    header("Location: $pagina_errore_numero");
     } 
    Naturlmente gestisci l'errore come vuoi all'interno delle graffe.

    PS, quel codice che hai postato è davvero poco leggibile se dovessi un giorno riprenderlo per modificarlo rischi di fare parecchia fatica
    Digital Riot!
    http://fatmatt.wordpress.com
    -Chi è disposto a rinunciare alla propria libertà in cambio di sicurezza, non merita ne libertà ne sicurezza- Benjamin Franklin

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 © 2024 vBulletin Solutions, Inc. All rights reserved.