Purtroppo no, soprattutto perchè il progetto di indicizzazione e ottimizzazione del sito in questione poi non è entrato e quindi ho abbandonato l'approfondimento
Mi dispiace non esserti stato d'aiuto!
Alessandro
Purtroppo no, soprattutto perchè il progetto di indicizzazione e ottimizzazione del sito in questione poi non è entrato e quindi ho abbandonato l'approfondimento
Mi dispiace non esserti stato d'aiuto!
Alessandro
Eheh.. problema risolto, grazie era proprio quella funzione che non avevo inserito..
Un consiglio TheDarkita: nella progettazione di pagine ad accesso protetto e dal punto di vista di una buona programmazione, la sessione dovrebbe essere terminata secondo un intervallo di tempo oppure posso lasciarla aperta?
Indipendentemente da tutto, qual'è la miglior procedura (e quindi la più sicura) per gestire gli accessi a pagine protette tramite $_SESSION?
Grazie
Ciao a tutti,
vi scrivo per segnalarvi un comportamento strano del mio server (probabilmente a causa di un mio errore) nel momento in cui proteggo alcune pagine del mio sito utilizzando la variabile $_SESSION.
Com'è comune, sfrutto la variabile per memorizzare l'autorizzazione dell'utente a navigare in determinate pagine protette: il problema è che la sessione non rimane memorizzata e in ogni pagina mi richiede l'inserimento credenziali.
Ecco gli script:
index.php: semplice form di ingresso
[html] <form method="post" action="home_page.php">
<table width="354" border="0" cellspacing="3" cellpadding="0">
<tr>
<td width="102">Nome utente:</td>
<td width="243"><label>
<input type="text" name="username" />
</label></td>
</tr>
<tr>
<td>Password:</td>
<td><input type="password" name="password" /></td>
</tr>
</table>
<label>
<input type="submit" value="Invia" />
</label>
<input type="reset" value="Ripristina" />
</form>[/html]home_page.php: la prima pagina protetta. Qui mi fa entrare correttamente
[php]<?php require 'secure.inc.php'; ?><!DOCTYPE html PUBLIC...[/php]secure.inc.php:
[php]<?php
require_once 'access.inc.php';
if (!loggedIn()) {
include 'index.php';
exit;
}
?>[/php]access.inc.php
[php]<?php
require_once 'config.inc.php';
function loggedIn()
{
return isset($_SESSION['authorized']);
}
// Processa il tentativo di login
if (isset($_POST['username'])) {
if($_POST['username'] == ADMIN_USER and
$_POST['password'] == ADMIN_PASS) {
$_SESSION['authorized'] = TRUE;
}
}
// Processa il logout
if (isset($_REQUEST['logout'])) {
unset($_SESSION['authorized']);
}
?>[/php]config.inc.php: inserisco le variabili pwl e nome utente
[php]<?php
define('ADMIN_USER', 'bandrea');
define('ADMIN_PASS', 'bandrea');
?>[/php]Il problema consiste nel fatto che il login funziona perfettamente, ma non viene memorizzata la sessione. Una volta entrato in home_page.php quando provo a cliccare su qualsiasi altra pagina protetta mi ridà la schermata di login, come se non fossi mai entrato.
Suppongo che quindi non venga memorizzata la sessione.. potrebbe essere un problema del setting del server?
Ecco il mio PHP.INI, sezione SESSION:
session
Session Support enabled Registered save handlers files user Registered serializer handlers php php_binary wddx
DirectiveLocal ValueMaster Value session.auto_startOffOff session.bug_compat_42OnOn session.bug_compat_warnOnOn session.cache_expire180180 session.cache_limiternocachenocache session.cookie_domainno value**no value session.cookie_lifetime00 session.cookie_path// session.cookie_secureOffOff session.entropy_fileno value**no value session.entropy_length00 session.gc_divisor100100 session.gc_maxlifetime14401440 session.gc_probability00 session.hash_bits_per_character44 session.hash_function00 session.namePHPSESSIDPHPSESSID session.referer_checkno value**no value session.save_handlerfilesfiles session.save_path/var/lib/php5/var/lib/php5 session.serialize_handlerphpphp session.use_cookiesOnOn session.use_only_cookiesOffOff session.use_trans_sid00
Ringrazio chiunque riesca a darmi una soluzione al problema!
Alessandro