Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12

Discussione: Problema codice php

  1. #1

    Problema codice php

    Codice PHP:
    /* Recupero i dati */
    $nome $_POST['nome'];
    $pass $_POST['pass'];
    $mail $_POST['mail'];
    $villo $_POST['villaggio'];
    $sex $_POST['genere'];



    /* 1] Verifico che tutti i campi SONO compilati */
    if (isset($nome) && isset($pass) && isset($mail) && isset($villo) && isset($sex)) 
    {
        
    /* 2] Verificio che l'e-mail sia valida */
            
    $pos strpos($mail"@");
            
    $pos2 strpos($mail" ");
                if (
    $pos === false || $pos2 != false
                {
                    echo 
    "La tua mail non è valida";
                }    
        
    /* 2] Verificio che la password sia min 4 caratteri e max 8 */
            
    $lungpass strlen($pass);
                if (
    $lungpass || $lungpass >)
                {
                    echo 
    "</br>" "La tua password non è valida";
                }
    }

    /* 1] Se tutti i campi NON SONO compilati */
    else
    {
        echo 
    " Devi inserire tutti i campi per poter completare la registrazione ";


    Come mai , il codice php sovrastante mi da il seguente errore :
    Se non inserisco la mail o la password , invece di dirmi = Devi inserire tutti i campi ecc ,
    mi dice la tua mail non è valida , la tua password non è valida.

    Dove sbaglio ?

  2. #2
    Utente di HTML.it L'avatar di Laxus
    Registrato dal
    Oct 2010
    Messaggi
    251
    Attenzione, isset($var) non controlla se $var è vuota o meno (quello è empty) ma controlla se la variabile esiste o meno! In questo caso isset($pass) e simili restituiranno true in ogni caso

  3. #3
    Grazie mille , con emprty funziona bene .
    Scusa una cosa , ma se io volessi creare una variabile di avanzamento come potrei fare?

    Mi spiego meglio , invece di annidare if , dentro if , dentro if , dentro else ecc ( anche se sto cercando di mantenermi il più ordinato possibile ) non sarebbe possibile fare una cosa del genere ?

    Codice PHP:
    <?php 

    /* Recupero i dati */
    $nome $_POST['nome'];
    $pass $_POST['pass'];
    $mail $_POST['mail'];
    $villo $_POST['villaggio'];
    $sex $_POST['genere'];

    /* Assegno variabile di avanzamento */
    $ok false;

    /* 1] Verifico che tutti i campi SONO compilati */
    if (empty($nome) && empty($pass) && empty($mail) && empty($villo) && empty($sex)) 
    {
        
    $ok true;
    }

    /* 1] Se tutti i campi NON SONO compilati */
    else
    {
        echo 
    " Devi inserire tutti i campi per poter completare la registrazione ";
        
    $ok false;
    }

        if ( 
    $ok === true 
        {
            
    /* 2] Verificio che l'e-mail sia valida */
            
    $pos strpos($mail"@");
            
    $pos2 strpos($mail" ");
                if (
    $pos === false || $pos2 != false
                {
                    echo 
    "La tua mail non è valida";
                }    
            
    /* 2] Verificio che la password sia min 4 caratteri e max 8 */
            
    $lungpass strlen($pass);
                if (
    $lungpass || $lungpass >)
                {
                    echo 
    "</br>" "La tua password non è valida";
                }
        }
        
        


    ?>

    eppure non funziona.

  4. #4
    Utente di HTML.it L'avatar di Luke70
    Registrato dal
    Jul 1999
    Messaggi
    767
    certo che non funziona!
    empty fa il contrario di quello che ti aspetti: restituisce vero se il campo è vuoto!

    Codice PHP:
    if (empty($nome) || empty($pass) || empty($mail) || empty($villo) || empty($sex)) 
    {
        echo 
    " Devi inserire tutti i campi per poter completare la registrazione ";
        
    $ok false;


  5. #5
    Dovresti cambiare la condizione di && con || perchè in quel modo tu gli dici se tutti i campi sono vuoti allora vai avanti invece devi dirgli se anche una delle seguenti variabili è vuota blocca tutto altrimenti prosegui pure

    Codice PHP:
    <?php 

    /* Recupero i dati */
    $nome $_POST['nome'];
    $pass $_POST['pass'];
    $mail $_POST['mail'];
    $villo $_POST['villaggio'];
    $sex $_POST['genere'];

    /* Assegno variabile di avanzamento */
    $ok false;

    /* 1] Verifico che tutti i campi SONO compilati */
    if (empty($nome) || empty($pass) || empty($mail) || empty($villo) || empty($sex)) 
    {
        echo 
    " Devi inserire tutti i campi per poter completare la registrazione ";
        
    $ok false;
    }

    /* 1] Se tutti i campi NON SONO compilati */
    else
    {
        
    $ok true;
    }

        if ( 
    $ok === true 
        {
            
    /* 2] Verificio che l'e-mail sia valida */
            
    $pos strpos($mail"@");
            
    $pos2 strpos($mail" ");
                if (
    $pos === false || $pos2 != false
                {
                    echo 
    "La tua mail non è valida";
                }    
            
    /* 2] Verificio che la password sia min 4 caratteri e max 8 */
            
    $lungpass strlen($pass);
                if (
    $lungpass || $lungpass >)
                {
                    echo 
    "</br>" "La tua password non è valida";
                }
        }
        
        


    ?>
    Alle anime superficiali occorrono degli anni per liberarsi di un’emozione. L’uomo padrone di sè pone fine a un dolore con la stessa facilità con la quale improvvisa una gioia.

  6. #6
    Non funziona perchè devi usare l'OR ovvero || e non l'and.

    esempio

    empty($nome) || empty($pass) || empty($mail) || empty($villo) || empty($sex)
    Perchè uso Maxthon? | Mi piace questa chat

  7. #7
    Grazie mille , ho capito , io praticamente gli dicevo che se tutti sono vuoti andava bene xD
    Grazie ancora per la velocità.

    Scusate una delucidazione
    all'interno dell'if mettendo $ok = true; o false , funziona alla grande
    ma non ho ben capito - a questo punto - a cosa serve RETURN
    infatti se metto return $ok= false o true , il codice non funge.


    Potreste spiegarmi sto benedetto return a che serve u.u
    Grazie per la pazienza ^^

  8. #8
    Utente di HTML.it L'avatar di Laxus
    Registrato dal
    Oct 2010
    Messaggi
    251
    ma non ho ben capito - a questo punto - a cosa serve RETURN
    mi sà che sono ciecato, ma non vedo nessun return nel codice che hai postato
    return serve ad una funzione per restituire un valore; al di fuori di una funzione termina l'esecuzione della pagina

  9. #9
    Nono , non ho inserito nessun return
    ma , mettiamo il caso che nel mio codice metta

    Codice PHP:
    if (empty($nome) || empty($pass) || empty($mail) || empty($villo) || empty($sex)) 
    {
        echo 
    " Devi inserire tutti i campi per poter completare la registrazione ";
        return 
    $ok false;
    }

    /* 1] Se tutti i campi NON SONO compilati */
    else
    {
        return 
    $ok true;

    come mai non funziona più nulla u.u ?

  10. #10
    Utente di HTML.it L'avatar di Luke70
    Registrato dal
    Jul 1999
    Messaggi
    767
    return interrompe l'esecuzione di una funzione e restiuisce un valore.
    Messo così non serve a nulla.

    Credo debba restituirti errore (ma forse non li visualizzi)

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.