Il sito e' strutturato in questo modo:
La pagina index.php e' quella principale e contiene in uframe per il menu eil form per il login e un iframe per le altre pagine. Il codice e' questo:
Codice PHP:
<html>
<head>
<title>Studio Pittura Puani</title>
</head>
<body>
<iframe name="menu" style="position:absolute; left:9px; top:5px; width:882px; height:200px; z-index:1" src="pages/menu/menu.php" frameborder="0"></iframe>
<iframe name="contents" style="position:absolute; left:9px; top:200px; width:882px; height:538px; z-index:1" src="pages/contents/news.php" frameborder="0"></iframe>
</body>
</html>
La pagina menu.php che viene richiamata nel primo iframe e' questa:
Codice PHP:
<?php
session_start();
?>
<html>
<head>
<title>Studio Pittura Puani</title>
<script language="javascript">
function refresh() {
var current = parent.contents.location.href;
parent.contents.location.href = current;
setTimeout("refresh()", 1000000);
}
</script>
</head>
<body>
[url="../contents/news.php"]News[/url]
[url="../contents/gallery.php"]Gallery[/url]
[url="../contents/biografia.php"]Biografia[/url]
[url="../contents/studio.php"]Studio[/url]
[url="../contents/contatti.php"]Contatti[/url]
<?php
if(isset($_POST['login'])) {
include("../config/config.inc.php");
$select = "SELECT * FROM login";
$setselect = mysql_db_query($db_name, $select) or die (mysql_errno . ": " . mysql_error() . "\n");
$num = mysql_num_rows($setselect);
if($num == 1) {
$user = mysql_result($setselect, 0, "user");
$pwd = mysql_result($setselect, 0, "pwd");
$current_user = $_POST['user'];
$current_pwd = $_POST['password'];
session_register('autorizzato');
if($user == $current_user && $pwd == $current_pwd) {
$_SESSION["autorizzato"] = 1;
$destinazione = "../contents/login.php";
} else {
$_SESSION["autorizzato"] = 0;
$destinazione = "../contents/error.php";
}
echo '<script language="javascript">refresh();</script>';
echo '<script language=javascript>document.location.href="'.$destinazione.'"</script>';
} else {
echo("errore nel database");
}
} else {
?>
<form name="login" action="menu.php" method="post">
User:
<input name="user" type="text" size="15" maxlength="20">
Password:
<input name="password" type="password" size="15" maxlength="20">
<input type="submit" name="submit" value="login">
<input type="reset" name="reset" value="reset">
<input type="hidden" name="login">
</form>
<?php
}
?>
</body>
</html>
Nel codice ho pensato di inserire un controllo in javascript per verificare il valore della variabile di sessione e quindi far visualizzare nella corrente pagina dell'iframe i privilegi del login.
Se il login ha avuto successo richiama la seguente pagina:
Codice PHP:
<?php
session_start();
if(isset($_POST['logout'])) {
$_SESSION['autorizzato'] = 0;
echo '<script language=javascript>document.location.href="../menu/menu.php"</script>';
} else {
?>
<html>
<head>
<title>Studio Pittura Puani</title>
</head>
<body>
[url="news.php"]News[/url]
[url="gallery.php"]Gallery[/url]
[url="biografia.php"]Biografia[/url]
[url="studio.php"]Studio[/url]
[url="contatti.php"]Contatti[/url]
<form action="login.php" method="post">
<input type="submit" name="submit" value="logout">
<input type="hidden" name="logout">
</form>
<?php
}
?>
</body>
</html>
In questo caso non ho inserito il controllo javascript per il refresh ma anche inserendolo non produce risultati. Se il login non ha avuto successo richiama la pagina error.php che ridireziona alla pagina principale. Il codice e' questo:
Codice PHP:
<?php
session_start();
session_unset();
session_destroy();
?>
<script language="javascript">
var current = parent.contents.location.href;
parent.contents.location.href = current;
document.location.href = "../menu/menu.php";
</script>
Infine una pagina di prova che viene caricata nel secondo iframe e' questa:
Codice PHP:
<?php
session_start();
?>
<html>
<head>
<title>Studio Pittura Puani</title>
</head>
<body>
<?php
if($_SESSION['autorizzato'] = 1) {
echo 'sei loggato';
}
if($_SESSION['autorizzato'] = 0) {
echo 'non sei loggato';
}
?>
</body>
</html>
So che il problema che vi presento e' un po' complesso da individuare comunque vi chiedo: dove sbaglio ? cosa devo fare per far funzionare correttamente il login visualizzando nell'iframe le giuste righe di codice (possibilmente senza richiamare un'altra pagina ma utilizzando la stessa) ?
Grazie a tutti.