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

    [PHP] controlli su campi

    Ciao! sto facendo uno script per cambiare la propria password e mi servono alcuni aiuti.
    Ho due campi che mi arrivano alla pagina tramite:
    $_POST['old_pass'];
    $_POST['pass'];

    Prima cosa dovrei controllare che entrambi i campi non siano vuoti e per questo ho usato:
    Codice PHP:
    if ($_POST['old_pass'] == "" && $_POST['pass'] == ""
    Poi la seconda cosa che mi serve è controllare se solo uno dei due campi sia vuoto. Quindi se l'utente ha inserito dei dati solo nel primo o nel secondo campo.

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    6,034
    puoi usare OR al posto di &&

  3. #3
    Se mancasse $_POST riceveresti un NOTICE. Metterei prima un

    if(!isset($_POST)) { echo "manca tutto, ciao ciao";
    exit; }
    if ($_POST['old_pass'] == "") { echo "Manca old_pass";
    }
    elseif($_POST['pass'] == ""){ echo "manca pass" ;
    }
    else { echo "OK. ci sono entrambe" }



    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  4. #4
    No ma il problema è che mi arrivano anche altri $_POST.
    Cmq vi spiego bene il problema:
    Ho un form che cambia i dati dell'utente per esempio nome cognome email e anche password....
    Allora quello che voglio fare io sulla password è questo:

    1- se l'utente non immette nei campi la vecchia password e la nuova i dati da cambiare saranno solo le altre informazioni (email nome...)
    2- se l'utente immette dati solo nel primo o solo nel secondo campo password, dare errore.
    3- se l'utente immette dati in entrambi i due campi password (pass: quella nuova e old_pass quella vecchia) cambiare la password con quella nuova e magari aggiungere un WHERE pass = '".$_POST['old_pass']."' per maggiore sicurezza.

    Per quanto riguarda il primo problema ho risolto facendo un if che controlla se entrambi i campi sono vuoti e mi crea una query:
    Codice PHP:
     if ($_POST['old_pass'] == "" $_POST['pass'] == ""){
    $query "UPDATE ".$_CONFIG['table_utenti']." SET nome = '$nome', cognome = '".$_POST['cognome']."', email = '".$_POST['email']."', nickname = '".$_POST['nickname']."', classe = '$classe', msn = '".$_POST['msn']."' WHERE nickname = '".$user_info[0]."' and pass = MD5('".$user_info[1]."')";

    ma per gli altri due punti?

  5. #5
    Utente di HTML.it L'avatar di IlNata
    Registrato dal
    Jan 2004
    Messaggi
    128
    Fai come ha detto Piero.mac e nel primo if ci metti
    if (!isset($_POST['old_pass'] && !isset($_POST['pass']))) {
    echo 'Manca tutto..';
    }
    else
    {
    ecc..
    }

    ciao ciao
    Powered by
    ASUS L5846GXUP P4 3.2 ATI9700 128M 512DDR 80GB
    KUBUNTU 5.10 <----- Che spettacolo!!


    Chicca ti voglio beneeeee :-)

  6. #6
    Utente di HTML.it L'avatar di VaLvOnAuTa
    Registrato dal
    Jun 2002
    Messaggi
    2,003
    Originariamente inviato da piero.mac
    Se mancasse $_POST riceveresti un NOTICE. Metterei prima un

    if(!isset($_POST)) { echo "manca tutto, ciao ciao";
    exit; }
    if ($_POST['old_pass'] == "") { echo "Manca old_pass";
    }
    elseif($_POST['pass'] == ""){ echo "manca pass" ;
    }
    else { echo "OK. ci sono entrambe" }


    Domanda fagiana ( )
    Il valore del submit non viene passato ugualmente?

  7. #7
    No ma il problema è che mi arrivano anche altri $_POST.
    Cmq vi spiego bene il problema:
    Ho un form che cambia i dati dell'utente per esempio nome cognome email e anche password....
    Allora quello che voglio fare io sulla password è questo:

    1- se l'utente non immette nei campi la vecchia password e la nuova i dati da cambiare saranno solo le altre informazioni (email nome...)
    2- se l'utente immette dati solo nel primo o solo nel secondo campo password, dare errore.
    3- se l'utente immette dati in entrambi i due campi password (pass: quella nuova e old_pass quella vecchia) cambiare la password con quella nuova e magari aggiungere un WHERE pass = '".$_POST['old_pass']."' per maggiore sicurezza.

    Per quanto riguarda il primo problema ho risolto facendo un if che controlla se entrambi i campi sono vuoti e mi crea una query:
    Codice PHP:
     if ($_POST['old_pass'] == "" $_POST['pass'] == ""){
    $query "UPDATE ".$_CONFIG['table_utenti']." SET nome = '$nome', cognome = '".$_POST['cognome']."', email = '".$_POST['email']."', nickname = '".$_POST['nickname']."', classe = '$classe', msn = '".$_POST['msn']."' WHERE nickname = '".$user_info[0]."' and pass = MD5('".$user_info[1]."')";

    ma per gli altri due punti?

  8. #8
    Utente di HTML.it L'avatar di VaLvOnAuTa
    Registrato dal
    Jun 2002
    Messaggi
    2,003
    Codice PHP:
    if ((empty($_POST['old_pass'])) && (empty($_POST['pass'])) {
      echo 
    "Errore";
    }
    else {
      
    // query di modifica

    non ti conviene mettere quel WHERE perchè se due utenti hanno utilizzato la stessa password, la pass verrebbe cambiata ad entrambi.

  9. #9
    valvonatuta ma quel && messo in:
    if ((empty($_POST['old_pass'])) && (empty($_POST['pass'])) {

    sta per OR?
    quindi {se $_POST['old_pass'] è vuota o $_POST['pass'] pass è vuota}?

    perchè a me serve un costrutto logico così:

    se tutte e due sono vuote-----$query = dsads
    se una delle due è vuota------die("pass vuota")
    se una delle due è vuota------die("old pass")
    se tutte e due sono piene-----$query = dasdas


    spero di essermi spiegato!


  10. #10
    up!

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.