- Home
- Categorie
- Coding e Sistemistica
- PHP
- Script per proteggere pagina php
-
Script per proteggere pagina php
Ciao ragazzi ho bisogno di un aiuto, praticamente sto creando un sito e vorrei inserire un form con un login in cui inserire nome utente e password per accedere ad una pagina segreta da me creata.
Ora sono riuscito a creare il tutto solo che non riesco a far aprire automaticamente la pagina segreta. Solo che ogni volta che effettuo il login mi trovo costretto a dover digitare manualmente l'indirizzo nel browser per accedere alla pagina segreta.
Questo è il codice contenuto nel file che ho creato chiamato login.php:
<? session_start(); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" ".w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Login</title> </head> <body> <? function check($user,$password){ include("utenti.php"); foreach($utenti as $user_ => $password_){ if (($user==$user_) AND ($password==$password_)) { return true; } } return false; } function form_login(){ ?> <form id="login" action="<?=$PHP_SELF?>" method="post"> <div style="text-align:center;margin-left:auto;margin-right:auto;"> Utente:<br> <input type="text" name="utente" size="20" maxlength="255"><br> Password:<br> <input type="password" name="password" size="20" maxlength="255"><br><br> <input type="submit" value=" OK "> </div> </form> <? } if(isset($_POST["utente"])){ if (check($_POST["utente"],$_POST["password"])){ $_SESSION["utente"] = $_POST["utente"]; $_SESSION["password"] = $_POST["password"]; echo "ora sei loggato! torna"; }else{ form_login(); } }else{ form_login(); } ?> </body> </html>
Ora vorrei riuscire una volta effettuato il login a reindirizzare la pagina su la pagina ad esempio miosito.com/paginasegreta.php
Come posso fare?
grazie.
-
Per prima cosa non usare lo short open tag (<?), utilizza il tag di apertura completo <?php
Poi la funzione check() può essere semplificata in questo modo:
[php]function check($user, $password) {
include("utenti.php");
return isset($utenti[$user]) && $utenti[$user] == $password;
}[/php]Per quanto riguarda il redirect, è sufficiente inserire il codice di verifica subito dopo a session_start() (modificandolo in modo da non richiamare direttamente form_login()) ed utilizzare un header location per il redirect.
A tal proposito, ti suggerisco di leggere questo articolo:
Effettuare un redirect con header location e propagare le sessioni
kb.creativepark.it/kb/entry/5/