dovrebbe essereCodice PHP:<?
php session_start();
è solo un errore di copia e incolla?Codice PHP:<?php
session_start();
Salve a tutti!
Ho un problema con __autoload ...
Dentro l'admin [nell'header] ho inserito questo:
Non funziona!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();
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:
Qualcuno sa aiutarmi? Credo sia un problema tra __autoload e sessioni ......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; } } ?>
Grazie!
Ultima modifica di Lapo; 22-02-2012 alle 11:25 Motivo: risolto
dovrebbe essereCodice PHP:<?
php session_start();
è solo un errore di copia e incolla?Codice PHP:<?php
session_start();
::::::::::::::::::::::::::
Claudio Garau
Seguimi su Twitter: @ClaudioGarau
Autore corsi Corso PHP - Creazione di siti dinamici,
Corso Linux - Guida completa al sistema open e
Corso MySQL - gestione del database open-source
Corso Java - Programmazione OOP in ambiente Java SUN
per Mrwcorsi.it
Siti
PHP, Linux and more :: La Via delle Arti Marziali
Esatto!
Soluzioni? :-)
Ultima modifica di Lapo; 21-02-2012 alle 23:37
ciao
prova a guardare
http://www.realizzazione-sito.info/g...agica_autoload
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 ...
ciao
ti da quelche errore?
se sì postalo, o cosa non funziona
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:
nell'header è incluso il login oltre alla grafica dell'header.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'); ?>
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");
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?
come puoi veder alla riga 3 del file utenti.php c'è un commento:
se lo decommento funziona tutto, il che dimostra che i percorsi sono corretti e la classe viene istanziata correttamente.Codice://require_once ('../classes/Utenti.php');
Il problema è sicuramente nella funzione autoload che funziona se non includo
Anche questo dimostra che autoload funziona correttamente .. entra in conflitto con i controlli di sessione.Codice:include("../login/check.php");
Non riesco a trovare nemmeno alcun commento via web sul problema
ci sto perdendo la testa ... :-)
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