Je vais garder cela simple. Pourquoi appeler session_start()
en haut de mon script PHP, je reçois cette sortie en bas:session_start() provoque une erreur fatale
Fatal error: Exception thrown without a stack frame in Unknown on line 0
Que se passe-t-il?
EDIT: Quelques détails supplémentaires car j'ai isolé le problème plus loin.
index.php
(extrait):
<?php
session_start();
require_once('inc/database.php');
require_once('inc/gallery.php');
...
database.php
:
<?php
try {
$dsn = 'mysql:host=localhost;dbname=tees_db';
$pdo = new PDO($dsn, '[username removed]', '[password removed]');
}
catch (PDOException $e) {
header('HTTP/1.1 503 Service Unavailable');
die('There was an error connecting to the database.');
}
gallery.php
(extrait):
<?php
class Gallery {
private $pdo;
public function __construct() {
global $args, $pdo, $request;
$this->pdo = $pdo;
}
...
}
$gallery = new Gallery();
Le problème vient du j'essaie classe Gallery
quand et lui assigner global $pdo
variable en tant que propriété de classe. Pourquoi est-ce que cela causerait une erreur fatale quand $pdo
est juste une instance de PDO?
EDIT 2: J'ai trouvé la fermeture de mon navigateur et relancer (tuer la session) supprime l'erreur. L'erreur est uniquement déclenchée lorsque inc/confirm.php
est appelée.
inc/confirm.php
est un script utilisé dans la confirmation de plus de 18 ans. Le contenu est minimal:
session_start();
if (isset($_GET['mod'])) {
$mod = $_GET['mod'];
$_SESSION[$mod] = '1';
}
header('Location: '.$_SERVER['HTTP_REFERER']);
exit;
Comme vous pouvez le voir, enregistre simplement une clé dans le tableau $_SESSION
et redirige vers la page d'origine. Rien sur les exceptions ou les dés-constructeurs de classes là-dedans.
http://bugs.php.net/bug.php?id=33598? Êtes-vous sûr que c'est le session_start()? – n00b
Je n'ai pas de méthodes '__destruct', et encore moins d'exceptions jetées en une; et je l'ai isolé à l'appel 'session_start()' en le supprimant, ce qui supprime également l'erreur. –
mais si session_start échouait, l'erreur s'afficherait en haut de la page .... – n00b