Pagina con password "a scelta multipla"

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.
Rispondi
samiel
Staff
Staff
Messaggi: 5511
Iscritto il: ven 16 gen 2004, 0:00
Nome Cognome: Mauro Sacchetto
Slackware: 13.0
Kernel: 2.26
Desktop: KDE
Distribuzione: anche Debian
Località: Venezia

Pagina con password "a scelta multipla"

Messaggio da samiel »

Ho una pagina con accesso ristretto (username e password):

Codice: Seleziona tutto

<div class="overtitle"><p>Materiali</p></div>
<h1>Area docenti</h1>
<?php
$msgs=array(
"unv"=>">>> Utente non valido <<<",
"pnv"=>">>> Password non valida <<<",
"nous"=>">>> Utente non autorizzato <<<",
"login"=>">>> Accesso correttamente effettuato <<<",
"logout"=>">>> Logout correttamente effettuato <<&lt",
"noacc"=>">>> Accedere correttamente con le credenziali <<<"
);
if(isset($_GET["messaggio"])) echo "
<p><strong>{$msgs[$_GET["messaggio"]]}</strong></p>\n";
if(!isset($_SESSION["authrzd"])) :
?>
<h3>Per accedere, inserire username e password <br /> e premere il pulsante
"Invia"</h3>
<br /><br />
<form method="post" action="materiali/logexe.php?action=login">
<fieldset>
<label class="row" for="usnm">Username:</label><br />
<input type="text" id="usnm" size="30" maxlength="30" name="usnm" /><br /><br />
<label class="row" for="uspw">Password:</label><br />
<input type="password" id="uspw" size="30" maxlength="30" name="uspw" /><br /><br />
<br /><br />
<input type="submit" name="Invia" value="Invia" />
<input type="reset" name="Cancella" value="Cancella" />
</fieldset>
</form>
<?php else : ?>
<h1>Archivio materiali</h1>
<p>Utente in sessione: <strong><?php echo $_SESSION["usernm"]; ?></strong> -
<a href="materiali/logexe.php?action=logout">logout</a></a></p>
<p>Per una corretta visualizzazione dei testi presenti, &egrave; necessario
installare nel sistema i font greci (i quali dovranno poi essere usati nella
stesura dei testi nuovi) scaricabili ai seguenti link,:</p>
<p><a href="materiali/greek.ttf">Font greco tondetto</a></p>
<p><a href="materiali/greeki.ttf">Font greco corsivo</a></p>

<h4>Materiali</h4>
<p><a href="materiali/test_001.rtf">Test n. 1</a></p>
<?php endif; ?>
Ora. mi servirebbe una cosa leggermente piu complessa:
una pagina destinata a 4 utenti ciascuno con rispettivi username e password,
e a seconda di chi si tratta dovrebbe aprirsi la sua pagina.. Insomma
se metto utente1 e password1 si apre in automatico la pagina 1 ecc.
Si puà fare?

Grazie
M

Avatar utente
ermes
Linux 2.x
Linux 2.x
Messaggi: 372
Iscritto il: dom 20 feb 2005, 0:00
Slackware: current 64
Desktop: kde
Località: Rho (Mi)

Re: Pagina con password "a scelta multipla"

Messaggio da ermes »

mi pare proprio di si.
se ho capito bene, la username è contenuta in $_SESSION["usernm"]... quindi dovrebbe bastare una cosa simile:

Codice: Seleziona tutto

switch($_SESSION["usernm"]){
     case "utente1":
                ... pagina da visualizzare per l'utente 1...
                break;
     case "utente2":
                ... pagina da visualizzare per l'utente 2...
                break;
...
      }
per pulizia e successive manutenzioni, se il codice da mettere per ogni utente è molto lungo e il file diventa illeggibili puoi sempre sostituirlo con un "include"

Codice: Seleziona tutto

switch($_SESSION["usernm"]){
     case "utente1":
                include(pagina_utente_1.php);
                break;
     case "utente2":
                include(pagina_utente_2.php);
                break;
...
      }

Avatar utente
joseph
Linux 2.x
Linux 2.x
Messaggi: 206
Iscritto il: lun 14 giu 2010, 23:50
Slackware: 15.0
Kernel: 5.15.27
Desktop: xfce
Località: Salerno

Re: Pagina con password "a scelta multipla"

Messaggio da joseph »

oppure puoi usare al posto dell'include:

Codice: Seleziona tutto

switch($_SESSION["usernme"]){
     case "utente1":
                header('Location: utente1.php');
                break;
     case "utente2":
                header('Location: utente2.php');
                break;
ecc...
      }

samiel
Staff
Staff
Messaggi: 5511
Iscritto il: ven 16 gen 2004, 0:00
Nome Cognome: Mauro Sacchetto
Slackware: 13.0
Kernel: 2.26
Desktop: KDE
Distribuzione: anche Debian
Località: Venezia

Re: Pagina con password "a scelta multipla"

Messaggio da samiel »

Scusate il ritardo nella risposta,
ma è un periodo parecchio complicato.
Vedo di provare in questi giorni,
intanto mille grazie

M

Rispondi