Repository 32bit  Forum
Repository 64bit  Wiki

Php sessione post login

Forum dedicato alla programmazione.

Moderatore: Staff

Regole del forum
1) Citare in modo preciso il linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.

Php sessione post login

Messaggioda oim » mar ago 11, 2009 21:08

Salve ragazzi...

Premetto che me ne intendo poco di php e che vengo dal c++...

il mio problema è come fare per indirizzare a 3 pagine diverse dopo aver effettuato il login...

ho 3 tipi di utenti:

1) admin
2) super utente
3) utente

vorrei che se vengono iserite le credenziali dell'admin si aprisse admin.php, se quelle del super utente la sua pagina e se l'utente la sua pagina...

Ho impostato la tabella del login con questi campi

Nome utente
Password
Type (admin, super utente, utente) in questo modo posso controllorae il tipo di utente!!

Il mio file index.php è questo:

Codice: Seleziona tutto
<form action="login.php" method="post">
      <input type="hidden" name="form" value="on" >
      Nome utente&nbsp;<input type="text" name="username"/>
      Password&nbsp;<input type="password" name="user_password"/>
      <input type="submit" value="Accesso"/>
   </form>
   <p>Inserisci username e password corretti per fare login.</p>
   <?php
      }
      
      
      else { echo "Ciao ".$_SESSION['username']."!";
      
      if ( sessionReservedAreaCheck("consulente") == true ){
      header('Location: http://laboratoriomax.altervista.org/consulente.php');
      }
      else{
      if( sessionReservedAreaCheck("admin") == true ){
      header('Location: http://laboratoriomax.altervista.org/admin.php');}
      else{
      if ( sessionReservedAreaCheck("utente") == true ){
      header('Location: http://laboratoriomax.altervista.org/utente.php');}
      }
      }
      
      //HTML
   ?>
   <p></p><a href="logout.php">Logout</a></p>
<?php } ?>
</body></html>
<?php mysql_close(); ?>


Mentre la funzione sessionReservedAreaCeck è questa:

Codice: Seleziona tutto
function sessionReservedAreaCheck ($userType) {
      $typeQuery = "SELECT type FROM utenti WHERE username = '{$_SESSION['username']}' AND user_password = '{$_SESSION['user_password']}'";
      $type = mysql_fetch_Array ( mysql_query ($typeQuery) );
      if ( mysql_error() == true ) { echo "<p>".mysql_error()."</p>"; }
      else {
         if ( $type['type'] != $userType ) { $userType = false; session_destroy(); }
         else { $userType = true; echo "Ciao ".$_SESSION['type']."!";}
      }
      return $userType;}


Qualcuno sa darmi qualche dritta ragazzi??

Mi finziona solo se accedo come super utente!!! :(
Ultima modifica di oim il mer ago 12, 2009 16:45, modificato 1 volta in totale.
Avatar utente
oim
Linux 2.0
Linux 2.0
 
Messaggi: 156
Iscritto il: ven feb 22, 2008 10:47
Località: Isernia
Slackware: 13.0

Re: Php sessione post login

Messaggioda cymon » mar ago 11, 2009 22:51

oim ha scritto:Salve ragazzi...
Qualcuno sa darmi qualche dritta ragazzi??

Mi finziona solo se accedo come super utente!!! :(


Non capisco molto di PHP, ma voglio dare il mio contributo con una domanda intelligente. Col admin e con lo user normale cosa fa? Crasha? Rimane sulla pagina di login? Va sempre sulla pagina del super utente?
Avatar utente
cymon
Linux 2.4
Linux 2.4
 
Messaggi: 430
Iscritto il: ven gen 05, 2007 1:40
Località: Milano
Slackware: 13.1
Kernel: 2.6.33.4-smp
Desktop: Fluxbox

Re: Php sessione post login

Messaggioda oim » mer ago 12, 2009 0:13

mi dice che non ho inserito i dati corretti...

se accedo con account di tipo super utente (consulente) allora funziona... altrimenti niente... è come se non leggesse gli ultimi 2 if dell'index.php
Avatar utente
oim
Linux 2.0
Linux 2.0
 
Messaggi: 156
Iscritto il: ven feb 22, 2008 10:47
Località: Isernia
Slackware: 13.0

Re: Php sessione post login

Messaggioda ccts2002 » mer ago 12, 2009 8:00

penso che con quel session_destroy() tu cancelli tuttti i dati della sessione e quindi le successive chiamate a sessionReservedAreaCheck("*") non possono mai creare la query e controllare che tipo di utente sia. prova ad eliminare quel session_destroy()
Avatar utente
ccts2002
Linux 2.0
Linux 2.0
 
Messaggi: 155
Iscritto il: gio nov 09, 2006 23:20
Località: milano - trieste - catania

Re: Php sessione post login

Messaggioda raffaele181188 » mer ago 12, 2009 8:55

Infatti, e poi perchè vorresti distruggere la sessione? Se posso permettermi questo suggerimento
Codice: Seleziona tutto
// La funzione di check usa queste costanti
define ('GUEST', 0);
define ('USER', 10);
define ('SUPER', 20);
define ('ADMIN', 300);

function authorize($user, $pass) {
   // mysql_real_escape_string(); // User e password
   // la password nel database è salvata in chiaro? Non è il massimo della sicurezza
   // Anzichè ritornare una stringa puoi ritornare un intero (ed eventualmente salvare l'intero anche nel db anzichè la stringa
   return GUEST / USER / SUPER / ADMIN / ...
}

// Nel tuo index.php
$redirect = '';
switch(authorize($_SESSION['user'], $_SESSION['pass'])) {
   case USER: $redirect = 'user.php';
   case SUPER: $redirect = 'super.php';
   case ADMIN:
      $redirect = 'admin.php';
      header ("Location: $redirect");
}
Avatar utente
raffaele181188
Packager
Packager
 
Messaggi: 789
Iscritto il: ven set 07, 2007 20:40
Località: DearSkin (FG)
Nome Cognome: Raffaele
Slackware: current
Kernel: 2.6.29.6
Desktop: KDE 4.3
Distribuzione: Ubuntu

Re: Php sessione post login

Messaggioda oim » mer ago 12, 2009 16:44

salve a tutti ragazzi!!!

ho risolto in un altro modo!!!

Ora però sto cercando un programmatore PHP che mi aiuti a finire il progetto per un'azienda!!!

il più è fatto manca solo la parte di caricamento dati!!!

Purtroppo a causa della tesi e degli ultimi esami non ho tutto il tempo che mi occorre per finire...

Cerco qualcuno che mi aiuti nella fase finale..

Sono disposto a fare a metà del compenso 200€ (100€ a testa)

Chiunque fosse interessato mi contatti!!!
Avatar utente
oim
Linux 2.0
Linux 2.0
 
Messaggi: 156
Iscritto il: ven feb 22, 2008 10:47
Località: Isernia
Slackware: 13.0


Torna a Programmazione

Chi c’è in linea

Visitano il forum: d4z_c0nf e 1 ospite