Non funziona __autoload con le sessioni ...

Lapo

Nuovo Utente
21 Feb 2012
11
0
0
[RISOLTO] Non funziona __autoload con le sessioni ...

Salve a tutti!

Ho un problema con __autoload ...

Dentro l'admin [nell'header] ho inserito questo:

Codice:
//Autoload delle classi 
function __autoload($class_name)
 { 
 require_once ('classes/'.$class_name.'.php'); 
 }   

// Controllo l'utente loggato - questo deve essere presente in tutte le pagine dell'admin 
include("../login/check.php"); ......

$utenti=Utenti::getUtenti();

Non funziona!

Se sostituisco la funzione __autoload con:

require_once ('../classes/Utenti.php');

funziona! (quindi direi che non è un problema di percorsi).

Mi sono accorto che se elimino

include("../login/check.php");

funziona! [il problema è che non lo posso eliminare è il controllo sul login]

Per completezza riporto il file check.php:


Codice:
<?php 
session_start();   
if (!$_SESSION["nome"])  
 { 
 $msg= 6; 
 $destinazione = "../index.php?msg=".$msg; 
 echo '<script language=javascript>document.location.href="'.$destinazione.'"</script>'; 
 } 

//controllo sul tempo di inattività dell'utente 
 if ($_SESSION['secondi_inattivo']) 
 { 
 $secondi_inattivo=$_SESSION['secondi_inattivo']; 
 $start_session=$_SESSION['start_session']; 
 $adesso= time(); 
 $differenza=$adesso-$start_session;
 if ($differenza >$secondi_inattivo) 
  { 
  $msg= 5; 
  $destinazione = "../index.php?msg=".$msg; 
  echo '<script language=javascript>document.location.href="'.$destinazione.'"</script>'; 
  } 
 else 
  { 
  //si azzera il tempo di inattività a partire dalla richiesta appena eseguita 
  $_SESSION["start_session"] = $adesso; 
  } 
 } 
?>

Qualcuno sa aiutarmi? Credo sia un problema tra __autoload e sessioni ......

Grazie!
 
Ultima modifica:

Eliox

Utente Attivo
25 Feb 2005
4.390
3
0
PHP:
<?
php session_start();
dovrebbe essere
PHP:
<?php 
session_start();
è solo un errore di copia e incolla?
 

Lapo

Nuovo Utente
21 Feb 2012
11
0
0
Grazie per la risposta!

Ho già guardato le guide ed è tutto corretto.
Il problema è relativo al conflitto che si viene a creare con le sessioni.
Senza l'include del login la funzione è corretta e funziona .... il problema è che non posso eliminare l'include con relativi controlli ...
 

Lapo

Nuovo Utente
21 Feb 2012
11
0
0
Non trova la classe:
Fatal error: Class 'Utenti' not found in /Applications/MAMP/htdocs/filarete/utenti.php on line 5

la linea 5 è dove dichiaro la classe Utenti.

utenti.php:
Codice:
<?php
include("header/header.php");  
//require_once ('../classes/Utenti.php');
	
	$utenti=Utenti::getUtenti();

	$smarty = new Smarty_Ob;
	$smarty->assign('utenti', $utenti);
	$smarty->display('utenti.tpl');
?>

nell'header è incluso il login oltre alla grafica dell'header.

Ho già provato e l'unica cosa che gli da noia dentro l'header è:
Codice:
// Controllo l'utente loggato - questo deve essere presente in tutte le pagine dell'admin
include("../login/check.php");

...
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
visto cosi sembrerebbe che non trovi la classe nel file utenti.php, sei sicuro dei percorsi? e di avercela messa? non hai fatto un errore nei nomi (es.) uteti?
poi (non sono molto esperto di classi), ma una classe non dovrebbe essere istanziata prima di usarla? i nomi delle classi sono casesensitive o no?

$pinco = new Utenti(); o
$pinco = new utenti();

poi, l'unica cosa che vedo (almeno io) che ha a che fare con i percorsi o simile è la variabile
$destinazione
non è che la usi anche dopo quindi ti entra in conflitto?
 

Lapo

Nuovo Utente
21 Feb 2012
11
0
0
come puoi veder alla riga 3 del file utenti.php c'è un commento:

Codice:
//require_once ('../classes/Utenti.php');

se lo decommento funziona tutto, il che dimostra che i percorsi sono corretti e la classe viene istanziata correttamente.

Il problema è sicuramente nella funzione autoload che funziona se non includo

Codice:
include("../login/check.php");

Anche questo dimostra che autoload funziona correttamente .. entra in conflitto con i controlli di sessione.
Non riesco a trovare nemmeno alcun commento via web sul problema

ci sto perdendo la testa ... :)
 

Lapo

Nuovo Utente
21 Feb 2012
11
0
0
[risolto]

Sembra che il problema sia un baco nelle versioni precedenti alla versione PHP 5.3.4 dove è stato risolto!

Per maggiori informazioni:
https://bugs.php.net/bug.php?id=53141

Per quanto mi riguarda ho sostituito la funzione __autoload con spl_autoload_register come consiglia anche il manuale

function __autoload_libraries($class){
include_once ('../classes/'.$class.'.php');
}

spl_autoload_register('__autoload_libraries');


Grazie comunque dell'aiuto!!!
A presto
Lapo
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
scusate la mia gnuranza, ma aveo visto sul manuale php qello che ha scritto alex, ma non manca una parentesi chiusa? era così anche sul manuale
 
Discussioni simili
Autore Titolo Forum Risposte Data
F comando di inclusione file audio in I-Pad non funziona HTML e CSS 1
R jquery che cambia css di un elemento non mi funziona sulla pagina caricata da ajax Ajax 5
zorro CREATE TABLE non funziona PHP 6
P jquery refresh div non funziona Javascript 0
zorro modulo di registrazione: funziona ma non sempre PHP 2
T IP INFO NON FUNZIONA PHP 0
P Data scraping in PHP non funziona PHP 4
P Pagina modifica record che non funziona PHP 0
Shyson Codice wp-login non funziona PHP 2
R INSERT INTO tabella non funziona Classic ASP 2
F Script java elenco alfabetico non funziona Javascript 3
R Select concatenata che non funziona la seconda volta Ajax 3
A funzione iconv () non mi funziona PHP 4
D Alias AS non funziona più con DATE_FORMAT? MySQL 2
Alex_70 Button non funziona nella form PHP 2
Tommy03 Order by non funziona MySQL 6
D FPDF non funziona PHP 3
M Guestbook - non funziona dopo upgrade di PHP PHP 5
T script jquery non funziona più dopo il passaggio a MVC jQuery 5
F [Javascript] comando innerHTML non funziona Javascript 5
Max 1 [PHP] Script che funziona in locale e non online PHP 16
P [Joomla] Il mio iframe non funziona più Joomla 0
gandalf1959 [PHP] Inserimento di più righe non funziona come mi aspetto... PHP 2
felino [Windows 8.1] Windows Update non funziona correttamente Windows e Software 3
max1974 [Javascript] Grafico ajax non funziona Javascript 0
M [HTML] Picture Tag non funziona in header-Element HTML e CSS 0
A Libero mail non funziona Posta Elettronica 3
mferri Collegamento con xampp non funziona più da cambio di operatore. Web Server 2
L [HTML] Caricato sito sul server, ma non funziona con tutti i browser HTML e CSS 2
L Caricato sito sul server, ma non funziona con tutti i browser Presentati al Forum 1
I PHPMailer non funziona PHP 13
H [Photoshop] Filtro Nik Dfine non funziona. Photoshop 1
K Ipcam 4g e smartphone 4g non funziona IP Cam e Videosorveglianza 4
M [RISOLTO]Windows media player non mi funziona più su win 10 pro 64 bit Windows e Software 2
F [MS Access] VBA non funziona più MS Access 2
A [Photoshop] Tavoletta grafica Huion non funziona con PS CS6 Photoshop 2
V Creare tabella mysql con php non funziona PHP 1
Koboshi [Javascript] Carico sul server e non funziona più. Javascript 4
Koboshi [HTML] Line-height non funziona ç_ç HTML e CSS 3
V [PHP] Perché non funziona ? PHP 1
I [CSS] Galleria immagini non funziona HTML e CSS 12
paloppa [Javascript] Mindate non funziona Javascript 0
G [PHP] ini_set() non funziona PHP 4
X [PHP] campi obbligatori multiupload non funziona PHP 6
K [Visual Basic] Stampa e modifica record non funziona più Visual Basic 0
otto9due .detach().appendTo(..) Perchè non funziona? jQuery 1
ken_korn [Javascript][Risolto] browser.tab.Tabs.favIconUrl non funziona Javascript 5
bubino8 [PHP] split con ajax non funziona PHP 7
G [HTML] Visualizzare iframe in un blog non funziona sempre xchė? HTML e CSS 3
alessandroz Select ... where... AND... aggiornamento PHP non funziona PHP 9

Discussioni simili