Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 31

Discussione: Login di accesso

  1. #1

    Login di accesso

    Ho scaricato questo script composto da due file (database.php e pr_00.php) che mi permette un login senza database.
    Vorrei sapere se è possibile fare in modo che a seconda del nome utente e password che si inseriscono si viene indirizzati ad una pagina personale. Esempio: Se inserisco nome utente: marco e password: marco vado in home.htm se invece inserisco nome utente: matteo e password: matteo vado in home2.htm

    Vi posto gli script

    Grazie dell'attenzione!


    database.php
    Codice PHP:
    <?

    //Per chi lo ha scaricato: inserisci qui i nomi degli utenti
    $datauser = array(lorenzo,marco,matteo);
    //Qui le password
    $datapassword = array(lorenzo,marco,matteo);
    //ricordati che lil primo nick va con la prima password o cosi via
    ?>
    pr_00.php
    Codice PHP:
    <?php
    // questo script è stato creato da Ruto di [url]www.pierotofy.it[/url]
    // [url]www.lotenzo.3000.it[/url] [url]www.avsp.altervista.org[/url]

    // in_array è una funzione che cerca un determinato valore nell'array
    // array_search ti dice in che key ( o ondici) è situato un valore nell'array
    $data=date("m.d.y, H:i:s"); 
    $user=$_POST['user'];
    include(
    'database.php');
    if(
    in_array($_POST['user'],$datauser)){
    $valuser1;
    $chiaveuser array_search($_POST['user'], $datauser);
    }
    if(
    in_array($_POST['password'],$datapassword)){
    $valpassword1;
    $chiavepassword array_search($_POST['password'], $datapassword);
    }
    $valsomm$valuser+$valpassword;
    if((
    $valsomm==2)&&($chiavepassword==$chiaveuser)){
    // cambia home.htm con il percorso e il nome della pagina a cui andare 
    // un volta effettuato il login con successo
    header("Location: home.htm"); 
    //-----------------------------------
    }else{
    //invece qui ci devi mettere la pagina a che da errore nell inserimento del login
    header("Location: error.htm"); }
    ?>

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    539
    certo, sostituisci

    header("Location: home.htm");

    con

    header("Location: " . $pagina[$x] . ".htm");

    dove $pagina[$x] è la pagina associata all'utente; se marco sarà home, se matteo home2, ecc...
    (il valore viene salvato in un array come per il nome e la password; allo stesso indice del nome corrisponde la password e la pagina associata)

  3. #3
    Originariamente inviato da freeman74
    certo, sostituisci

    header("Location: home.htm");

    con

    header("Location: " . $pagina[$x] . ".htm");

    dove $pagina[$x] è la pagina associata all'utente; se marco sarà home, se matteo home2, ecc...
    (il valore viene salvato in un array come per il nome e la password; allo stesso indice del nome corrisponde la password e la pagina associata)


    Innanzitutto ti ringrazio per la risposta, ti volevo solo chiedere, esattamente cosa gli devo scrivere, ti spiego io ho scritto:

    header("Location: " . $pagina[$marco] . "home.htm");

    ma non funziona!
    Inoltre matteo dove lo aggiungo?

    Come devo fare, scusami e ancora grazie!!

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    539
    allora:

    tu hai questo array
    $datauser = array('lorenzo','marco','matteo');

    vuol dire che lorenzo si trova nell'indice 0 dell'array, marco nell'indice 1 e matteo nell'indice 2

    se hai un array con le relative pagine:

    $arrPagina = array('home', 'home2', 'home3');

    e tu sai che marco è nell'indice 1, per richiamare la pagina farai

    header("Location: " . $arrPagina[1] . ".htm");

    siccome a priori non sai chi si collegherà, prima cerchi l'utente nell'array con:

    Codice PHP:

    $key 
    array_search($_POST['user'],$datauser); 
    array_search() è come in_array() con la differenza che ti restituisce l'indice della stringa trovata; in caso contrario restituisce FALSE;
    quindi fai

    Codice PHP:

    if($key){ // l'utente ha restituito un indice
       
    $pagina $arrPagina[$key]; // all'utente corrisponde la pagina allo stesso indice dell'array
    }

    // ed il conseguente redirect diventa:


    header("Location: " $pagina ".htm"); 
    p.s. nulla ti vieta di fare il redirect nell'if come ti avevo scritto la prima volta:

    header("Location: " . $arrPagina[$key] . ".htm");

    dove $arrPagina è l'array e $key l'indice in cui pescare la pagina per il redirect.

  5. #5
    invece di usare header per reindirizzare prova con

    <script>
    location.href = 'pagina';
    </script>

  6. #6
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    Peggio del peggio.

    Per effetturare un redirect di questo tipo e' sempre meglio farlo da server :

    Problemi con la tua sol

    1- lo fai con js
    2- l'utente potrebbe aver disabilitato js
    3- obblighi il redirect da client
    4- se disabilito js, posso vedre il formato con cui le pagine utenti sono create oppure capire che parametri passare per accedere alla pagina di un altro utente

    La soluzione migliore e' sempre quella lato server.
    Per effettuare un redirect basta rispettare quanto segue :

    1- Non printare nulla sulla pagina prima dell'istruzione header.

    L'istruzione come la usi necessita di particolare attenzione sulla gestione degli array
    $pagina[$marco] va a caricare la cella dell'array $pagina ove sia presente l'etichetta $marco .... ma fai attenzione che $marco e' una variabile che a tempo di esecuzione viene espansa e quindi ne viene caricato il contenuto

    Io farei una cosa leggermente diversa


    su file users.php
    Codice PHP:
    $users = array(

         
    "gianni" => array(
                   
    "pwd" => "aiuhajksd" ,
                   
    "homepage" => "gianni_home.html" ,
                   
    "is_active" => true 
              
    ),

         
    "marco" => array(
                   
    "pwd" => "aiasdsd" ,
                   
    "homepage" => "marco_home.html" ,
                   
    "is_active" => true 
              
    ),

    ); 
    Poi il login script lo fai
    Codice PHP:

    include("./users.php")

    $log $_POST["login"] ;
    $pwd $_POST["password"] ;

    $user =  $users["login"]

    if( 
    $user && $user["pwd"]==$pwd && user["is_active"]===true)
    {
         
    header("location:".$user["homepage"]);
    }
    else
    {die(
    "TU NON PUOI PASSSHARE !!! [cit]Gandalf[/cit] ");} 

    Ovviamente dovrai proteggere con sessione e controllo utente le varie pagine pero' se non vuoi usare database questa e' una sol molto rapida per gestire utenti.

  7. #7
    Originariamente inviato da Virus_101
    Peggio del peggio.

    Per effetturare un redirect di questo tipo e' sempre meglio farlo da server :

    Problemi con la tua sol

    1- lo fai con js
    2- l'utente potrebbe aver disabilitato js
    3- obblighi il redirect da client
    4- se disabilito js, posso vedre il formato con cui le pagine utenti sono create oppure capire che parametri passare per accedere alla pagina di un altro utente

    La soluzione migliore e' sempre quella lato server.
    Per effettuare un redirect basta rispettare quanto segue :

    1- Non printare nulla sulla pagina prima dell'istruzione header.

    L'istruzione come la usi necessita di particolare attenzione sulla gestione degli array
    $pagina[$marco] va a caricare la cella dell'array $pagina ove sia presente l'etichetta $marco .... ma fai attenzione che $marco e' una variabile che a tempo di esecuzione viene espansa e quindi ne viene caricato il contenuto

    Io farei una cosa leggermente diversa


    su file users.php
    Codice PHP:
    $users = array(

         
    "gianni" => array(
                   
    "pwd" => "aiuhajksd" ,
                   
    "homepage" => "gianni_home.html" ,
                   
    "is_active" => true 
              
    ),

         
    "marco" => array(
                   
    "pwd" => "aiasdsd" ,
                   
    "homepage" => "marco_home.html" ,
                   
    "is_active" => true 
              
    ),

    ); 
    Poi il login script lo fai
    Codice PHP:

    include("./users.php")

    $log $_POST["login"] ;
    $pwd $_POST["password"] ;

    $user =  $users["login"]

    if( 
    $user && $user["pwd"]==$pwd && user["is_active"]===true)
    {
         
    header("location:".$user["homepage"]);
    }
    else
    {die(
    "TU NON PUOI PASSSHARE !!! [cit]Gandalf[/cit] ");} 

    Ovviamente dovrai proteggere con sessione e controllo utente le varie pagine pero' se non vuoi usare database questa e' una sol molto rapida per gestire utenti.
    Beh io posso farlo dal PHP, lui sta imparando, magari è meglio che cominci a imparare a risolvere i problemi, pure con altri workaround nel frattempo.

    Sieg Hail?

  8. #8
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    Si capisco ma e' sempre meglio "partire con il piede giusto" .

  9. #9
    Originariamente inviato da freeman74
    allora:

    tu hai questo array
    $datauser = array('lorenzo','marco','matteo');

    vuol dire che lorenzo si trova nell'indice 0 dell'array, marco nell'indice 1 e matteo nell'indice 2

    se hai un array con le relative pagine:

    $arrPagina = array('home', 'home2', 'home3');

    e tu sai che marco è nell'indice 1, per richiamare la pagina farai

    header("Location: " . $arrPagina[1] . ".htm");

    siccome a priori non sai chi si collegherà, prima cerchi l'utente nell'array con:

    Codice PHP:

    $key 
    array_search($_POST['user'],$datauser); 
    array_search() è come in_array() con la differenza che ti restituisce l'indice della stringa trovata; in caso contrario restituisce FALSE;
    quindi fai

    Codice PHP:

    if($key){ // l'utente ha restituito un indice
       
    $pagina $arrPagina[$key]; // all'utente corrisponde la pagina allo stesso indice dell'array
    }

    // ed il conseguente redirect diventa:


    header("Location: " $pagina ".htm"); 
    p.s. nulla ti vieta di fare il redirect nell'if come ti avevo scritto la prima volta:

    header("Location: " . $arrPagina[$key] . ".htm");

    dove $arrPagina è l'array e $key l'indice in cui pescare la pagina per il redirect.
    Allora ho copiato le stringhe di codice che mi hai postato, inserendole in questo modo.
    Ma purtroppo non funziona mi esce un messaggio di errore: "Parse error: parse error in pr_00.php on line xx (xx sta per un numero che ogni volta cambia)"
    Ecco come ho fatto, forse ho sbagliato da qualche parte? Grazie ancora, mi sento di impazzire .

    File database.php
    Codice PHP:

    <?

    //Per chi lo ha scaricato: inserisci qui i nomi degli utenti
    $datauser = array(enzo,marco,matteo);
    //Qui le password
    $datapassword = array(enzo,marco,matteo);
    //ricordati che lil primo nick va con la prima password o cosi via
    $arrPagina = array('home.html''home.html''home2.html');
    ?>

    File pr_00.php
    Codice PHP:

    <?php


    $data
    =date("m.d.y, H:i:s"); 
    include(
    'database.php');
    if(
    in_array($_POST['user'],$datauser)){
    $valuser1;
    $chiaveuser array_search($_POST['user'], $datauser);
    }
    if(
    in_array($_POST['password'],$datapassword)){
    $valpassword1;
    $chiavepassword array_search($_POST['password'], $datapassword);
    }
    $valsomm$valuser+$valpassword;
    if((
    $valsomm==2)&&($chiavepassword==$chiaveuser)){

    $key array_search($_POST['user'],$datauser);
    if(
    $key){$pagina $arrPagina[$key]; }{

    header("Location: " $pagina ".html");


    // questo programma registra tutti gli utenti che entrano in un apposito file
    $filename "cronologiautenti.txt";
    $testo $_POST['user']." ".$data."
    "
    ;
    $handle fopen($filename'a'); 
    fwrite($handle$testo);
    fclose($handle);
    //-----------------------------------
    }else{
    //invece qui ci devi mettere la pagina a che da errore nell inserimento del login
    include('errore.html');
    }
    ?>

  10. #10
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    539
    Metti gli apici agli array dei nomi/password

    Codice PHP:
    //Per chi lo ha scaricato: inserisci qui i nomi degli utenti
    $datauser = array('enzo','marco','matteo');
    //Qui le password
    $datapassword = array('enzo','marco','matteo'); 

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.