Forum Clubic

PHP et sessions

Bonjour,
Je me tape la tête pour savoir quelles sont les fonctions obsolètes et ceux qui ne le sont pas pour gérer les session en PHP !
Je cherche à faire le truc le plus simple possible (vérification qu’une session existe pour accèder aux pages)…
Petite difficulté : j’utilise de l’ajax. certains fichiers PHP sont chargés par ajax pour rafraichir le contenu d’une division. Dans une optique de sécurité je dois tester si la session existe pour éviter qu’une personne affiche se fichier en tapant directement son adresse… Si je fais un session_start, j’ai le warning (normal) trucmuche already sent…
Merci pour votre aide !

Pour le warning, c’est que tu dois envoyer des données avant.

Sinon qu’entends tu par obsolète?

A priori, session_register() peut se remplacer par $_SESSION[‘x’], etc.

(cf. http://www.php.net/manual/en/function.session-register.php )

Salut,
En fait j’avais une page “main.php” avec un include d’une autre page PHP correspondant au contenu qui est à même de changer. Ce contenu est ensuite rafraichi par de l’ajax selon les interactions de l’utilisateur (la page complète, “main.php”, n’est jamais rechargée). Pour éviter qu’un internaute ne s’ayant pas identifié tape directement les noms des fichier PHP de contenu je dois vérifier si la session est enregistrée en tête de ces fichiers. Pour celà je passe par un session_start(). J’avais le warning seulement au premier chargement puisque j’utilisai un include. J’ai supprimé l’include en le remplacant par l’appel de ma fonction ajax permettant de rafraichir le contenu au chargement de la page ("<body onload=‘mafonctionajax’") et ça passe puisque ajax interprete le contenu comme une page à part entière.
En ce qui concerne les sessions en PHP j’avais entendu dire et j’ai vu que pour des raison de sécurité certaines fonctions n’étaient plus à utiliser mais ça reste flou… Finalement j’ai opté pour le principe : suivant :
session_start();
Ouverture de session : $_SESSION[“ID”] = $ID;
Fermeture : session_destroy(); et session_unset();

J’ai néamoins un autre problème…
Ma vérification de session se fait grace à un fichier “session.php” inclu en tête de chaque fichier. Le voici :
<?php
session_start();
if(!isset($_SESSION[“ID”]))
{
session_destroy();
session_unset();
?>
<script>
document.location=“index.php”;
exit();
</script>
<?php } ?>
J’ai testé localement mon site : il marche avec firefox et IE7… Une fois uploadé il ne fonctionne plus avec IE7 (pas étonnant)… Lorsque la session est enregistrée je suis automatiquement dirigé vers mon “main.php”. Celui-ci comporte en entête le fichier “session.php”. IE7 ne semble pas reconnaitre que la session à été enregistrée alors qu’il le fait très bien localement !..

IE est un éternel mystère…

éventuellement, c’est un problème de cookie.