J'ai un problème lors de l'utilisation de simplexml_load_file et de vars de session en PHP. Donc, j'ai 2 fichiers PHP, l'un génère du XML et l'autre le lit. Le fichier XML qui génère devrait lire quelques _SESSION $ vars, qui avait été dans l'autre, mais il ne ...
Par exemple, disons que le premier fichier est quelque chose comme:
DOSSIER 1 (lit XML)
<?
session_start();
$_SESSION['test'] = 'test!!!';
echo '<b>In file 1</b><br />';
echo 'var = '.$_SESSION['test'].'<br />'; // This correctly outputs "test!!!"
echo '<b>Reading file 2</b><br />';
$xml = simplexml_load_file("http://www.someurl.com/2.php");
echo 'var = '.$xml['var']; // This does <b>NOT</b> output "test!!!"... why?
?>
2 fICHIER (génère XML)
<?
header('Content-type:application/xml');
session_start();
echo '<?xml version="1.0" encoding="utf-8"?>';
echo '<test>';
echo '<var>'.$_SESSION['test'].'</var>';
echo '</test>';
?>
La chose étrange est, si j'ouvrir le fichier directement 2, il ne sait ni lire $ _SESSION [ "test"]
choses que j'ai déjà essayé (et ne fonctionne pas)
Ne pas appeler session_start() dans le second fichier
Appel session_write_close() avant simplexml_load_file dans le premier fichier
Accéder au fichier en utilisant fsockopen au lieu de simplexml_load_file. Cela renvoie aussi une balise vide ... il est donc pas un problème avec simplexml_load_file ...
Je suis un peu d'idées ... quelqu'un peut-il aider?
Merci nico
Merci beaucoup Pascal! Je devais juste passer le session_id et cela a fait l'affaire! La seule chose à faire est que vous devez appeler session_write_close avant de lire le fichier ou que le script va juste expirer (je suppose que les fichiers de session sont protégés par read_protected pendant qu'ils sont utilisés) – nico
@nico: De rien :-) ;;; Oui, comme vous l'avez deviné, il existe un mécanisme de verrouillage en place lorsque vous utilisez des sessions basées sur des fichiers, donc deux scripts PHP différents n'essaient pas de travailler sur la même session en même temps - ce qui serait source de problèmes : lequel de ces scripts serait * "celui qui a raison" * quand il s'agit d'écrire les données de la session? –