PDA

View Full Version : [PHP] pagina protetta da password


fera.82
23-11-2005, 14:23
Salve a tutti ^^ vorrei crearmi una pagina la cui visualizzazione sia protetta da una password. SPECIFICO CHE NON POSSO FARE AFFIDAMENTO AI DATABASE.
Come posso fare? nessuno ha un codice già pronto?

Un mio amico usa questo codice:
<?php
/* Config Section */
$pass = 'LAMIAPASSWORD'; // Set the password.
$cookiename = 'ILMIOCOOKIE'; // Optional change: Give the cookie a name. Default is sascookie
$expirytime = time()+3600; // Optional change: Set an expiry time for the password (in seconds). Default is 1 hour.
$msg = '<strong>&raquo; ERRORE! Password non corretta... Accesso consentito ai soli membri del clan.</strong>'; // Optional change: Error message displayed when password is incorrect. Default is "Password incorrect".
/* End Config */
function setmycookie() {
global $cookiename,$pass,$expirytime;
setcookie($cookiename,$pass,$expirytime);
}
function show_login_page($msg) {
?>
<p>
<strong>&raquo; ATTENZIONE!</strong><br /><br>
Stai per entrare in un'area privata. Una volta inserita la password, avrai libero accesso per 1 ora, dopodichè ti verrà nuovamente richiesta. Devi aver abilitato i cookies per potere entrare.<br/>
<br/><br>
<center>
<form action="" method="POST">
<strong>&raquo; Password:&nbsp;</strong><input class="password" type="password" name="password" size="20">&nbsp;
<input type="submit" class="bottone" value="Accedi">
<input type="hidden" name="sub" value="sub">
</form>
</center>
</p>
<?=$msg?>
<? }

$errormsg='';
if ($_POST['sub']) {
if ($_POST['password']<>$pass) {
$errormsg=$msg;
show_login_page($errormsg);
exit();
} else {
setmycookie();
}
} else {
if ($_COOKIE[$cookiename]<>$pass) {
show_login_page($errormsg);
exit();
} else {
// do nothing
}
}
?>
che viene richiamato sulla pagina da nascondere tramite questa riga di codice:
<?php require('NOMEPAGINACONCODICE.php');?>

il suo sito è questo:
cliccami (http://iroy.altervista.org)
ma come potete constatare dalla sezione PHOTOS, tale soluzione impedisce di completare il layout del resto del sito...

COME POSSO RISOLVERE QUESTO PROBLEMA? Esiste un altro modo per nascondere via password (in maniera sicura) una parte di una pagina, e quindi il suo contenuto? THX :)

beppegrillo
23-11-2005, 14:45
htpasswd?

fera.82
23-11-2005, 17:29
htpasswd? cos'è? scusate ma sono niubbetto ^^

fera.82
25-11-2005, 17:25
Ah adesso ho visto... sinceramente però mi piacerebbe di più un qualcosa in php, facilmente gestibile, e che non faccia compararire nesun pop-up di sorta ^^

smartz
26-11-2005, 09:11
htpasswd suppone che sotto ci sia un server apache al quale hai accesso per caricare .htaccess e .htpasswd.

se vuoi fare la stessa cosa in PHP okkio qui

http://it2.php.net/manual/it/print/features.http-auth.php

commenti: forse il popup non e' la cosa piu' elegante, ma e' tecnicamente la migliore perche in realta va a usare il meccanismo di autenticazione HTTP, secondo me per alcuni versi superiore a qualcosa di 'home-made' (anche se concordo che questa affermazione sia molto discutibile e richiederebbe un lunghissimo thread per sviscerarlo bene :) )

ciao