ok, forse sarà più chiaro se mi spiego col codice, è che non si tratta di una pagina ...
questa è la pagina che visualizza l'editor, articoli.php:
Codice PHP:
<?php
if (file_exists("../Conf/session.conf.php")){
include_once ("../Conf/session.conf.php");//funzioni per le sessioni
} else {
die ("Impossibile aprire la pagina. ");
}
controlPageRestricted();//funzione che protegge la pagina.
?>
<script language="javascript" type="text/javascript" src="js/tinymce/jscripts/tiny_mce/tiny_mce.js"></script>
<script language="javascript" type="text/javascript">
tinyMCE.init({
mode : "textareas"
});
</script>
</head>
<body>
<form method="post" action="getTextPage.php">
<textarea name="content" cols="50" rows="15"></textarea>
<input type="submit" value="Save" />
</form>
una stupidissima pagina per vedere se il testo arriva alla pagina dell'action, getTextPage.php:
Codice PHP:
<?php
if (file_exists("../Conf/session.conf.php")){
include_once ("../Conf/session.conf.php");
} else {
die ("Impossibile aprire la pagina. ");
}
controlPageRestricted();
//stampe a video di test:
echo $_POST['content'];//test check editor
echo $_SESSION['user_id'];//test check sessione
echo $_SESSION['username'];
?>
pagina delle funzioni per la gestione sessioni, session.conf.php:
Codice PHP:
<?php
ini_set('session.use_cookies',1);
ini_set('session.use_only_cookies',1);
ob_start();
session_start();
function controlPageRestricted(){//protegge le pagine riservate
if (!isset($_SESSION['user_id']) || (!$_SESSION['user_id']) ||
(!isset($_SESSION['username'])) || (!$_SESSION['username']) ||
($_SESSION['user_ip']) != ($_SERVER['REMOTE_ADDR'])) {
header('Location: http://localhost/StreetHeritage.copia/index.php?page=login');
exit();
} else {
return true;
}
}
function controlPage(){//controlla se l'utente è loggato nelle pagine pubbliche
if (!isset($_SESSION['user_id']) || (!$_SESSION['user_id']) ||
(!isset($_SESSION['username'])) || (!$_SESSION['username']) ||
($_SESSION['user_ip']) != ($_SERVER['REMOTE_ADDR'])){
return false;
} else {
return true;
}
}
function logOut(){
session_start();
$_SESSION = array();
session_destroy();
echo "<div id='logout'><img src='http://localhost/StreetHeritage.copia/Img/logOut.png'/></div>";
}
?>
Gia che ci siamo, il metodo checkLogin() della classe Login ... se può aiutare, estratto da user.inc.php :
Codice PHP:
function checkLogin(){
$DbTable = $this->DbTable;
foreach ($this->arrData as $key=>$value);
//creo delle variabili contenenti i dati da inserire nel database
$this->username = $this->arrData['username'];
$this->password = sha1($this->arrData['password']);
$this->strSQL = "SELECT * FROM $DbTable WHERE username = '$this->username' and password = '$this->password' and active = TRUE";
$this->Database->sqlQuery($this->strSQL);
$this->Database->numRows();
if ($this->Database->numRows() == 1) {
$userArray = $this->Database->fetchArray();
$_SESSION['user_id'] = $userArray['id'];
$_SESSION['username'] = $userArray['username'];
$_SESSION['user_ip'] = $_SERVER["REMOTE_ADDR"];
return true;
} else {
echo "Login errato.<br /> ";
$array = $this->Database->fetchArray();
if ($array['username'] != $username) echo "Username non corretto.<br />";
if ($array['password'] != $password) echo "Password non corretta.<br /> ";
$this->Database->close();
return false;
exit;
}
}
Gli script Articoli.php e getTextPage.php funzionano perfettamente separati dal sito, ovvero senza nessun tipo di inclusione di funzioni e metodi esterni, slegati da login e sessioni. Ovvero : l'editor non perde il testo se si preme il tasto indietro del browser oppure se si preme aggiorna, sempre nel browser (mi riferisco a FF) . Se inserisco l'editor in questo tipo di struttura accade che :
l'editor è visualizzato e funziona, le sessioni e le pagine protette funzionano, ma quando scrivo nella textarea dell'editor se per caso mando indietro la pagina dal browser o se la aggiorno mi scompare il testo. Non riesco a capire dove stia l'errore, se nella struttura del sito, se devo solo aggiungere qualcosa di DHTML, o forse AJAX... oppure se faccio errori nelle session php o chissà cos'altro.
Spero possiate aituarmi , vi ringrazio in anticipo.