Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di Columb
    Registrato dal
    Dec 2005
    Messaggi
    35

    Piccolo script autenticazione in php, pieno d'errori

    Premettendo che di php nn ne so una cicca, xò a scuola quest'anno abbiamo fatto un po' di C++...comunque sto tentando di creare un piccolo sistema di autenticazione basato su dei file e non su database(nn so come fare), almeno x il momento....
    questa è l'ipotetica pagina di login
    pagLog.html
    codice:
    <html>
    <div>
    <form action="log.php" method="post">
    
    
    Inserisci la tua UserID<input name="userid" type="text"></p>
    
    
    Inserisci la tua password<input name="password" type="text"></p>
    
    
    <input type="submit" value="Invia Risposta"></p>
    </form>
    </div>
    </html>
    Questa le pagine da cui prendo i "dati degli utenti"
    utenti.php
    Codice PHP:
    $numero=4
    $uto0
    ='a';
    $uto1='b';
    $uto2='c';
    $uto3='d';
    $uto4='e'
    psw.php
    Codice PHP:
    $psw0='h';
    $psw1='i';
    $psw2='l';
    $psw3='m';
    $psw4='n'
    E infine la pagina che dovrebbe "elaborare" tutto...
    log.php
    Codice PHP:
    <?php
    include 'utenti.php';
    include 
    'psw.php';
    $auth=FALSE;
    for(
    $x=1;$x<$numero;$x++){
        if(
    $_POST['userid']==($uto($x))&&$_POST['password']==($psw($x))){
                
    $auth=TRUE;
                echo 
    'Grazie per esserti autenticato';
        }
        else{
            echo 
    'UserID o password errati';
            }
    }        
    ?>
    MI DICE QUESTO:
    "$numero=4 $uto0='a'; $uto1='b'; $uto2='c'; $uto3='d'; $uto4='e'; psw0='h'; psw1='i'; psw2='l'; psw3='m'; psw4='n';
    Notice: Undefined variable: numero in c:\programmi\easyphp1-8\www\admin\log.php on line 5"

    Se qualcuno mi aiutasse mi farebbe un grandissimo piacere, vorrei capire l'errore alla riga 5 cosa sia...e perchè nn va un po' tutto...please, è praticamente il primo script che "creo" di mio...è già non funzia... ...vi ringrazio già da ora...

    PS: nel tag "form" della pagina html non capisco cosa cambia tra method "post" o "get"...

  2. #2
    Utente di HTML.it L'avatar di Francis87
    Registrato dal
    Jun 2003
    Messaggi
    5,970
    get ti manda i dati in chiaro e li vedi nella barra dell'indirizzo:
    pagina.php?dato1=valore1&dato2=valore2

    cmq... non puoi fare semplicemente

    Codice PHP:
    $pswd="psw".$_POST['userid'];
    $correct_pswd=$$pswd;

    if (
    $_POST['password']==$correct_pswd) {
     echo 
    "giusto! =) ";
    }
    else {
     echo 
    "sbagliato! X( ";

    Heaven's closed. Hell sold out.

    Linux 2.6.26-2-amd64
    Debian squeeze

  3. #3
    Utente di HTML.it L'avatar di Columb
    Registrato dal
    Dec 2005
    Messaggi
    35
    Originariamente inviato da Francis87
    get ti manda i dati in chiaro e li vedi nella barra dell'indirizzo:
    pagina.php?dato1=valore1&dato2=valore2
    Grazie mille


    cmq... non puoi fare semplicemente

    Codice PHP:
    $pswd="psw".$_POST['userid'];
    $correct_pswd=$$pswd;

    if (
    $_POST['password']==$correct_pswd) {
     echo 
    "giusto! =) ";
    }
    else {
     echo 
    "sbagliato! X( ";

    Scusa ma non capisco come funzionano le prime 2 righe...e poi il "." non so che funzione abbia...

  4. #4
    Utente di HTML.it L'avatar di Francis87
    Registrato dal
    Jun 2003
    Messaggi
    5,970
    scusa, ho realizzato ora che il campo "userid" è in realtà lo username, e quindi non basta fare come dicevo io.

    cmq

    Codice PHP:
    $pswd="psw".$_POST['userid'];
    $correct_pswd=$$pswd
    la variabile $pswd è una stringa che vale "psw" più il valore di $_POST['userid'].
    il comando "." concatena due stringhe.

    es:
    codice:
    $ciaomamma="ciao"." "."mamma";
    $correct_pswd è la variabile che dovrebbe assumere (non ho mai provato le variabili variabili) il valore della password corretta.

    se l'id dell'utente è 0, $pswd diventa "psw0" e la $correct_pswd=$pswd0 e quindi = "h".
    Heaven's closed. Hell sold out.

    Linux 2.6.26-2-amd64
    Debian squeeze

  5. #5
    Utente di HTML.it L'avatar di Columb
    Registrato dal
    Dec 2005
    Messaggi
    35
    Originariamente inviato da Francis87
    scusa, ho realizzato ora che il campo "userid" è in realtà lo username, e quindi non basta fare come dicevo io.

    cmq

    Codice PHP:
    $pswd="psw".$_POST['userid'];
    $correct_pswd=$$pswd
    la variabile $pswd è una stringa che vale "psw" più il valore di $_POST['userid'].
    il comando "." concatena due stringhe.

    es:
    codice:
    $ciaomamma="ciao"." "."mamma";
    $correct_pswd è la variabile che dovrebbe assumere (non ho mai provato le variabili variabili) il valore della password corretta.

    se l'id dell'utente è 0, $pswd diventa "psw0" e la $correct_pswd=$pswd0 e quindi = "h".
    Scusa se rompo ancora, ma non capisco come $correct_pswd assume il valore giusto? il $$ che significa?cmq...nella parte dopo dell script verifichi il valore inserito come password con "psw+useridinserito" xcui non sarà mai uguale...

    SUPER EDIT:
    Ho sistemato un po' lo script e sembra funzioni, volevo però fare in modo che se l'utente fosse già loggato, gli uscisse un messaggio con scritto che era apposto e invece qllo non funziona proprio....sapete come posso fare?Grazie x l'aiuto
    Codice PHP:
    <?php
    //auth lo metterei come variabile impostata FALSE dal file utenti.php
    if(isset($auth)==TRUE)//con isset verifico l'esistenza...
        
    if($auth==TRUE){
        echo (
    "Ti sei già loggato");
        }
        else{
            include 
    "utenti.php";
            include 
    "psw.php";
            for(
    $x=0;$x<=$numero;$x++){
                
    $user "uto" $x;
                
    $pass "psw" $x;
                if(
    $_POST['userid']==($$user)&&$_POST['password']==($$pass)){
                    
    $auth=TRUE;
            }
        }
            if (
    $auth==TRUE)
                echo (
    "Grazie per esserti autenticato");
            else
                   echo (
    "Nome utente e/o password non validi!"); 
        
    }
    else{
        include 
    "utenti.php";
        include 
    "psw.php";
        for(
    $x=0;$x<=$numero;$x++){
            
    $user "uto" $x;
            
    $pass "psw" $x;
            if(
    $_POST['userid']==($$user)&&$_POST['password']==($$pass)){
                
    $auth=TRUE;
            }
        }
        if (
    $auth==TRUE)
            echo (
    "Grazie per esserti autenticato");
        else
               echo (
    "Nome utente e/o password non validi!"); 
    }
    ?>

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.