Salve a tutti..non so bene come iniziare...
Sono un giovane webmaster e ho appena finito un mio progetto per gestire i siti dei gruppi musicali.
Ma ho avuto una brutta sorpresa appena messo su internet per provarlo. L'errore è uno solo, ma mi sta rovinando la vita!
non riesco proprio a capire...
In pratica ho una sessione chiamata pagina che ha il valore che gli viene dato dopo aver scelto la pagina da visualizzare da un selezionatore con lista ("<select>" e "<option>"); di default la il valore della sessione è "home". Lo script mi apre la pagina ma poi vado in contro a una serie di malfunzionamenti:
1) Apre la pagina ma in alcune di questa, appena clicco sul menu mi ritorna alla home;
2) Se clicco sui pulsanti (per esempio uno per fare delle modifiche) mi esce dal pannello di controllo e mi chiude le sessioni;
3) (il più terribile di tutti) Io per far apparire le pagina uso una funzione ( pagine(); ) e passo il valore della sessione ( quindi: $pagine = pagine($_SESSION['pagina']). Ma quando la variabile ($pagina) prende i suoi valori (diventanto un'array dato che la funzione restituisce 2 valori) si modifica anche la sessione, prendendo anch'essa i valori della variabile!! Ma la cosa sconvolgente è che DA NESSUNA PARTE DEGLI SCRIPT VIENE FATTA LA MODIFICA ALLA SESSIONE!! NESSUNA!!!!
quindi..chi può aiutarmi?? allego tutto l'occorrente per capirci meglio:
SITO http://www.roxysrose.altervista.org/roxys_band/admin
siccome è di rodaggio, si può tranquillamente accedere inserendo come dai "admin" e "admin".
SCRIPT:
*Premessa: la pagina principale del pannello amministrativo si divide in 2 parti: un header con il selezionatore di pagine che passa la scelta fatta alla sessione pagina e un frame in basso dove vengono aprete le pagine.
Gli include messi dopo // vuol dire che non sono utili allo script (o comunque al problema)
main.php:
Codice PHP:
<?php
ob_start();
session_start();
include("../config.inc.php"); -> connessione al database
include("../include/function_admin.php"); -> funzione amministratore (nelle quali c'è top()) che serve a far vedere il selezionatore di pagine.
//include("../linguaggio/admin/italiano.php");
//include("../linguaggio/user/italiano.php");
//include("../include/function_site.php");
//include("../include/function_user.php");
include("pagine.php"); -> qui c'è tutta la parte che riguarda le pagine
if(isset($_POST['logout'])){
unset($_SESSION['pagina']);
unset($_SESSION['id']);
unset($_SESSION['pass']);
unset($_SESSION['login']);
$_SESSION['login'] = FALSE;
echo "Logout effettuato.
Attendere...";
header("refresh: 2; url='index.php'");
}
if(isset($_SESSION['login']) and controllo_admin($_SESSION['id'],$_SESSION['pass'])){ $login = $_SESSION['login']; }
else { $login = FALSE; }
if($login){
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252" />
<title><?php echo $lingua['amministrazione']; ?></title>
<style>
body{
background-color:#000000;
color:#FFFFFF;
}
a { color:#0066FF; text-decoration:none; }
a:hover { color:#0000FF; text-decoration:underline; }
a:visited { color:#990033; }
</style>
</head>
<body>
<?php
include("header.php");
?>
<iframe src="body.php" scrolling="auto" name="mainFrame" id="mainFrame" frameborder="0" width="100%" height="350" title="mainFrame" />
</body>
</html>
<?php
mysql_close($db);
}else { header("refresh: 0; url='index.php'"); }
?>
header.php:
Codice PHP:
<?php
ob_start();
if(isset($_SESSION['login']) and controllo_admin($_SESSION['id'],$_SESSION['pass'])){ $login = $_SESSION['login']; }
else { $login = FALSE; }
if($login){
if(isset($_POST['invia'])){
$_SESSION['pagina'] = $_POST['pagina'];
}else{
$_SESSION['pagina'] = "home";
}
?>
<h2 align="center"><?php echo $lingua['amministrazione']; ?></h2>
<div align="center">
<?php echo $lingua['benvenuto']; ?> [b]<?php echo $_SESSION['id']; ?>[/b]!
<?php echo $lingua['scegli_menu']; ?>:
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<select name="pagina" id="pagina">
<?php
top($_SESSION['pagina']);
?>
</select>
<input type="submit" id="invia" name="invia" value="Scegli Pagina" />
<input type="submit" id="logout" name="logout" value="Logout" />
</form>
[url="../index.php"]-=<?php echo $lingua['guarda_sito']; ?>=-[/url]
</div>
<hr />
<?php
}
?>
body.php :
Codice PHP:
<?php
ob_start();
session_start();
include("../config.inc.php");
//include("../linguaggio/admin/italiano.php");
//include("../linguaggio/user/italiano.php");
//include("../include/function_admin.php");
//include("../include/function_site.php");
//include("../include/function_user.php");
include("pagine.php");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252" />
<style>
body{
background-color:#000000;
color:#FFFFFF;
}
a { color:#0066FF; text-decoration:none; }
a:hover { color:#0000FF; text-decoration:underline; }
</style>
</head>
<?php
if(isset($_SESSION['login']) and controllo_admin($_SESSION['id'],$_SESSION['pass'])){ $login = $_SESSION['login']; }
else { $login = FALSE; }
if($login){
$pagina = pagine($pagina);
include($pagina['url']);
$_SESSION['pagina'] = $tabella; -> questo mi è toccato farlo per far si che dopo si risistemi la sessione ma comunque non funziona :(
}
mysql_close($db);
?>
pagine.php:
Codice PHP:
<?php
if(isset($_GET['action'])){
$action = $_GET['action'];
}else{
$action = NULL;
}
function pagine($pag){
if($pag == "home"){
$contenuto['titolo'] = "Home Page - Guida al Sito";
$contenuto['url'] = "home.php";
return $contenuto;
}elseif($pag == "admin_sito"){
$contenuto['titolo'] = "Amministrazione Admin";
$contenuto['url'] = "admin_sito.php";
return $contenuto;
}elseif($pag == "news"){
$contenuto['titolo'] = "Gestione News e Commenti";
$contenuto['url'] = "news.php";
return $contenuto;
}elseif($pag == "componenti"){
$contenuto['titolo'] = "Gestione Componenti del Gruppo";
$contenuto['url'] = "componenti.php";
return $contenuto;
}elseif($pag == "guestbook"){
$contenuto['titolo'] = "Gestisci guestbook";
$contenuto['url'] = "guestbook.php";
return $contenuto;
}elseif($pag == "info_sito"){
$contenuto['titolo'] = "Gestisci Informazioni Sito";
$contenuto['url'] = "info_sito.php";
return $contenuto;
}elseif($pag == "info_gruppo"){
$contenuto['titolo'] = "Gestisci Informazioni sul Gruppo";
$contenuto['url'] = "info_gruppo.php";
return $contenuto;
}elseif($pag == "disco"){
$contenuto['titolo'] = "Gestisci la Discografia";
$contenuto['url'] = "disco.php";
return $contenuto;
}elseif($pag == "stato_sito"){
$contenuto['titolo'] = "Stato del Sito";
$contenuto['url'] = "stato_sito.php";
return $contenuto;
}elseif($pag == "links"){
$contenuto['titolo'] = "Gestione Links";
$contenuto['url'] = "links.php";
return $contenuto;
}elseif($pag == "smile"){
$contenuto['titolo'] = "Gestione Emoticons";
$contenuto['url'] = "smile.php";
return $contenuto;
}elseif($pag == "newsletter"){
$contenuto['titolo'] = "Gestione Newsletter e Iscritti";
$contenuto['url'] = "newsletter.php";
return $contenuto;
}elseif($pag == "link_pagina"){
$contenuto['titolo'] = "Gestione dei Links del Menu";
$contenuto['url'] = "link_pagina.php";
return $contenuto;
}elseif($pag == "pagina"){
$contenuto['titolo'] = "Gestione delle Pagine Aggiuntive";
$contenuto['url'] = "pagina.php";
return $contenuto;
}elseif($pag == "eventi"){
$contenuto['titolo'] = "Amministrazione Eventi e Commenti";
$contenuto['url'] = "eventi.php";
return $contenuto;
}elseif($pag == "ban_sito"){
$contenuto['titolo'] = "Banna dal Sito";
$contenuto['url'] = "ban_sito.php";
return $contenuto;
}else{
$contenuto['titolo'] = "Home Page";
$contenuto['url'] = "home.php";
return $contenuto;
}
}
?>
GRAZIE A TUTTI PER L'AIUTO!!