Mi potete aiutare, sarà che sto diventanto leggermente rinc.... oppure sarà la mia inesperienza a questo punto non so più cosa pensare.
Il problema è il seguente, ho realizzato una piccola area riservata. Il bello che l'ho provato su diversi server e tutto va come benissimo, ma appena pubblico questo script sul server Aruba, mi logga sempre la "pagina con accesso non autorizzato".
Queste sono le pagine script che ho utilizzato.
pagina login.php
Codice PHP:
<?php
include("config.inc.php");
$file = $_SERVER['PHP_SELF'];
session_start();
if(isset($_POST['submit1']) || ($_POST['submit1'] == 'submit1'))
{
$db = mysql_connect($db_host, $db_user, $db_password) or die('Errore connessione database');
mysql_select_db($db_name, $db) or die('Errore selezione database');
if(($_POST['user']) && ($_POST['pwd']))
{$query = "SELECT admin_ID FROM admin WHERE user = '$_POST[user]' AND password = '$_POST[pwd]'";
$risultato = mysql_query($query);
$num = mysql_num_rows($risultato);
}
if($num>0)
{
session_register('autorizzato');
$_SESSION["autorizzato"] = 1;
Header("Location: areariservata.php");
} else
{echo"<script>alert('User o password sbagliati.');</script>";
}
}
?>
else
<html>
<head>
<title>Titolo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="css/principale.css" rel="stylesheet" type="text/css">
</head>
<body>
<div align="center">
<div align="center">
<table width="94%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="center"></td>
</tr>
<tr>
<td align="center" class="testo"></td>
</tr>
<tr>
<td align="center" class="testo"><form method="post" action="<?php $file ?>">
<table border="0" cellspacing="0" cellpadding="2">
<tr>
<td align="right"><label>
<input name="user" type="text" size="15" />
</label></td>
<td class="testo">Username</td>
</tr>
<tr>
<td align="right"><label>
<input name="pwd" type="text" size="15" />
</label></td>
<td class="testo">Password</td>
</tr>
<tr>
<td align="right"><label>
<input type="submit" name="submit1" value="Invia" />
</label></td>
<td></td>
</tr>
</table>
</form></td>
</tr>
</table>
</div>
</div>
</body>
</html>
pagina check.php
Codice PHP:
<?php
session_start();
if (!session_is_registered('autorizzato')) {
echo "<h1>Area riservata - accesso negato</h1>";
die;
}
?>
pagina areariservata.php
Codice PHP:
<?php
include_once("check.php");
?>
<html>
<head>
<title>Area Riservata</title>
</head>
<body>
Benvenuti nella sezione riservata
</body>
</html>
pagina config.inc.php
Codice PHP:
Contiene la stringa di connessione al db
Praticamente su aruba accade che il controllo contenuto nel file check.php non funziona a dovere il mio dubbio cade sulla seguente stringa:
(!session_is_registered('autorizzato'))
Eppure la versione del php di aruba è identica a quella che utilizzo io e cioè la 5
Please aiutatemi. Non vi chiedo il motivo ma vi chiedo se posso aggiungere, modificare o correggere lo script per accedere alla pagina "areariservata.php" in modalità "autorizzato" e mantenere tale stato nelle successive.
Ringraziandovi. Spero in un vostro rapido aiuto.