Un saluto a tutti.
Ho bisogno di un grosso aiuto poichè sto migrando su un nuovo server un sistema di login per un sito web solo che ho dei problemi spaventosi poichè non funziona più.
Sul nuovo server è installato PHP Version 4.3.9 con Apache/2.0.52 (CentOS), mentre prima ero su PHP Version 4.2.2 e Apache/1.3.22.
Immagino (immagino solamente) che alcune caratteristiche debbano essere variate nei seguenti script per far si che tutto funzioni nuovamente, ma ho rovistato come un forsennato il forum ma nulla da fare. Prove su prove e sono bloccato.
Vi elenco brevemente i punti fondamentali dello script che uso:
1) Form di login con username e password inviati con POST alla pagina autentica.php e penso che fino a qua non ci sia alcun dubbio.
2) La pagina autentica.php mi verifica a db (mysql) se lo username e passowrd sono corretti e quindi mi da un responso. Vorrei precisare che ad inizio pagina inserisco
Codice PHP:
<? session_start(); ?>
Codice PHP:
<?
require ("require/connessione.php");
$username = $_POST ['username']; //Otteniamo l'username
$password = $_POST ['password']; //Otteniamo la password
$active = $_POST ['active']; //Ottengo se l'utente è attivo
$query = "SELECT * FROM utenti WHERE username = '$username'"; //Impostiamo la query...
$risultato = mysql_query($query);
$riga = mysql_fetch_array($risultato);
if(mysql_num_rows($risultato) == 0 || $riga['password'] != $password || $riga['active'] != 1) //Se l'username o la password sono sbagliati o utente inattivo...
{
echo "<div align=center><font size=1 face=verdana>Username/Password errati o Utente non attivo
[url='login.php']Torna al Login[/url]</font></div>"; //..mandiamo l'errore e terminiamo lo script
//header("Location: login.php");
}
else //Altrimenti salvo le sessioni e le uso per accedere alla pagina garticoli.php
{
$HTTP_SESSION_VARS['username'] = $username;
$HTTP_SESSION_VARS['password'] = $password;
echo "Benvenuto $username [url='garticoli.php']clicca qui per accedere[/url]"; //Diamo poi un messaggio di conferma all'utente
}
mysql_close();
?>
fino qui effettivamente riesco a loggarmi e tutto va bene, ma nel momento in cui clicco sul link che porta alla pagina garticoli.php mi riporta al login.php poichè sulla pagina garticoli.php in alto ho inserito:
Codice PHP:
<?
session_start();
//se la variabile di sessione non e' settata faccio un redirect alla pagina di login
if (!$_SESSION[username]) header ("Location: login.php");
?>
Quindi mi chiedo perchè la variabile di sessione non è settata e mi riporta al login.php mentre invece io l'ho settata nella pagina autentica.php...
Qualcuno ha avuto il mio stesso problema o conosce la soluzione?
Grazie mille...
Andrea