Reindirizzare utente nell'area in base alla tipologia.

searedone

Utente Attivo
11 Giu 2010
508
0
0
Buongiorno a tutti,
mi spiego meglio:

Ho già un'area riservata che funziona benissimo e grazie al Vostro aiuto ho la possibilità di far vedere in base ai livelli le varie cose nell'area registrata.

Ora mi piacerebbe che se l'utente a ha una classe 1 veda solo le sue cose e di conseguenza venga reindirizzato alla sua area riservata, l'utente b che ha classe 2 veda solo le sue cose e di conseguenza venga reindirizzato alla sua area riservata, e che l'utente 3 admin veda tutto e in più le sue pagine riservate.

Vi posto un po' di codice e spero che possiate aiutarmi.

I livelli li ho messi nella tabella users con un campo enum

`level` enum('1','2') NOT NULL default '1', // ovviamente qui ci sarebbe da aggiungere il campo 3 :)

Login.php

PHP:
<?php
//parte la sessione
session_start ();

//connessione al databese
include 'db_connect.php';

//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=\"inputlogin\"><br> 
Password:  <input type=\"password\" name=\"password\" class=\"inputlogin\"><br> 
<input type=\"submit\" value=\"Invia\">Fai il login - Oppure registrati <a href='registrati.php'/>Registrati</a></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];  
    $_SESSION['level'] = $prova[14]; 
    
    header("Location: mypage.php?id=$prova[0]");  
}
}else{
echo "<h3><img src=\"immagini/non_sei.jpg\" width=\"270\" height=\"55\"><br /><br />Login errato <br /><br /> <a href='login_correct.php' />Ritorna alla pagina login</a><br /><br /><a href='registrati.php'/>Registrati</a></h3>";
} 
}
?>

admin.php

PHP:
<?php

session_start();

//connessione al database

include 'db_connect.php';

$result=$_SESSION['user_id'];
$result=$_SESSION['level'];


//inizio sessione per l'utente che ha effettuato il login

if(isset($_SESSION['username'])&& isset($_SESSION['password']))
{
 $_SESSION['username']; 

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

}

?>


 <?php echo "Benvenuto  "   . $_SESSION['username'];?><br /> 
  <?php echo "Cod Cliente  "   . $_SESSION['user_id'];?><br />
  <?php echo "Tipo cliente  "   . $_SESSION['level'];?><br />


<br />
 <?php 
 

 $query = @mysql_query("SELECT * FROM users WHERE id=".$_SESSION['user_id']." LIMIT 1");
 
   
   while ($ris = mysql_fetch_array($query)) {  
   
$user_id = $ris['id'];
$nome_file_vero= $ris['nome_file_vero'];

 echo "<img src='immagini1.php?id=$user_id' name='nome_file_vero' width='150' height='40'/>" ;
 
 } 
 ?>

<br />
<br />
    <a href="logout.php"><button class="button orangeButt">Logout</button></a> 
//da qui vedono solo i livelli due

<?php if($_SESSION['level'] == '2'): ?>  
 
  <a href="admin.php"><button class="button orangeButt">Amministra <br />Admin</button></a> 
  <a href="mypage.php"><button class="button orangeButt">Torna a <br />my page</button></a>

<?php endif; ?>
 

Eliox

Utente Attivo
25 Feb 2005
4.390
3
0
Se i livelli sono più di due puoi usare il tipo di dato SET.
 

searedone

Utente Attivo
11 Giu 2010
508
0
0
Ciao e grazie mille per la risposta ...

In che senso il modo SET ??

Non so se mi sono spiegato bene io vorrei che quando mi logo ( es il privato avrà' un admin da privato ) mentre il professionista verra reinderizzato nell'admin da professionista... non so se devo fare due admin :(
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao,

potresti mettere in mypage.php un collegamento all'admin in base al level dell'utente

PHP:
switch ($_SESSION['level']) {
    case 1:
        $link_admin = "pagina_admin_1.php";
        break;
     case 2:
        $link_admin = "pagina_admin_2.php";
        break;
     case 3:
        $link_admin = "pagina_admin_3.php";
        break;
    default:
        // vuol dire che non è settata la sessione puoi tornare al login
        break;
}
echo "<a href='$link_admin'>Pannello di amministrazione</a>";

due consideraizoni:

in login.php hai
PHP:
$num = $prova[0];
che poi non usi

e
PHP:
$result = $_SESSION['user_id'];
che non usi e cmq quando non hai ancora valorizzato la sessione

una domanda

in admin.php hai

PHP:
echo "<img src='immagini1.php?id=$user_id' name='nome_file_vero' width='150' height='40'/>";

cosa manda in output?
 

searedone

Utente Attivo
11 Giu 2010
508
0
0
in admin.php hai

Codice PHP:
echo "<img src='immagini1.php?id=$user_id' name='nome_file_vero' width='150' height='40'/>";

Il logo personalizzato del cliente o dell'admin

Appena posso provo quello che mi ai postato e ti so dire ..

grazie mille Criric
 

searedone

Utente Attivo
11 Giu 2010
508
0
0
Non ho resistito e ho provato subito....

Ma se metto diversamente mi da errore .. così non me lo da' ma non funziona...

PHP:
require 'db_connect.php';
if ((!isset($_POST['username'])) && (!isset($_POST['password']))) 
{ 



// form per il login
echo "<form method=\"post\" action=\"login.php\"> 
Username: <input type=\"text\" name=\"username\" class=\"inputlogin\"><br> 
Password:  <input type=\"password\" name=\"password\" class=\"inputlogin\"><br> 


 <button class=\"button orangeButt\"><br />Accedi<br /><br /></button>
</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];  
    $_SESSION['level'] = $prova[14]; 
   
    
        
    header("Location: mypage.php?id=$prova[0]"); 
   
} 

switch ($_SESSION['level']) { 
    case 1: 
        $link_admin = "mypage.php"; 
        break; 
     case 2: 
        $link_admin = "mypage2.php"; 
        break; 
     case 3: 
        $link_admin = "pagina_admin_3.php"; 
        break; 
    default: 
        // vuol dire che non è settata la sessione puoi tornare al login 
        break; 
} 
echo "<a href='$link_admin'>Pannello di amministrazione</a>";  
}else{
echo "Login errato <br /><br /> <a href='login_correct.php' />Ritorna alla pagina login</a><br /><br /><a href='registrati.php'/>Registrati</a>";
} 
}

Cosi mi da errore dello script ---

PHP:
require 'db_connect.php'; 
if ((!isset($_POST['username'])) && (!isset($_POST['password'])))  
{  



// form per il login 
echo "<form method=\"post\" action=\"login.php\">  
Username: <input type=\"text\" name=\"username\" class=\"inputlogin\"><br>  
Password:  <input type=\"password\" name=\"password\" class=\"inputlogin\"><br>  


 <button class=\"button orangeButt\"><br />Accedi<br /><br /></button> 
</form>";  
}else{  

// query tabella utenti 
$sql = mysql_query("SELECT * FROM users WHERE username='".$_POST['username']."'  AND password=('".$_POST['password']."')"); 



switch ($_SESSION['level']) {  
    case 1:  
        $link_admin = "mypage.php";  
        break;  
     case 2:  
        $link_admin = "mypage2.php";  
        break;  
     case 3:  
        $link_admin = "pagina_admin_3.php";  
        break;  
    default:  
        // vuol dire che non è settata la sessione puoi tornare al login  
        break;  
}  
echo "<a href='$link_admin'>Pannello di amministrazione</a>";   
}else{ 
echo "Login errato <br /><br /> <a href='login_correct.php' />Ritorna alla pagina login</a><br /><br /><a href='registrati.php'/>Registrati</a>"; 
}  
}
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Per reindirizzare direttamente con header la sintassi piu o meno è questa;

PHP:
<?php
require 'db_connect.php';
if ((!isset($_POST['username'])) && (!isset($_POST['password']))) {



// form per il login
    echo "<form method=\"post\" action=\"login.php\"> 
    Username: <input type=\"text\" name=\"username\" class=\"inputlogin\"><br> 
    Password:  <input type=\"password\" name=\"password\" class=\"inputlogin\"><br> 


    <button class=\"button orangeButt\"><br />Accedi<br /><br /></button>
</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];
            $_SESSION['level'] = $prova[14];
        }

        switch ($_SESSION['level']) {
            case 1:
                header("Location: mypage.php");
                break;
            case 2:
                header("Location: mypage2.php");
                break;
            case 3:
                header("Location: mypage3.php");
                break;
            default:
// vuol dire che non è settata la sessione puoi tornare al login 
                header("Location: Login.php");
                break;
        }
    } else {
        echo "Login errato <br /><br /> <a href='login_correct.php' />Ritorna alla pagina login</a><br /><br /><a href='registrati.php'/>Registrati</a>";
    }
}
?>
 

searedone

Utente Attivo
11 Giu 2010
508
0
0
Ciao,
ho provato così e non mi da più errore...

ma mi da sia che sia livello 1 0 2 mi rimanda sempre a mypage.php?id= non mi rimanda alle varie pagine in base al livello :(

ti posto tutto il codice

PHP:
<?php
//parte la sessione
session_start ();
?>



<?php 
require 'db_connect.php'; 
if ((!isset($_POST['username'])) && (!isset($_POST['password']))) { 



// form per il login 
    echo "<form method=\"post\" action=\"login.php\">  
    Username: <input type=\"text\" name=\"username\" class=\"inputlogin\"><br>  
    Password:  <input type=\"password\" name=\"password\" class=\"inputlogin\"><br>  


    <button class=\"button orangeButt\"><br />Accedi<br /><br /></button> 
</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]; 
            $_SESSION['level'] = $prova[14]; 
        } 

        switch ($_SESSION['level']) { 
            case 1: 
                header("Location: mypage.php"); 
                break; 
            case 2: 
                header("Location: mypage2.php"); 
                break; 
            case 3: 
                header("Location: mypage3.php"); 
                break; 
            default: 
// vuol dire che non è settata la sessione puoi tornare al login  
                header("Location: Login.php"); 
                break; 
        } 
    } else { 
        echo "Login errato <br /><br /> <a href='login_correct.php' />Ritorna alla pagina login</a><br /><br /><a href='registrati.php'/>Registrati</a>"; 
    } 
} 
?>

Questa è la tabella users

PHP:
CREATE TABLE IF NOT EXISTS `users` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `username` varchar(50) NOT NULL,
  `password` varchar(50) NOT NULL,
  `nome` varchar(200) NOT NULL,
  `cognome` varchar(200) NOT NULL,
  `telefono` varchar(50) NOT NULL,
  `email` varchar(100) NOT NULL,
  `web_site` varchar(200) NOT NULL,
  `regiones` varchar(50) NOT NULL,
  `provincia` varchar(50) NOT NULL,
  `comune` varchar(50) NOT NULL,
  `cap` varchar(50) NOT NULL,
  `via` varchar(50) NOT NULL,
  `stato` varchar(50) NOT NULL,
  `ts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `level` enum('1','2') NOT NULL DEFAULT '1',
  `societa` varchar(50) NOT NULL,
  `p_iva` varchar(100) NOT NULL,
  `note` varchar(500) NOT NULL,
  `nome_file_vero` varchar(255) NOT NULL,
  `tipo_file` varchar(255) NOT NULL,
  `dati_file` longblob NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=9 ;

--
 
Ultima modifica:

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao,
il quattordicesimo elemento della tua tabella non è "level" ma "ts"

quindi o scrivi

PHP:
$_SESSION['level'] = $prova[15];

oppure usi mysql_fetch_assoc e scriv cosi:

PHP:
<?php

//parte la sessione
session_start();
require 'db_connect.php';
if ((!isset($_POST['username'])) && (!isset($_POST['password']))) {



// form per il login 
    echo "<form method=\"post\" action=\"login.php\">  
    Username: <input type=\"text\" name=\"username\" class=\"inputlogin\"><br>  
    Password:  <input type=\"password\" name=\"password\" class=\"inputlogin\"><br>  


    <button class=\"button orangeButt\"><br />Accedi<br /><br /></button> 
</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_assoc($sql)) {           
            $_SESSION['username'] = $prova['username'];
            $_SESSION['password'] = $prova['password'];
            $_SESSION['user_id'] = $prova['id'];
            $_SESSION['level'] = $prova['level'];
        }

        switch ($_SESSION['level']) {
            case 1:
                header("Location: mypage.php");
                break;
            case 2:
                header("Location: mypage2.php");
                break;
            case 3:
                header("Location: mypage3.php");
                break;
            default:
// vuol dire che non è settata la sessione puoi tornare al login  
                header("Location: Login.php");
                break;
        }
    } else {
        echo "Login errato <br /><br /> <a href='login_correct.php' />Ritorna alla pagina login</a><br /><br /><a href='registrati.php'/>Registrati</a>";
    }
}
?>

PS : metti var_dump($_SESSION) nella pagina di destinazione se ancora non ti funziona
 
Ultima modifica:

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Mi sono permesso di riordinare un attimo il tuo codice, ho commentato le modifiche
PHP:
<?php

//parte la sessione
session_start();
require 'db_connect.php';
if ((!isset($_POST['username'])) && (!isset($_POST['password']))) {

// form per il login 
    // se apri l'echo con i doppi apici all'interno puoi usare i singoli
   // il tag input necessita della chiusura con / il tag form con </form>
    echo "<form method='post' action='" . $_SERVER['PHP_SELF'] . "'>  
            Username: <input type='text' name='username' class='inputlogin'/><br/>  
            Password: <input type='password' name='password' class='inputlogin'/><br/>  
            <button class='button orangeButt'><br/>Accedi<br/><br/></button> 
          </form>";
} else {
// facciamo un giro di controllo sui tutti dati inviati via POST
    foreach ($_POST as $key => $value) {
        // ho messo semplicemente addslashes ma si posso aumentare i controlli con altre funzioni di php o mysql
        $_POST[$key] = addslashes($value);
    }
// query tabella utenti // separando la query secondo me rendiamo il codice piu elegante e leggibile
    $query = "SELECT * FROM users 
                       WHERE username='" . $_POST['username'] . "'  AND 
                             password='" . $_POST['password'] . "'";
    //controlliamo che la query non vada in errore
    if ($sql = mysql_query($query)) {

        // non serve il while poichè la query deve restituire un solo record
        if (mysql_num_rows($sql) == 1) {
            $prova = mysql_fetch_assoc($sql);
            $_SESSION['username'] = $prova['username'];
            $_SESSION['password'] = $prova['password'];
            $_SESSION['user_id'] = $prova['id'];
            $_SESSION['level'] = $prova['level'];

            switch ($_SESSION['level']) {
                case 1:
                    header("Location: mypage.php");
                    break;
                case 2:
                    header("Location: mypage2.php");
                    break;
                case 3:
                    header("Location: mypage3.php");
                    break;
                default:
                    // ripuliamo le sessioni non serve a molto a dir la verita ma non si sa mai
                    unset($_SESSION);
                    header("Location: Login.php");
                    break;
            }
        } else {
            // lo slash nel tag <a href='#'/> non va la chiusura si scrive cosi </a>
            echo "<br/>Login errato<br/><br/> 
                    <a href='login.php'>Ritorna alla pagina login</a>
                    <br/><br/><a href='registrati.php'>Registrati</a>";
        }
    } else {
        // la query potrebbe andare in errore in caso di sqlinjection da parte di malintenzionati
        // sarebbe utile in questi casi registrare ip data e qualsiasi informazione possa servire un domani
        echo "<br/>Autenticazione fallita, se il problema persiste contattare il webmaster<br/><br/> 
                    <a href='login.php'>Ritorna alla pagina login</a>
                    <br/><br/><a href='registrati.php'>Registrati</a>";
    }
}
?>

Non l'ho testato, spero non contenga errori
 
Ultima modifica:

searedone

Utente Attivo
11 Giu 2010
508
0
0
Ciao,
per evitare ho fatto così:

PHP:
<?php 
require 'db_connect.php'; 
if ((!isset($_POST['username'])) && (!isset($_POST['password']))) { 



// form per il login 
    echo "<form method=\"post\" action=\"login.php\">  
    Username: <input type=\"text\" name=\"username\" class=\"inputlogin\"><br>  
    Password:  <input type=\"password\" name=\"password\" class=\"inputlogin\"><br>  


    <button class=\"button orangeButt\"><br />Accedi<br /><br /></button> 
</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)) {   // come vedi non ho più il numero ma ho il campo, ma non mi porta nelle varie pagine e qualsiasi sia il livello va' sempre a mypage ?
    
    $_SESSION['username']=$_POST['username'];   
    $_SESSION['password']=$_POST['password'];   
    $_SESSION['user_id']=$prova['id'];  
    $_SESSION['level'] = $prova['level'];  
        } 

        switch ($_SESSION['level']) { 
            case 1: 
                header("Location: mypage.php"); 
                break; 
            case 2: 
                header("Location: mypage2.php"); 
                break; 
            case 3: 
                header("Location: mypage3.php"); 
                break; 
            default: 
// vuol dire che non è settata la sessione puoi tornare al login  
                header("Location: Login.php"); 
                break; 
        } 
    } else { 
        echo "Login errato <br /><br /> <a href='login_correct.php' />Ritorna alla pagina login</a><br /><br /><a href='registrati.php'/>Registrati</a>"; 
    } 
} 
?>

Il vardump l'ho messo qui e così ma mi da errore ( forse ho sbagliato ?)

PHP:
<?php

session_start();
var_dump($_SESSION)
//connessione al database

include 'db_connect.php';
 

searedone

Utente Attivo
11 Giu 2010
508
0
0
Ciao,
scusa questo non l'avevo visto lo vedo solo ora dopo la mia risposta...

Ho visto che hai messo il form nella stessa pagine e ok , ma se nell'action metti alluz.php che poi potrebbe essere mypage ecc ecc di default mi reindirizza a mypage senza mandarmi a mypage1 2 3 come da switch sotto :(


<?php

//parte la sessione
session_start();
require 'db_connect.php';
if ((!isset($_POST['username'])) && (!isset($_POST['password']))) {

// form per il login
// se apri l'echo con i doppi apici all'interno puoi usare i singoli
// il tag input necessita della chiusura con / il tag form con </form>
echo "<form method='post' action='alluz.php'>
Username: <input type='text' name='username' class='inputlogin'/><br/>
Password: <input type='password' name='password' class='inputlogin'/><br/>
<button class='button orangeButt'><br/>Accedi<br/><br/></button>
</form>";
} else {
// facciamo un giro di controllo sui tutti dati inviati via POST
foreach ($_POST as $key => $value) {
// ho messo semplicemente addslashes ma si posso aumentare i controlli con altre funzioni di php o mysql
$_POST[$key] = addslashes($value);
}
// query tabella utenti // separando la query secondo me rendiamo il codice piu elegante e leggibile
$query = "SELECT * FROM users
WHERE username='" . $_POST['username'] . "' AND
password='" . $_POST['password'] . "'";
//controlliamo che la query non vada in errore
if ($sql = mysql_query($query)) {

// non serve il while poichè la query deve restituire un solo record
if (mysql_num_rows($sql) == 1) {
$prova = mysql_fetch_assoc($sql);
$_SESSION['username'] = $prova['username'];
$_SESSION['password'] = $prova['password'];
$_SESSION['user_id'] = $prova['id'];
$_SESSION['level'] = $prova['level'];

switch ($_SESSION['level']) {
case 1:
header("Location: mypage.php");
break;
case 2:
header("Location: mypage2.php");
break;
case 3:
header("Location: mypage3.php");
break;
default:
// ripuliamo le sessioni non serve a molto a dir la verita ma non si sa mai
unset($_SESSION);
header("Location: Login.php");
break;
}
} else {
// lo slash nel tag <a href='#'/> non va la chiusura si scrive cosi </a>
echo "<br/>Login errato<br/><br/>
<a href='alluz.php'>Ritorna alla pagina login</a>
<br/><br/><a href='registrati.php'>Registrati</a>";
}
} else {
// la query potrebbe andare in errore in caso di sqlinjection da parte di malintenzionati
// sarebbe utile in questi casi registrare ip data e qualsiasi informazione possa servire un domani
echo "<br/>Autenticazione fallita, se il problema persiste contattare il webmaster<br/><br/>
<a href='alluz.php'>Ritorna alla pagina login</a>
<br/><br/><a href='registrati.php'>Registrati</a>";
}
}
?>
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Si, alluz.php è la mia pagina di prova ma tu devi richiamare la tua

o puoi anche mettere $_SERVER['PHP_SELF'] che richiama la stessa pagina

PHP:
echo "<form method='post' action='" . $_SERVER['PHP_SELF'] . "'>
Username: <input type='text' name='username' class='inputlogin'/><br/>
Password: <input type='password' name='password' class='inputlogin'/><br/>
<button class='button orangeButt'><br/>Accedi<br/><br/></button>
</form>";

io avevo scritto mysql_fetch_assoc

prova a mettere il var_dump qui e blocca lo script che vediamo cosa c'è in sessione

PHP:
$_SESSION['username']=$prova['username'];   
    $_SESSION['password']=$prova['password'];   
    $_SESSION['user_id']=$prova['id'];  
    $_SESSION['level'] = $prova['level'];  
        } 
// metti qui il var_dump
var_dump($_SESSION);
// blocca l'esecuzione dello script
die();
        switch ($_SESSION['level']) { 
            case 1: 
                header("Location: mypage.php"); 
                break; 
            case 2: 
                header("Location: mypage2.php"); 
                break; 
            case 3: 
                header("Location: mypage3.php"); 
                break; 
            default: 
// vuol dire che non è settata la sessione puoi tornare al login  
                header("Location: Login.php"); 
                break;
 

searedone

Utente Attivo
11 Giu 2010
508
0
0
Ciao Criric,
scusa se non ti ho scritto prima ma ho risolto con lo script di prima

PHP:
<?php  
require 'db_connect.php';  
if ((!isset($_POST['username'])) && (!isset($_POST['password']))) {  



// form per il login  
    echo "<form method=\"post\" action=\"login.php\">   
    Username: <input type=\"text\" name=\"username\" class=\"inputlogin\"><br>   
    Password:  <input type=\"password\" name=\"password\" class=\"inputlogin\"><br>   


    <button class=\"button orangeButt\"><br />Accedi<br /><br /></button>  
</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)) {   // come vedi non ho più il numero ma ho il campo, ma non mi porta nelle varie pagine e qualsiasi sia il livello va' sempre a mypage ? 
     
    $_SESSION['username']=$_POST['username'];    
    $_SESSION['password']=$_POST['password'];    
    $_SESSION['user_id']=$prova['id'];   
    $_SESSION['level'] = $prova['level'];   
        }  

        switch ($_SESSION['level']) {  
            case 1:  
                header("Location: mypage.php");  
                break;  
            case 2:  
                header("Location: mypage2.php");  
                break;  
            case 3:  
                header("Location: mypage3.php");  
                break;  
            default:  
// vuol dire che non è settata la sessione puoi tornare al login   
                header("Location: Login.php");  
                break;  
        }  
    } else {  
        echo "Login errato <br /><br /> <a href='login_correct.php' />Ritorna alla pagina login</a><br /><br /><a href='registrati.php'/>Registrati</a>";  
    }  
}  
?>

Cambiando per comodità come avevi fatto anche tu nella pagina 2 dei post che non avevo visto $_SESSION['level'] = $prova['level']; al posto di $_SESSION['level'] = $prova[14]; ( scusa l'avevo sviluppato tempo fa' ) inizialmente non andava :( poi adesso prova e riprova ho capito il perché e ho risolto.

Io ho una pagina login_correct.php

dove passo le stesse cose di login ( solo per comodità e per bellezza estetica ne ho dovute creare due perché se no messa come voglio io mi da' errore ) mi sono dimenticato di modificare anche il file login.php ovviamente appena cambiato lo script con il tuo switch anche li tutto funziona correttamente.

Grazie mille sei stato davvero gentilissimo :)
 
Discussioni simili
Autore Titolo Forum Risposte Data
Cosina Reindirizzare a nuova pagina dopo echo copy PHP 4
F [PHP] Reindirizzare utenti alla propria area personale PHP 1
maxnegri Eliminare url index.php con variabili e reindirizzare alla home del sito PHP 7
E [IIS] Reindirizzare richieste esterna http su https Web Server 0
R codice per reindirizzare HTML e CSS 7
L Correggere e reindirizzare url da Htaccess Apache 3
D problema come reindirizzare una pagina intro PHP 22
D Reindirizzare e chiudere pagina HTML e CSS 0
R riconoscere provenienza e reindirizzare ASP.NET 5
davide1982 Reindirizzare pagina php PHP 5
S reindirizzare posta Sicurezza e Virus 1
D reindirizzare email con outlook express Windows e Software 2
P reindirizzare una pagina PHP 1
A come reindirizzare in un frame HTML e CSS 3
Z reindirizzare in base a browser PHP 1
I nome utente non esiste nel database PHP 1
I carica foto profilo sessione utente PHP 2
I sessione utente elimina chat PHP 12
I invia inserisci nome utente invia messaggio PHP 0
I cartella privata utente PHP 4
I caricamento file in sottocartella nome utente PHP 3
felino [Wordpress] Gallery con foto selezionabili dall'utente WordPress 0
M Mostrare testo (o parte di esso) in base a utente PHP 0
G Bentrovati da un nuovo utente Presentati al Forum 1
C Rinominare file in base all'id dell'utente loggato PHP 0
E Gestione profilo utente tramite Form PHP 3
I visualizza profilo utente utente in chat PHP 0
F Nuovo utente Presentati al Forum 0
R Plugin per Registrazione Utente e Pagamento prodotto WordPress 2
A Dare l'accesso ad una pagina solo ad un utente specifico PHP 0
G Registrazione utente su pagina asp Classic ASP 14
M Lanciare alert se il codice fiscale è già presente nel db e lasciare la scelta di inserire all'utente PHP 42
W Nuovo utente Presentati al Forum 0
J Nuovo utente Presentati al Forum 1
G Nuovo utente Presentati al Forum 1
R Obbligare all'utente un pagamento al momento della registrazione PHP 3
F [PHP] Verifica utente presente nel DB PHP 13
A [PHP] Bloccare utente tramite indirizzo IP PHP 3
A [PHP] registrazione utente in un database sql con confronto PHP 1
R [WordPress] Calendario Personale per ogni Utente WordPress 0
R [PHP] Estrarre id utente loggato.? PHP 4
KOMODO_JOE [WordPress] Area privata per ogni utente su altervista WordPress 1
L Nuovo utente Presentati al Forum 0
L [PHP] Visualizzare utente dopo login PHP 0
M Nuovo Utente Presentati al Forum 0
Robpagna Nuovo utente Presentati al Forum 2
U [PHP] Differenza tra amministratore e utente PHP 2
svtmaster Salve , un saluto a tutti voi sono un nuovo utente . Grazie Presentati al Forum 0
G Sono un nuovo utente questo sito Presentati al Forum 0
R [PHP] creare pagina profilo per ogni utente PHP 4

Discussioni simili