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!!