Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    4

    Richiamo funzione all'interno di IF

    Ciao a tutti,
    sto facendo un piccolo script e mi sono imbattuto in una cosa che non riesco a comprendere.
    Innanzi tutto questo è il mio script:

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

    // Verifica email

    $valid_mail=mail_validation ($email);
    if ($valid_mail == FALSE)
    //if ($valid_mail = mail_validation ($email) == FALSE) !!!!!!!!!!!!!
    echo "

    Indirizzo email immesso non valido.</p>
    ";

    //Verifica num telefono
    $valid_num=is_numeric ($cell);
    if ($valid_num == FALSE)
    echo "

    Il numero di telefono immesso non è valido.


    ";
    else
    //Aggiungi prefisso +39
    $cell="+39".$cell;

    //Verifica se continuare o tornare indietro
    if ($valid_mail == FALSE || $valid_num == FALSE )
    {echo "

    Torna indietro e reinserisci i dati correttamente</p>
    ";}
    else
    //continua script
    {
    //Creazione riga da scrivere
    $row=$cell.";".$email.";";
    //Apertura, o creazione del file in caso insesstente, in modalità sola scrittura ultima riga con controllo
    $file= @fopen ('lista_sms.txt','a');
    if ($file === NULL)
    echo "

    Problema con il caricamento del file di salvataggio. Contattare l'amministratore o il webmaster.</p>";
    //Scrittura riga di testo con a capo finale (Ottimizzato per visualizzazione file in ambiente windows)
    $result=@fwrite ($file, $row."\r\n");
    if ($result === FALSE)
    echo "

    Erore nella scrittura del file. Contattare l'amministratore o il webmaster</p>";
    fclose ($file);
    }


    function mail_validation($email){
    $result = eregi("^[_a-z0-9+-]+(\.[_a-z0-9+-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)+$",$email);
    if($result == FALSE){
    return FALSE;
    }else{
    return TRUE;
    }
    }?>

    La parte che no riesco a comprendere è quella iniziale dove avviene il controllo della validità della mail, in quella parte richiamo la funzione mail_validation e assegno il valore alla variabile $valid_mail; in caso il valore sia FALSE $valid_mail diventa FALSE e viene scritto sia l'errore della mail sbagliata che quella del controllo successivo (vedi commento "Verifica se continuare o tornare indietro").
    Fino a qui tutto bene...

    Se faccio una piccola modifica per accorciare il codice e nel controllo mail richiamo la funzione all'interno dell'if come scritto nella riga di commento successiva allora succede una cosa strana:

    1. se la mail è giusta mi stampa l'errore generale della funzone di controllo successiva bloccandomi lo script

    2. se la mail è errata mi stampa l'errore specifico relativo alla mail ma non quello generale successivo

    Come mai? Dove sbaglio?
    Grazie anticipatamente

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    4
    Proprio nessuno per piacere sa spiegarmi il motivo??

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.