Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Problema login

  1. #1

    Problema login

    Buongiorno...come si può facilmente capire sono un novizio del PHP e tra le mie varie prove mi sono imbattuto su una pagina di login...bene, il mio problema è che pur funzionando senza restituire errori, il listato seguente non mi permette di far capire al server che quando il campo livello è = a "admin" mi deve mandare alla pagina amm.php e quando invece è = a "user" mi deve scaraventare in user.php...sto uscendo di testa...abbiate pietà...ho il presentimento che sia una fesseria...
    GRAZIE A TUTTI ANTICIPATAMENTE!!!



    Codice PHP:
    session_start();
    if (isset(
    $_POST['user']) && isset($_POST['password']))
     {
        
    $user $_POST['user'];
        
    $password $_POST['password'];
     
     }

    include(
    "../config.php"); 
    poi il vero listato...

    Codice PHP:
    //Connessione al server mysql
    $conn mysql_connect("$server","$db_user") or die("$errConn");

    //Selezione del database
    @mysql_select_db("$db") or die ("$errSeldb");

    //Recupero dati da form di login nella HOME
    $user $_POST['user'];
    $password $_POST['password'];

    //Query di interrogazione per la presenza di un user e di una password realmente presenti nel database
    $sql1 "SELECT user FROM utenti WHERE user = '$user'";
    $sql2 "SELECT password FROM utenti WHERE password = '$password'";
    $sql3 "SELECT livello FROM utenti WHERE livello = '$livello'"

    //Esecuzione delle query
    $query1 mysql_query($sql1) or die(mysql_error());
    $query2 mysql_query($sql2) or die(mysql_error());
    $query3 mysql_query($sql3) or die(mysql_error());

    //Risultati delle query eseguite
    $ris1 mysql_num_rows($query1);
    $ris2 mysql_num_rows($query2);
    $ris3 mysql_num_rows($query3);

        
    $userlogin mysql_result($ris1,0,'user');
            
    $passlogin mysql_result($ris2,0,'password');
            
    $livlogin mysql_result($ris3,0,'livello');

    if ((
    $ris1 !=0)&&($ris2 !=0))
     {
        
    $_SESSION['loginuser'] = $userlogin;
            
    $_SESSION['loginpass'] = $passlogin;
        
    $_SESSION['loginlivello'] = $livlogin;
           

        if (
    $ris3 "admin")
        {
        
    header("location: ../amm.php");
        }
        else
        {
        
    header("location: ../user.php");
         }
     }
     else
     {
        
    header("location: ../ciao.php"); 
     } 

  2. #2
    TANTO PER iniziare trasforma le 3 query in una cioè

    Codice PHP:
    //Query di interrogazione per la presenza di un user e di una password realmente presenti nel database 
    $sql1 "SELECT user FROM utenti WHERE user = '$user'"
    $sql2 "SELECT password FROM utenti WHERE password = '$password'"
    $sql3 "SELECT livello FROM utenti WHERE livello = '$livello'";  

    //Esecuzione delle query 
    $query1 mysql_query($sql1) or die(mysql_error()); 
    $query2 mysql_query($sql2) or die(mysql_error()); 
    $query3 mysql_query($sql3) or die(mysql_error()); 
    fallo diventare :

    Codice PHP:
    //Query di interrogazione per la presenza di un user e di una password realmente presenti nel database 
    $sql1 mysql_query("SELECT user,password,livello FROM utenti WHERE user = '$user'" and password ='$password' "); //ti ho tolto livello in quanto non è definito
    $ris1 = mysql_num_rows($query1); //ottieni il numero dei valori nel db 0 oppure 1

    while(
    $data = mysql_fetch_object($sql1)){
    $_SESSION['loginuser'] = $data->userlogin
            
    $_SESSION['loginpass'] = $data->passlogin
        
    $_SESSION['loginlivello'] = $data->livlogin
    }// qui esegui un while per ottenere i valori nel db . io ti ho messo i nomi userlogin passlogin livlogin perchè presumo siano i nomi dei tuoi campi nella tabella utenti
    if (
    $_SESSION['loginlivello']== "admin") 
        { 
        header("
    location: ../amm.php"); 
        } 
        if(
    $_SESSION['loginlivello']== "user")
        { 
        header("
    location: ../user.php"); 
     }//etc etc ... 


  3. #3
    fai anche attenzione a :
    Codice PHP:
     if ($ris3 "admin").... 
    il test risulta sempre vero in quanto usando '=' assegni un valore a $ris3 (sovrascrivendone il precedente!)
    quindi usa l'operatore di confronto '=='
    Codice PHP:
    if ($ris3 == "admin")... 
    www.bitmade.com Momentan ist richtig_Momentan ist gut_Nicht ist wirklich wichtig_Nach der Ebbe kommt die Flut_ _Am Strand des Lebens_ohne Grund,ohne Verstand_ist nichts vergebens_ich baue di traeume auf den Sand.

  4. #4

    Grazie mille

    Grazie mille ragazzi!!!
    Ora sono in ufficio, ma appena rientro a casa provo le modifiche...

  5. #5

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.