Visualizzazione risultati 1 fino 11 di 11

Discussione: Smistamento a seconda dell' username e della password

  1. #1
    Guest

    Predefinito Smistamento a seconda dell' username e della password

    Io ho una pagina di login ( main_login.php ):

    Codice HTML:
    <HTML>
    <HEAD>
    <TITLE>Login</TITLE>
    <style type="text/css">
    A:hover {text-decoration: underline; color: gold;}
    A:link {text-decoration: underline; color: red;}
    A:visited {text-decoration: underline; color: red;}
    </style>
    </HEAD>
    <BODY>
    <table border="0" cellspacing="1" cellpadding="0" width="230" align="left" bgcolor="blue"><tbody>
    <tr><form action="login.php" method="post"> <input name="phpMyAdmin" type="hidden" value="V0N0db6Fl62QWr6eBkly75xAGn3" /><td>
    <table border="0" cellspacing="1" cellpadding="3" width="100%" bgcolor="#0160C9"><tbody>
    <tr>
    <td width="61">Username</td>
    <td width="3">:</td>
    <td width="143"><input id="username" name="username" type="text" /></td>
    </tr>
    <tr>
    <td>Password</td>
    <td>:</td>
    <td><input id="password" name="password" type="password" /></td>
    </tr>
    <tr>
    <td></td>
    <td></td>
    <td><input name="login" type="submit" value="Login" /></td>
    <strong>Login Membri</strong>
    </tr>
    </tbody></table>
    </td>
    </form></tr>
    </tbody></table> 
    </body>
    </html>
    che premendo il pulsante porta a login.php :

    Codice PHP:
    <?php
    //Dati di accesso al database

    //host
    $db_server = "localhost";

    //username
    $db_username = "costruirerobot";

    //password
    $db_password = "";

    //nome del database
    $db_database = "my_costruirerobot";

    //nome della tabella
    $db_table = "utenti";

    $connessione=mysql_connect($db_server,$db_username,$db_password) or die("Connessione non riuscita: " . mysql_error());
    mysql_select_db($db_database) or die("Selezione del database non riuscita");
    $username=$_POST['username'];
    $password=$_POST['password'];
    $sql="SELECT * FROM $db_table WHERE username='$username' and password='$password'";
    $result=mysql_query($sql);
    $count=mysql_num_rows($result);
    if(
    $count==1){
    session_register("username");
    session_register("password");
    header("location:login_success.php");
    }
    else {
    echo
    "Attenzione username o password errati";
    }
    mysql_close($connessione);
    ?>
    che controlla se il login è avvenuto con successo, se così è porta a login_success.php e qui arriva il problema:

    Vorrei che per esempio se username è "a" e la password è "a" vada ad admin.html
    altrimenti vada a prova.html
    in più un controllo che verifichi se quella persona è andata lì effettuando il login o andandoci prendendo il link da qualche parte...

    Io ho provato questo codice ma non funziona:

    Codice PHP:
    <?php
    $username
    = $_POST['username'];
    $password = $_POST['password'];
    $_SESSION['username'] = $username;
    $_SESSION['password'] = $password;

    session_start();
    if(!
    session_is_registered(username)){
    header("location:main_login.php");
    }elseif((
    $_SESSION['username'] =='a')and ($_SESSION['password'] =='a')){
    print
    "<META HTTP-EQUIV='REFRESH' CONTENT='0; URL=admin.html'>";
    }elseif((
    $_SESSION['username'])and ($_SESSION['password'])){
    print
    "<META HTTP-EQUIV='REFRESH' CONTENT='3; URL=prova.html'>";
    }
    ?>
    Grazie mille!

  2. #2
    palla000 non è connesso Utente attivo
    Data registrazione
    12-07-2008
    Residenza
    trieste
    Messaggi
    278

    Predefinito

    non puoi usare la variabile $_SESSION insieme alla funzione tipo session_is_registered
    comunque è meglio se cripti le pass degli utenti
    per reindirizzare alla pagina admin ti consiglio di inserire nella tabella ancora un campo per vedere se l'utente è un admin
    esempio
    Codice PHP:
    if($rango == 1)
    header("Location: admin.html");
    else
    header("Location: quellochevuoi.php");
    la variabile $rango la recuperi dal db

  3. #3
    Guest

    Predefinito

    a rango nel database do il valore 1 se è admin e 0 se è utente?

  4. #4
    palla000 non è connesso Utente attivo
    Data registrazione
    12-07-2008
    Residenza
    trieste
    Messaggi
    278

    Predefinito

    si puo andare anche cosi

  5. #5
    Guest

    Predefinito

    ho provato a mettere questo in login_success.php :

    Codice PHP:
    <?php
    session_start
    ();
    $rango = $_POST['rango'];
    $_SESSION['rango'] = $rango;
    if(
    $rango == 0){
    header("location: index.html");
    }elseif(
    $rango == 1){
    header("location: prova.html");
    }elseif(
    $rango == 2){
    header("location: admin.html");
    }else{
    header("location: main_login.php");
    }
    ?>
    Ma nn funziona.

  6. #6
    Guest

    Predefinito

    Codice PHP:
    <?php
    session_start
    ();
    //Dati di accesso al database

    //host
    $db_server = "localhost";

    //username
    $db_username = "costruirerobot";

    //password
    $db_password = "";

    //nome del database
    $db_database = "my_costruirerobot";

    //nome della tabella
    $db_table = "utenti";

    $connessione=mysql_connect($db_server,$db_username,$db_password) or die("Connessione non riuscita: " . mysql_error());
    mysql_select_db($db_database) or die("Selezione del database non riuscita");
    $username=htmlspecialchars($_POST['username']);
    $password=htmlspecialchars($_POST['password']);
    $sql="SELECT * FROM $db_table WHERE username='".mysql_real_escape_string($username)."' AND password='".mysql_real_escape_string($password)."'";
    $result=mysql_query($sql);
    $count=mysql_num_rows($result);
    if(
    $count==1){
    $_SESSION['username']=$username;
    $_SESSION['password']=$password;
    header("location:login_success.php");
    }
    else {
    echo
    "Attenzione username o password errati";
    }
    mysql_close($connessione);
    ?>
    Codice PHP:
    <?php
    session_start
    ();
    if(isset(
    $_SESSION['username']) && isset($_SESSION['password'])){
    // qui la connessione al database//


    $livello=mysql_query("SELECT rango FROM tua tabella WHERE username='".$_SESSION['username']."' AND password='".$_SESSION['password']."'");
    $rango=mysql_fetch_array($livello);
    if(
    $rango['rango']==0){
    header("location: index.html");}
    elseif(
    $rango['rango']==1){
    header("location: prova.html");}
    elseif(
    $rango['rango']==2){
    header("location: admin.html");}
    else{
    header("location: main_login.php");
    }
    mysql_close($connessione); }else{ header("location: main_login.php");}
    ?>
    prova così
    ciao
    Ultima modifica di fabio29 : 10-05-2009 alle ore 16.31.48

  7. #7
    Guest

    Predefinito

    Grazie mille, ho provato perà va in index.html sempre.

  8. #8
    Guest

    Predefinito

    hai messo la colonna rango nella tua tabella?
    Ciao.

    EDIT:
    0=utente ?
    1= ?
    2=admin?
    Ultima modifica di fabio29 : 10-05-2009 alle ore 17.58.09

  9. #9
    Guest

    Predefinito

    si l'ho messo

  10. #10
    Guest

    Predefinito

    l'username che hai messo ha come rango 0 ?

  11. #11
    palla000 non è connesso Utente attivo
    Data registrazione
    12-07-2008
    Residenza
    trieste
    Messaggi
    278

    Predefinito

    un consiglio salva il rango in una variabile di sessione al momento del login così farai meno query

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •