Fichier de session non créé

kinounet
Invité n'ayant pas de compte PHPfrance

29 janv. 2009, 13:19

Bonjour,

Sur un serveur windows équipé de apache 1.3.27 et php 4.3.0, lorsque je teste le stockage des variables de session, je constate qu'elles ne fonctionnent pas et ce parce que le fichier de session n'est pas créé.

Ce code fonctionne sur de nombreux serveurs, mais pas celui là, et je ne sais plus où diriger mes recherches. La seule chose qui me semble étrange, c'est que lorsqu'on crée un dossier vierge sur ce serveur, celui-ci est automatiquement coché en lecture seule grisée.

Extrait du fichier php.ini :
- register_globals = On
- session.save_handler = files
- session.save_path = "D:/tmp"

Je compte tout réinstaller...

Merci de votre aide.

François

Ps : voici le code : Fichier test4.php

Code : Tout sélectionner

<?php session_start(); error_reporting(E_ALL); echo "<b>Test 4 </b>"; echo "<a href=test5.php>Suivant</a>"; $_SESSION['ss_test'] = "test5"; ?>
fichier test5.php

Code : Tout sélectionner

<?php session_start(); error_reporting(E_ALL); if ($_SESSION['ss_test'] == "test5") echo "<b>Test 5 correct (variables de session)</b>"; else { echo "<b>Impossible de stocker les variables de session.</b>"; exit(); } ?>

Eléphant du PHP | 139 Messages

30 janv. 2009, 00:04

Enlève la ligne avant session_start() du fichier test5.php

Pas bien
<?php

session_start();
error_reporting(E_ALL);

if ($_SESSION['ss_test'] == "test5")
    echo "<b>Test 5 correct (variables de session)</b>";
else
{
    echo "<b>Impossible de stocker les variables de session.</b>";
    exit();
}

?>
Bien
<?php
session_start();
error_reporting(E_ALL);

if ($_SESSION['ss_test'] == "test5")
    echo "<b>Test 5 correct (variables de session)</b>";
else
{
    echo "<b>Impossible de stocker les variables de session.</b>";
    exit();
}

?>

ViPHP
ViPHP | 5924 Messages

30 janv. 2009, 01:15

Enlève la ligne avant session_start() du fichier test5.php
:shock:

Euh, c'est quoi ce conseil … ?
Le code va être plus joli avec une ligne en moins ?

Plus sérieusement, le dossier D:\tmp\ existe et est écrivible bien sûr ?

Eléphant du PHP | 139 Messages

30 janv. 2009, 02:06

Pan sur les doigts...aie
Désolé de ma bourde, j'ai mélangé les genres.

Avec session_start() il ne faut pas qu'il y ait d'espace avant le script.
La ligne : <?php session_start();?> doit être la première ligne.
Et dans le script, on s'en moque.

Merci d'avoir rectifié.

kinounet
Invité n'ayant pas de compte PHPfrance

30 janv. 2009, 11:02

Bonjour,

Pour répondre aux questions que vous me posez :
- Je ne pense pas que le pb vienne de session_start car ce code fonctionne sur plein d'autres postes (mais pas celui-ci...). Je veux bien faire la modif, mais je ne pense pas que ça modifie le résultat.

Pour moi, le pb est système et non sur le codage.
- le dossier D:\temp existe, mais sur ce serveur, si je clique sur propriétés de ce dossier, dans l'onglet général, il est coché lecture seule et grisé... Pour moi, c'est louche. je pense qu'il y a un paramétrage/protection sur ce serveur qui provoque des pb. On peut créer à la main des fichiers, les modifier et les supprimer, mais le système le peut t'il ?
- Autre détail : pour accéder au serveur, je suis sur un poste client et j'utilise (enfin le client m'a mis à disposition) dameware (ou un truc comme ça). Lorsque je veux ouvrir n'importe quel fichier (par double clic), il me propose de le télécharger. Je dois faire un clic droit / modifier pour ouvrir correctement le fichier sur le serveur...

C'est pas top tout ça...
A+

kinounet
Invité n'ayant pas de compte PHPfrance

30 janv. 2009, 11:05

Rectificatif : dossier d:\tmp...

ViPHP
ViPHP | 5924 Messages

30 janv. 2009, 11:26

Fait un script php qui va créer un fichier dans ce dossier et tu seras fixé…

kinounet
Invité n'ayant pas de compte PHPfrance

02 févr. 2009, 19:13

Ouf, c'est résolu, et merci de votre écoute.
Le problème était plus simple que ça, c'est une étourderie...

On modifiait le fichier php.ini qui se trouvait sous C:\Windows et non celui qui était regardé par apache (sous program files), du coup, rien n'était pris en compte, et du coup, plus rien n'était logique...

En gros, ça mettait les fichiers de sessions dans un emplacement qui n'existait pas.

Merci donc.