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.
Avatar utente
oim
Linux 2.0
Linux 2.0
Messaggi: 157
Iscritto il: ven feb 22, 2008 10:47
Slackware: 13.0
Località: Isernia
Contatta:

Php sessione post login

Messaggioda oim » mar ago 11, 2009 22: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 17:45, modificato 1 volta in totale.

Avatar utente
cymon
Linux 2.4
Linux 2.4
Messaggi: 430
Iscritto il: ven gen 05, 2007 1:40
Slackware: 13.1
Kernel: 2.6.33.4-smp
Desktop: Fluxbox
Località: Milano
Contatta:

Re: Php sessione post login

Messaggioda cymon » mar ago 11, 2009 23: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
oim
Linux 2.0
Linux 2.0
Messaggi: 157
Iscritto il: ven feb 22, 2008 10:47
Slackware: 13.0
Località: Isernia
Contatta:

Re: Php sessione post login

Messaggioda oim » mer ago 12, 2009 1: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
ccts2002
Linux 2.0
Linux 2.0
Messaggi: 155
Iscritto il: gio nov 09, 2006 23:20
Località: milano - trieste - catania
Contatta:

Re: Php sessione post login

Messaggioda ccts2002 » mer ago 12, 2009 9: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
raffaele181188
Packager
Packager
Messaggi: 789
Iscritto il: ven set 07, 2007 21:40
Nome Cognome: Raffaele
Slackware: current
Kernel: 2.6.29.6
Desktop: KDE 4.3
Distribuzione: Ubuntu
Località: DearSkin (FG)

Re: Php sessione post login

Messaggioda raffaele181188 » mer ago 12, 2009 9: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
oim
Linux 2.0
Linux 2.0
Messaggi: 157
Iscritto il: ven feb 22, 2008 10:47
Slackware: 13.0
Località: Isernia
Contatta:

Re: Php sessione post login

Messaggioda oim » mer ago 12, 2009 17: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!!!


Torna a “Programmazione”

Chi c’è in linea

Visitano il forum: Google [Bot] e 1 ospite