|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Dec 2011
Messaggi: 38
|
[PHP] login session multiplo
salve, ho un problema. non riesco a trovare il modo di tenere le pagine in sessione dopo il login. voglio che ogni utente, nel mio caso 3 utenti, dopo aver effettuato il login acceda ad una o più pagine personalizzate, il problema è che la pagina di riferimento per ognuno dei 3 utenti sono accessibile anche senza il login.... come posso fare in modo che le pagine utente1.php, utente2.php e utente3.php siano accessibili solo dopo il login?
index.html con il mio form: <form id="form1" name="form1" method="post" action="utenti.php"> <fieldset><legend>Area riservata</legend> <p> <label for="textfield">Username</label> <input type="text" name="username" tabindex="10" id="textfield" /> </p> <p> <label for="label">Password</label> <input type="password" name="password" id="label" /> <label for="Submit"></label> <input name="Submit" type="submit" class="submit" id="Submit" tabindex="30" value="Invia" /> </p> utenti.php per elaborare il tipo di utente: <?php $username = $_POST['username']; $password = $_POST['password']; if ($username == "111" && $password == "111") { echo "<center><h2><font color=#009900>Benvenuto nell'area riservata.</font></h2><br><a href=utente1.php>Clicca qui per continuare.</a></center>"; exit (); } elseif ($username == "222" && $password == "222") { echo "<center><h2><font color=#009900>Benvenuto nell'area riservata.</font></h2><br><a href=utente2.php>Clicca qui per continuare.</a></center>"; exit (); } elseif ($username == "333" && $password == "333") { echo "<center><h2><font color=#009900>Benvenuto nell'area riservata.</font></h2><br><a href=utente3.php>Clicca qui per continuare.</a></center>"; exit (); } else { echo "<center><h2><font color=#FF0000><h2>Accesso negato.</font></h2><br>Le credenziali inserite non risultano valide.<br><a href=\"javascript:history.go(-1)\">Clicca qui per tornare al form e reinserire username e password.</a></center>"; exit(); } ?> non so cosa inserire nelle pagine utente1.php, utente2.php e utente3.php per proteggere la sessione....help me è importante per me |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Dec 2008
Messaggi: 729
|
Ciao, non sono molto esperto ma ti dico come risolvo solitamente la questione..
Nelle pagine utente devi inserire un if di controllo di una session che crei nella pagina prima. Nella pagina utenti.php una volta che hai verificato la password e l'username prima di procedere mostrandogli il link per l'area riservata crei una session Codice PHP:
Codice PHP:
ah ricordati di inizializzare le session altrimenti non funzionano. il comando per farlo è: Codice PHP:
|
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Dec 2011
Messaggi: 38
|
grazie ma non riesco ancora a capire come posizionarle
allora nel file utenti.php Codice PHP:
Codice PHP:
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Dec 2008
Messaggi: 729
|
nessun problema.. non funzionano mai al primo tentativo
L'errore potrebbe essere in utenti.php dove non hai messo session_start(); inoltre c'è un errore di logica (secondo me): Se tu vuoi gestire il login di un utente la session la crei solo nel momento in cui l'utente inserisce le corrette credenziali.. se l'utente inserisce dati errati lo rimandi all'index con un messaggio d'errore. Quindi la pagina utenti.php sarà: Codice PHP:
Prova in questo modo! |
|
|
|
|
|
#5 |
|
Member
Iscritto dal: Dec 2011
Messaggi: 38
|
non va ancora, mi fa ancora accedere tranquillamente alle pagine dei 3 utenti anche prima del login.... sto cercando ma non riesco a trovare la chiave.... azzarola!!!!
|
|
|
|
|
|
#6 |
|
Member
Iscritto dal: Jul 2011
Messaggi: 246
|
...ma perchè usi una pagina diversa per ogni utente? E se avessi 50 utenti? Dovresti avere 50 pagine .php e un if-else con 50 rami??
Comunque sia... potresti mettere un ulteriore controllo nelle pagine degli utenti quindi ad esempio nella pagina utente1.php sostituisci quell'if iniziale con qualcosa del genere: Codice PHP:
__________________
Non c'è cosa peggiore nella vita di un programmatore di un errore che si presenta solo ogni tanto. CONCLUSO POSITIVAMENTE CON: oldfield |
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Dec 2008
Messaggi: 729
|
allora il problema credo che risieda nella pagine utente1.php, utente2.php e utente3.php
Sinceramente non ho mai usato le istruzioni Codice PHP:
Codice PHP:
Senza l'else, anche se l'if che hai messo tu non è verificato, rimane alla stessa pagina e quindi la visualizza normalmente.. Può essere questo il problema |
|
|
|
|
|
#8 | |
|
Senior Member
Iscritto dal: Dec 2008
Messaggi: 729
|
Quote:
|
|
|
|
|
|
|
#9 | |
|
Member
Iscritto dal: Jul 2011
Messaggi: 246
|
Quote:
__________________
Non c'è cosa peggiore nella vita di un programmatore di un errore che si presenta solo ogni tanto. CONCLUSO POSITIVAMENTE CON: oldfield |
|
|
|
|
|
|
#10 |
|
Senior Member
Iscritto dal: Dec 2008
Messaggi: 729
|
ahahah
|
|
|
|
|
|
#11 | |
|
Member
Iscritto dal: Dec 2011
Messaggi: 38
|
Quote:
vi ringrazio per il vostro aiuto, finalmente un forum valido... se poi volete darmi una mano con la creazione del db sarebbe il massimo!!! adesso vado a lavoro, di pome provo la soluzione datami sopra e vi faccio sapere |
|
|
|
|
|
|
#12 |
|
Member
Iscritto dal: Dec 2011
Messaggi: 38
|
niente da fare .... adesso se accedo ad utenti1,2 e 3 non compare nulla.....che dite?
|
|
|
|
|
|
#13 | |
|
Member
Iscritto dal: Jul 2011
Messaggi: 246
|
Quote:
index.php (è tale e quale!) Codice PHP:
Codice PHP:
Codice PHP:
P.S. Inutile dire che questo sistema di login è ALTAMENTE insicuro... Dovresti complicarlo a piacere...
__________________
Non c'è cosa peggiore nella vita di un programmatore di un errore che si presenta solo ogni tanto. CONCLUSO POSITIVAMENTE CON: oldfield Ultima modifica di Mettiu_ : 29-01-2012 alle 00:44. |
|
|
|
|
|
|
#14 |
|
Member
Iscritto dal: Dec 2011
Messaggi: 38
|
grazie Mttiu_ adesso va alla grande.... adesso ci siamo grazie mille!!!!
|
|
|
|
|
|
#15 |
|
Member
Iscritto dal: Dec 2011
Messaggi: 38
|
adesso sto provando ad inserire un cookie... una cosa non rieco a capire, non devo passargli variabile delle sessione no? cioè una volta attiva la sessione rileva il cookie inviato dal server?
devo posizionarlo in tutte le pagine utenti1,2,3 o solo nella utenti.php? |
|
|
|
|
|
#16 | |
|
Member
Iscritto dal: Jul 2011
Messaggi: 246
|
Quote:
Quello che abbiamo fatto fino ad ora è un session-cookie cioè un "cookie" che esplode non appena chiudi il browser (se lo chiudi devi rifare il login)... Per fare un cookie vero e proprio (cioè che dura anche se chiudi il browser o spegni il pc) devi usare la funzione setcookie (il cui manuale trovi qui http://php.net/manual/en/function.setcookie.php). Sia nelle session che nei cookie decidi tu cosa metterci e come utilizzarli...
__________________
Non c'è cosa peggiore nella vita di un programmatore di un errore che si presenta solo ogni tanto. CONCLUSO POSITIVAMENTE CON: oldfield |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 14:31.



















