Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    343

    Area riservata a più livelli

    Ciao a tutti,
    mi servirebbe una piccola mano per questa area admin che sto facendo ....

    O meglio mi servirebbe capire come poter dare i livelli agli utenti:

    es admin è amministratore e ha delle pagine che può' vedere solo lui

    searedone è un utente normale e può' vedere solo le pagine dell'utente ...

    vi posto il codice

    db

    Codice PHP:
    CREATE TABLE IF NOT EXISTS `users` ( 
      `
    idint(10NOT NULL AUTO_INCREMENT
      `
    usernamevarchar(50NOT NULL
      `
    passwordvarchar(50NOT NULL
      `
    nomevarchar(200NOT NULL
      `
    cognomevarchar(200NOT NULL
      `
    telefonovarchar(50NOT NULL
      `
    emailvarchar(100NOT NULL
      `
    web_sitevarchar(200NOT NULL
      `
    regionevarchar(50NOT NULL
      `
    provinciavarchar(50NOT NULL
      `
    comunevarchar(50NOT NULL
      `
    capvarchar(50NOT NULL
      `
    tstimestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
      `
    levelenum('1','2'NOT NULL DEFAULT '1'
      
    PRIMARY KEY (`id`) 
    ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=

    -- 
    -- 
    Dump dei dati per la tabella `users
    -- 

    INSERT INTO `users` (`id`, `username`, `password`, `nome`, `cognome`, `telefono`, `email`, `web_site`, `regione`, `provincia`, `comune`, `cap`, `ts`, `level`) VALUES 
    (1'searedone''pippalippa''''''''''''''''''''0000-00-00 00:00:00''1'), 
    (
    2'pippo''pippo''pippo''pippo''''''''''''''''2011-12-08 09:49:26''1'), 
    (
    4'admin''admin''a''a''774747477''admin@admin.it''www.admin.it''lombardia''milano''milano''20100''2011-12-08 11:42:27''2'); 
    mypage.php

    Codice PHP:
    <?php 
    //connessione al database 
    include 'db_connect.php'
    $result=$_SESSION['user_id']; 

    //inizio sessione per l'utente che ha effettuato il login 
    session_start(); 
    if(isset(
    $_SESSION['username'])&& isset($_SESSION['password'])) 


    echo 
    "Benvenuto " $_SESSION['username'];  

    }else{ 
    header("Location: form.php"); 



    ?> 
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"  
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
    <html xmlns="http://www.w3.org/1999/xhtml"> 
    <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> 
    <head> 
    <title>prova</title> 
    <link rel="stylesheet" href="stile.css" type="text/css"> 
    <link rel="shortcut" href="http://localhost/favicon.ico"> 
    </head> 
    <body> 
    <div id="contenitore"> 
    // mi piacerebbe avere la possibilità di avere da qui in poi la possibilità di far vedere la pagina solo al livello 2 e non al livello 1

     

     

     
      <?php 
    include 'db_connect.php'

    $query = @mysql_query(  

        
    'SELECT *  
        FROM users  WHERE id='
    .$_SESSION['user_id'].'');  
    if (!
    $query) {  
      exit(
    '

    Error performing query: ' 
    mysql_error() . '</p>');  
    }  

    while (
    $row mysql_fetch_array($query)) {  

      
    $id $row['id']; 
      
    $nome $row['nome']; 
      
    $cognome $row['cognome']; 
      
    $telefono $row['telefono']; 
      
    $email $row['email']; 
      
    $web_site $row['web_site']; 
         
    $regione $row['regione']; 
          
    $provincia $row['provincia']; 
          
    $comune $row['comune']; 
          
    $cap $row['cap']; 
          
    $ts $row['ts']; 

        
      
    // Display the joke with author information  
         
    echo "cod cliente:  $id
    "

        echo 
    "Nome:  $nome
    "

          echo 
    "Cognome:  $cognome
    "

           echo 
    "Telefono:  $telefono
    "

            echo 
    "Email:  [email='$email']$email[/email]
    "

             echo 
    "Website:  <a href=http://$web_site>$web_site</a>
    "

              echo 
    "Regione:  $regione
    "

               echo 
    "Provincia:  $provincia
    "

                echo 
    "Comune:  $comune
    "

                 echo 
    "Cap:  $cap
    "

            
            echo 
    "Data di registrazione:$ts
    "

       
    }   






    ?> 

    <?php echo $_SESSION['user_id'];?> 
    <?php echo $_SESSION['username'];?> 

      [url="logout.php"]Logout [/url] 
       

     es // io vorrei che questa parte la veda solo admin e non tutti ???? come devo impostarla la cosa ???  
       [url="admin.php"]admin [/url]

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    636
    salva nelle variabili di sessione anche il livello e te ne esci con un if.

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    343
    Fosse così semplice avrei risolto

    scusa ma non sono bravissimo, non potresti farmi un esempio ???
    nel caso grazie mille

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    636
    come salvi $_SESSION['username']?

    immagino che fai fare il login con qualche form e quindi controlli sul database se esiste un utente con le credenziali immesse, quindi salvi nelle variabili di sessione username e password.

    Visto che per ogni utente hai anche il campo 'level', salva nella variabile di sessione $_SESSION['level'] il valore del livello.

    supponendo che gli amministratori abbiano livello = 2

    fai:

    Codice PHP:

    <?php if($_SESSION['level'] > 1): ?>
       [url="admin.php"]admin [/url] 
    <?php endif; ?>
    Tutta la parte che sta tra l'if e l'endif è visibile solo agli utenti a partire dal livello 2, se hai fatto il meccanismo di login non vedo la difficoltà.

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    343
    le vie del signore sono infinite ... a volte mi perdo in un bicchier d'acqua

    infatti ho aggiunto questo come mi hai detto, ma sia che mi logo come admin level 2
    sia che mi logo con searedone level 1

    non vedo la parte tra l'ifa e endif


    Codice PHP:

    <?php
    //connessione al database
    include 'db_connect.php';
    $result=$_SESSION['user_id'];

    //inizio sessione per l'utente che ha effettuato il login
    session_start();
    if(isset(
    $_SESSION['username'])&& isset($_SESSION['password']))
    {

    echo 
    "Benvenuto " $_SESSION['username']; 

    }else{
    header("Location: login.php");

    }

    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
    <head>
    <title>prova</title>
    <link rel="stylesheet" href="stile.css" type="text/css">
    <link rel="shortcut" href="http://localhost/favicon.ico">
    </head>
    <body>
    <div id="contenitore">







      <?php
    include 'db_connect.php';

    $query = @mysql_query

        
    'SELECT * 
        FROM users  WHERE id='
    .$_SESSION['user_id'].''); 
    if (!
    $query) { 
      exit(
    '

    Error performing query: ' 
    mysql_error() . '</p>'); 


    while (
    $row mysql_fetch_array($query)) { 

      
    $id $row['id'];
      
    $nome $row['nome'];
      
    $cognome $row['cognome'];
      
    $telefono $row['telefono'];
      
    $email $row['email'];
      
    $web_site $row['web_site'];
         
    $regione $row['regione'];
          
    $provincia $row['provincia'];
          
    $comune $row['comune'];
          
    $cap $row['cap'];
          
    $ts $row['ts'];

       
      
    // Display the joke with author information 
         
    echo "cod cliente:  $id
    "
    ;
        echo 
    "Nome:  $nome
    "
    ;
          echo 
    "Cognome:  $cognome
    "
    ;
           echo 
    "Telefono:  $telefono
    "
    ;
            echo 
    "Email:  [email='$email']$email[/email]
    "
    ;
             echo 
    "Website:  <a href=http://$web_site>$web_site</a>
    "
    ;
              echo 
    "Regione:  $regione
    "
    ;
               echo 
    "Provincia:  $provincia
    "
    ;
                echo 
    "Comune:  $comune
    "
    ;
                 echo 
    "Cap:  $cap
    "
    ;
           
            echo 
    "Data di registrazione:$ts
    "
    ;
      
    }  






    ?>

    <?php echo $_SESSION['user_id'];?>

    <?php echo $_SESSION['username'];?>


      [url="logout.php"]Logout [/url]
     
     
    <?php if($_SESSION['level'] > 1): ?> 
       [url="admin.php"]admin [/url]  
    <?php endif; ?>

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    636
    hai verificato che $_SESSION['level'] valga effettivamente 2 numerico e non '2' (carattere 2)?

    Per essere sicuro quando assegni level alla variabile di sessione fallo tramite la funzione intval.

    cioè

    $_SESSION['level'] = intval($level);

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    343
    nada cosí pagina bianca

    ti posto sia la pagina del login

    e mypage magari puoi aiutarmi meglio


    login.php

    Codice PHP:
    <?php 
    //connessione al databese
    include 'db_connect.php';

    //parte la sessione
    session_start ();

    //controllo dei dati inviati 
    if ((!isset($_POST['username'])) && (!isset($_POST['password']))) 

    $result=$_SESSION['user_id'];

    // form per il login
    echo "<form method=\"post\" action=\"".$_SERVER['PHP_SELF']."\"> 
    Username: <input type=\"text\" name=\"username\" class=\"inputloginform\">
     
    Password:  <input type=\"password\" name=\"password\" class=\"inputloginform\">
     
    <input type=\"submit\" value=\"Invia\">Fai il login - Oppure registrati [url='registrati.php']Registrati[/url]</form>"

    }else{ 

    // query tabella utenti
    $sql mysql_query("SELECT * FROM users WHERE username='".$_POST['username']."' AND password=('".$_POST['password']."')");
    if (
    mysql_num_rows($sql)>0)
    {
    while (
    $prova mysql_fetch_array($sql)) {
    $num$prova[0];
    $_SESSION['username']=$_POST['username']; 
    $_SESSION['password']=$_POST['password']; 
    $_SESSION['user_id']=$prova[0];

    header("Location: mypage.php?id=$prova[0]");
    }
    }else{
    echo 
    "Login errato 

     [url='login.php']Ritorna alla pagina login[/url]

    [url='registrati.php']Registrati[/url]"
    ;

    }
    ?>
    <html>
    <head>
    <link href="loginform.css" rel="stylesheet" type="text/css" />
    </head>
    <body>
    </body>
    </html>
    mypage.php

    Codice PHP:
    <?php
    //connessione al database
    include 'db_connect.php';
    $result=$_SESSION['user_id'];


    //inizio sessione per l'utente che ha effettuato il login
    session_start();
    if(isset(
    $_SESSION['username'])&& isset($_SESSION['password']))
    {

    echo 
    "Benvenuto " $_SESSION['username']; 

    }else{
    header("Location: login.php");

    }

    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
    <head>
    <title>prova</title>
    <link rel="stylesheet" href="stile.css" type="text/css">
    <link rel="shortcut" href="http://localhost/favicon.ico">
    </head>
    <body>
    <div id="contenitore">







      <?php
    include 'db_connect.php';

    $query = @mysql_query

        
    'SELECT * 
        FROM users  WHERE id='
    .$_SESSION['user_id'].''); 
    if (!
    $query) { 
      exit(
    '

    Error performing query: ' 
    mysql_error() . '</p>'); 


    while (
    $row mysql_fetch_array($query)) { 

      
    $id $row['id'];
      
    $nome $row['nome'];
      
    $cognome $row['cognome'];
      
    $telefono $row['telefono'];
      
    $email $row['email'];
      
    $web_site $row['web_site'];
         
    $regione $row['regione'];
          
    $provincia $row['provincia'];
          
    $comune $row['comune'];
          
    $cap $row['cap'];
          
    $ts $row['ts'];

       
      
    // Display the joke with author information 
         
    echo "cod cliente:  $id
    "
    ;
        echo 
    "Nome:  $nome
    "
    ;
          echo 
    "Cognome:  $cognome
    "
    ;
           echo 
    "Telefono:  $telefono
    "
    ;
            echo 
    "Email:  [email='$email']$email[/email]
    "
    ;
             echo 
    "Website:  <a href=http://$web_site>$web_site</a>
    "
    ;
              echo 
    "Regione:  $regione
    "
    ;
               echo 
    "Provincia:  $provincia
    "
    ;
                echo 
    "Comune:  $comune
    "
    ;
                 echo 
    "Cap:  $cap
    "
    ;
           
            echo 
    "Data di registrazione:$ts
    "
    ;
      
    }  






    ?>

    <?php echo $_SESSION['user_id'];?>

    <?php echo $_SESSION['username'];?>


      [url="logout.php"]Logout [/url]
     
     
    <?php if($_SESSION['level']= intval($level); ?> 
       [url="admin.php"]admin [/url]  
    <?php endif; ?>

  8. #8
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    636
    Allora nella pagina login.php cambia il while inizializzando la variabile di sessione per level, se non vado errato usando mysql_fetch_array ad ogni ciclo ottieni un array con tanti elementi quanti sono gli elementi presi nella select. Visto che tu usi 'select *' prendi tutti i campi della tabella user, se id è 0, username è 1, password è 2 ... level dovrebbe essere 13

    Codice PHP:

    while ($prova mysql_fetch_array($sql)) { 
        
    $num$prova[0]; 
        
    $_SESSION['username']=$_POST['username'];  
        
    $_SESSION['password']=$_POST['password'];  
        
    $_SESSION['user_id']=$prova[0]; 
        
    $_SESSION['level'] = intval($prova[13])
        
    header("Location: mypage.php?id=$prova[0]"); 


    in mypage.php

    Codice PHP:

    <?php if($_SESSION['level'] > 1): ?>  
       [url="admin.php"]admin [/url]   
    <?php endif; ?>
    Per quante possano essere le vie del signore, spera in qualche miracolo perchè a te mancano le basi.

  9. #9
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    343
    MIracoloooooooooooooooo



    while ($prova = mysql_fetch_array($sql)) {
    $num= $prova[0];
    $_SESSION['username']=$_POST['username'];
    $_SESSION['password']=$_POST['password'];
    $_SESSION['user_id']=$prova[0];
    $_SESSION['level'] = intval($prova[13])
    header("Location: mypage.php?id=$prova[0]");
    }
    Pero' così non poteva funzionare se non si mette ; dopo $_SESSION['level'] = intval($prova[13]) //proprio qui

    Cmq grazie mille ora ho capito cosa intendevi per passare la sessione .....

    Non mi mancano le basi è che posso giocare al php solo qualche ora alla settimana quando mi va bene, è tutto quello che so ( e non è molto )lo so da libri ma mi sono promesso di fare un buon corso e se riesco anche durante le vacanze di natale così ho più tempo ...

    Cmq grazie mille

  10. #10
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    636
    ti ho detto che ti mancano le basi, perchè il codice mi sa di copiato da qualche parte e quando ti dicevo di fare delle correzioni sembravi copiarle senza ragionarci nemmeno un attimo. In ogni caso se sei alle prime armi anzichè fare tante cose complicate assieme penso sia meglio partire dalle basi e piano piano mettere tutto assieme. Va da se che il tempo che manca è sempre l'ostacolo maggiore.
    Buono studio e buon natale allora

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.