Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    18

    login che reindirizza utenti verso pagine diverse in base alla password immessa

    Ciao a tutti . Sono un neofita assoluto di programmazione in generale e mi stò dilettando con PHP .

    Ho un problema che non riesco a capire e mi servirebbe il vostro aiuto .

    Vi spiego : dovrei realizzare un login in PHP utilizzando Mysql . Il login deve essere reindirizzato verso pagine differenti in base all’ utente . Ho pensato di creare una tabella molto semplice di nome “login” dove ho come colonne : id , username , password , redirect .
    Nella colonna redirect contavo di scrivere gli url ai quali vorrei reindirizzare gli utenti che si loggano ( una volta verificata l’ identita con user e password , ovviamente ) .

    Già qui il primo dubbio : devo scrivere gli url nella classica forma http://www.sitodalinkare.com , oppure come ?

    Ho trovato qualcosa in rete e l’ ho adattato alle mie esigenze , ma purtroppo non funziona in quanto non si sposta mai dalla pagina di login e non capisco il perché . Nemmeno se sbaglio volutamente il login visiono la pagina di errore presente nello script e nel contempo , se metto i dati corretti , resta ugualmente ferma lì … come mai ? Ve lo posto :


    <?
    $dbh=mysql_connect ("localhost", "miouserdatabase", "miapassworddatabase") or die ('Non posso connettermi al database perchè : ' . mysql_error());
    mysql_select_db ("nomedelmiodatabase");
    if(!isset($username) ||!isset($password)) {

    // esce dal php e mostra la pagina di login

    ?>
    <html>
    <head>
    <title>Login</title>
    <head>
    <body>
    <form action="<?=$php_SELF?><?if($QUERY_STRING){ echo"?". $QUERY_STRING;}?>" method="POST">
    <p align="center">L' ingresso è riservato . Si prega di inserire i propri dati.</p>
    <table align="center" border="0">
    <tr>
    <th>
    Username:
    </th>
    <th>
    <input type="text" name="username">
    </th>
    </tr>
    <tr>
    <th>
    password:
    </th>
    <th>
    <input type="password" name="password">
    </th>
    </tr>
    <tr>
    <th colspan="2" align="right">
    <input type="submit" value="Login">
    </form>
    </th>
    </tr>
    </table>
    </body>
    </html>
    <?
    exit();
    }

    // inizio la query al database

    $sql = mysql_query("SELECT password,redirect FROM login WHERE username = '$username'");
    $fetch_em = mysql_fetch_array($sql);
    $numrows = mysql_num_rows($sql);
    if($numrows!= "0" & $password == $fetch_em["password"]) {

    // login corretto quindi reindirizzato

    $valid_user = 1;
    header("Location: ".$fetch_em["redirect"]);
    exit;
    }
    else {
    $valid_user = 0;
    }

    // se invece non trova corrispondenza di dati

    if (!($valid_user))
    {
    // esce dal php e mostra la pagina di errore dove viene richiesto di riprovare
    ?>
    <html>
    <head>
    <title>Login</title>
    <head>
    <body>
    <form action="<?=$php_SELF?><?if($QUERY_STRING){ echo"?". $QUERY_STRING;}?>" method="POST">
    <p align="center">Le informazioni inserite non sono corrette. Si prega di riprovare.</p>
    <table align="center" border="0">
    <tr>
    <th>
    Username:
    </th>
    <th>
    <input type="text" name="username">
    </th>
    </tr>
    <tr>
    <th>
    password:
    </th>
    <th>
    <input type="password" name="password">
    </th>
    </tr>
    <tr>
    <th colspan="2" align="right">
    <input type="submit" value="Login">
    </form>
    </th>
    </tr>
    </table>
    </body>
    </html>
    <?
    exit();
    }
    ?>


    riuscite ad aiutarmi ? perché non procede ? si crea un loop per cui mi rimanda sempre e in ogni caso alla pagina di login principale … perché ?

    Và anche detto che una parte delle istruzioni presenti nello script neanche le conosco .. purtroppo non sono che un neofita .. ma ho voglia di imparare e migliorare .

    Un grazie davvero grande a tutti in anticipo . Un saluto .

  2. #2
    Secondo me, ti conviene invece creare una sorta di LIVELLO per ogni utente, una colonna INT del DB al posto del link.

    Se l'utente Pippo ha livello 1, PHP reindirizzerà al link xxx.php.
    Se l'utente Pluto ha 2, verso yyy.php.

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    18
    Grazie Alcio , ma la mia ignoranza è davvero grande .. che significa un livello in un database ? non è una colonna ?

    sapresti spiegarmi meglio ciò che intendi ?

  4. #4
    Scusami, forse sono stato poco chiaro.
    Intendevo....

    Definisci a priori che tipo di utente, e quindi di diritti, avrai nel tuo sito.
    Diciamo.... utente normale, utente senior, amministratore.
    L'utente Normale potrà accedere a pagina1.php.
    L'utente senior a pagina2.php.
    L'amministatore accederà a pagina3.php.

    Definisci a priori un livello di riconoscimento dei vari utenti.
    Normale: 10
    Senior: 20
    Amministratore 100.

    Questi valori, li andrai inserire in una colonna INT della tabella degli utenti.
    Per ogni record, quindi per ogni utente, corrisponderà un livello.

    Quando vai a fare la query di accesso dell'utente, andrai ad estrarre il valore di livello, oltre a tutti quelli che ti interessano.
    Ti scrivo al volo un po' di codice, che poi adatterai alle tue necessità:
    Codice PHP:
    $sql "SELECT livello FROM tabella WHERE user = 'xxx' AND password = 'yyy' ";
    $query mysql_fetch_array($sql);
    $result mysql_result($query0'livello');
    mysql_free_result($query);

    switch(
    $result) {
       case 
    100:
         
    $link "pagina3.php";
       break;
       case 
    20:
         
    $link "pagina2.php";
       break;
       case 
    10:
         
    $link "pagina1.php";
       break;
    }
    header("Location: $link"); 
    Spero di essere stato maggiormente chiaro.
    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    18
    Grazie mille Alcio , gentilissimo .

    Ora è più chiaro e credo di aver capito , malgrado la mia ignoranza assoluta . E' un'idea che non avevo preso in considerazione .

    L' unico "neo" , che così lo possiamo chiamare , è che trovo più difficoltoso gestire in seguito il database , qualora mi si dovesse ingrandire .. perchè in questo caso dovrei lavorare sul codice ogni volta che volessi aggiungere un accesso ed un link , mentre nell' altro modo , mi bastava lavorare sulla tabella e quindi poteva forse essere più pratico per me ...

    Comunque ti ringrazio moltissimo per la disponibilità e la gentilezza ,che merita una calorosa lode.

    Farò delle prove per vedere se sono in grado di far funzionare la tua idea , ma vista la tua cortesia , perdonami se ne approfitto ancora una volta , e se posso permettermi una domanda : come risolveresti invece l' altro caso proposto da me , per potermi far lavorare solo sulla tabella in seguito ? credi ci possa essere un modo ? come mai ora come ora non funziona ?

    grazie mille e scusa l' insistenza , ma tutto mi serve per imparare .


  6. #6
    Ora devo scappare e non posso rispondere.
    Uppa questo thread, così domani ti do un'altra dritta in merito.
    Meglio ancora.
    Spiega un po' cosa intendi.
    Te per ogni utente vuoi creare una pagina apposita???
    Se si, quali valori/informazioni ci vorresti mettere??

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    18
    Originariamente inviato da alcio74
    Ora devo scappare e non posso rispondere.
    Uppa questo thread, così domani ti do un'altra dritta in merito.
    Meglio ancora.
    Spiega un po' cosa intendi.
    Te per ogni utente vuoi creare una pagina apposita???
    Se si, quali valori/informazioni ci vorresti mettere??

    Grazie infinite Alcio , sei gentilissimo .

    L' azienda per cui lavoro mi ha chiesto proprio di realizzare una unica pagina form nella quale gli utenti fanno il login che reindirizza a pagine completamente diverse , alcune interne a quel nostro particolare sito , altre ad altri nostri siti . In quell' unica pagina di form , l' utente arriva e digita user e password da noi forniti e sulla base dei dati immessi viene rimandato alle pagine alle quali abbiamo deciso di farlo accedere . Una o più pagine potrebbero essere in quel medesimo server e parlare di cinema ; altre nello stesso server , ma parlare di videoclips , altre ancora su server anche diversi e con altri argomenti ...

    quindi è necessario che dopo che l' utente ha inserito i dati di accesso , sia reindirizzato verso un url apposito che potrebbe essere :

    http:\\miosito.com\cinema\cinema.php
    http:\\miosito.com\video\video.php
    http:\\altromiosito.com\sport\sport.php
    http:\\altromiosito.com\tv\tv.php


    Le pagine saranno tutte protette e non vi si potrà accedere in nessun altro modo ..


    Spero di essere riuscito a spiegarmi , perchè per malgrado in mente le cose siano chiare, tirarle fuori a parole talvolta causa una certa difficoltà .


    Ti ringrazio moltissimo per l' attenzione prestatami e il tempo che mi dedichi .

    Un saluto .

  8. #8
    Ho capito perfettamente.
    Prima di scrivere codice, dimmi un'ultima cosa.
    I redirect sonno infiniti oppure finiti???
    Suppogno infatti che determinati utenti possano accedere (ognuno con le proprie credenziali) alle stesse pagine.
    NO???
    Per esempio....
    Gli utenti che fanno determinate mansioni possono accedere a miosito.com/cinema mentre altri con mansioni diverse possono accedere a altromiosito.com/cinema.
    questo per capire.
    Se ci sono 100 utenti, non è che ci sono 100 mansioni diverse e quindi 100 link diversi. No???


    p.s.
    (Stavolta mi sa che non mi sono spiegato io)
    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    18
    Alcio , sei uno spettacolo !

    non sò come ringraziarti .

    Per risponderti ( ti sei spiegato benissimo ) : no , non ci sono 100 reindirizzamenti diversi verso link diversi . Al momento infatti sarebbero solo due , ma sò che potranno crescere fino ad un certo numero , penso comunque siano sempre e comunque entro gli 8-10 ...

    Hai colto perfettamente il senso delle mie necessità . Ti ringrazio infinitamente .


    Ps : sei anche un chitarrista ? dal tuo avatar sembrerebbe di sì . Scusami se mi permetto di chiederlo , ma anche io amo profondamente questo strumento .

    Grazie ancora .

    Un saluto


  10. #10
    Beh... per i complimenti aspetta prima di avere uno script funzionante... magari potrei arrivare fino ad un certo punto e poi capire che non sono in grado di darti una mano!

    Scherzi a parte.
    Ti avevo fatto quella domanda, perché secondo me ti conviene definire (su carta, prima di mettere mano al codice) che tipo di livelli di utenza ti aspetti e che tipo di lavoro dovrà fare ogni utente.
    Nell'esempio che ti avevo portato qualche post fa, ti ho spiegato già come agire, pianificando prima i livelli di utenza.
    Per qualsiasi delucidazione, basta che posti di nuovo.


    p.s.
    Si suono la chitarra in un gruppo thrash metal.
    In firma trovi il link al mio gruppo.
    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

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.