OVH Community, votre nouvel espace communautaire.

Problème pour garder les sessions


Gaston_Phone
23/01/2012, 08h37
Autre piste utile : Clean_PHP_File.exe --> CMS - JOOMLA - Erreur « headers already sent » .

atomikado
23/01/2012, 07h49
Ok, le problème est résolu avec NotePad++ et encodage de la page en UTF8_8 (sans BOM)

http://www.alsacreations.com/astuce/...it-ilnbsp.html

Merci

sablier94
07/01/2012, 12h02
Bah j'utilisais justement Notepad++.

C'est claire que c'est mieux pour programmer des milliers de lignes mais pour faire juste une modification je vais privilégier le bloc-note Windows.

Et même le bloc-note peut provoquer des caractères spéciaux invisible suivant les cas.

Okinou
06/01/2012, 22h13
notepad++ pour la colorisation syntaxique ;o)

Gaston_Phone
05/01/2012, 21h51
Merci sablier94, tu amènes de l'eau à mon moulin : utiliser exclusivement le logiciel notepad.exe fourni en standard par Microsoft.

sablier94
05/01/2012, 21h45
Le problème des sesions dans l'url s'est également corrigé en passant tous les fichiers avec ce logiciel.

Sujet résolu. Encore merci.

Gaston_Phone
05/01/2012, 14h20
Citation Envoyé par sablier94
Il y avait des caractères invisibles dans les fichiers php. Nous avons utilisé ce logiciel pour les nettoyer : http://wordetweb.com/word-et-web/JOO...dy-sent-FR.htm. Il faut éditer les fichiers avec le bloc-notes Windows pour ne pas avoir de problème avec ces caractères.
Il s'agit du logiciel Clean_PHP_File.exe qui supprime efficacement les 3 caractères ajoutés au tout début des fichiers par certains éditeurs de texte.
Aussi, dans les environnements Windows, je conseille conseille d'utiliser exclusivement le logiciel notepad.exe fourni en standard par Microsoft.

Le téléchargement ce ce logiciel est accessible depuis l'adresse : Word-et-Web - Outils-gratuits.

sablier94
05/01/2012, 13h57
Le problème a été réglé avec l'aide de Gaston_Phone.

Il y avait des caractères invisibles dans les fichiers php. Nous avons utilisé ce logiciel pour les nettoyer : http://wordetweb.com/word-et-web/JOO...dy-sent-FR.htm. Il faut éditer les fichiers avec le bloc-notes Windows pour ne pas avoir de problème avec ces caractères.

Maintenant que je n'ai plus d'erreur, je vais voir comment cacher les sessions de l'url.

Merci beaucoup pour votre aide ! =)

sablier94
05/01/2012, 12h42
Répondu sur ton mail.

Gaston_Phone
05/01/2012, 11h07
@ sablier94 : J'ai mis un message sur ton profil.

sablier94
05/01/2012, 10h55
J'ai testé le htaccess et ça ne change rien.

J'ai remis l'encodage utf-8 sur la page de session_start(); car l'encodage avait été modifié (sûrement pas un de mes éditeurs de texte). Donc là on peut se connecter mais il y a toujours l'erreur :
Code PHP:
Warningsession_start() [function.session-start]: Cannot send session cookie headers already sent by (output started at /homez.184/uhcmonts/www/v2/index.php:1in /homez.184/uhcmonts/www/v2/bdd.php on line 1 
Et le ?PHPSESSID= est marqué en dur sur l'url alors que cela ne me le fait pas sous wamp. j'ai trouvé cette technique pour cacher la session mais la connexion ne fonctionne plus : http://www.developpez.net/forums/d25...ssid-chez-ovh/

Gaston_Phone
05/01/2012, 07h21
Citation Envoyé par sablier94
Ok je vais tester avec le .htaccess sur wamp.
Et ... alors ?

Gaston_Phone
05/01/2012, 07h17
Citation Envoyé par sablier94
L'erreur était quelque chose du genre : "Warning: Cannot modify header information - headers already sent by ..."
Cela signifie que au moins un caractère a déjà été envoyé dans le buffer de sortie.
Le session_start(); doit être placé au TOUT début du script php :
Code PHP:
session_start();
...
L'informatique, c'est comme une voiture, il faut passer un "permis".

Gaston_Phone
05/01/2012, 07h15
Citation Envoyé par sablier94
C'est le résultat d'une requête sur la bdd. La variable est bien initialisée sur la première page mais elle ne contient plus rien dès que l'on change de page.
Quel est le sérieux de cette enquête ?
Quel lien sur cette enquête ?

Sur le net, il y a des sites d'informations sérieuses et ... il y a des charlatans.

sablier94
04/01/2012, 23h58
@Okinou : désolé je n'avais pas vu ta réponse.

L'erreur était quelque chose du genre : "Warning: Cannot modify header information - headers already sent by ..."

Plusieurs postes parlaient de ça, je vais voir si je les retrouve.

sablier94
04/01/2012, 23h16
Où la variable $pseudo est-elle précédemment définie dans le script PHP ?
C'est le résultat d'une requête sur la bdd. La variable est bien initialisée sur la première page mais elle ne contient plus rien dès que l'on change de page.

Je n'ai rien vu sur la doc d'OVH mais dès qus je faisait un session_start() ça me disait qu'il avait déjà été appelé avant et j'ai vu plusieurs sujets qui disait qu'il n'y en avait pas besoin sur OVH. Et depuis que j'ai enlevé cette fonction, il n'y a plus d'erreurs.

Ok je vais tester avec le .htaccess sur wamp.

Merci de ton aide.

Okinou
04/01/2012, 22h41
il y'a toujours nécessité de mettre session_start() en tout début de page.
Quel est l'erreur retourné sur ta page une fois uploadé sur ovh ?
et +1 j'aimerais voir ou tu as vu que sur ovh il n'y a pas besoin d'utiliser session_start()

Gaston_Phone
04/01/2012, 21h46
Essaie en mettant dans le dossier www de WAMP sur ton micro au tout début du fichier .htaccess :

# Config de base a mettre au tout debut du fichier .htaccess
# --------------

Options -Indexes
Options -Multiviews
Options +FollowSymLinks
SetEnv REGISTER_GLOBALS 0
SetEnv PHP_VER 5
RewriteEngine On

Gaston_Phone
04/01/2012, 21h44
Citation Envoyé par sablier94
Voilà le code que j'utilise pour définir la variable (fonctionne en local) :
Code PHP:
$_SESSION['pseudo'] = stripslashes($pseudo); 
Où la variable $pseudo est-elle précédemment définie dans le script PHP ?

Gaston_Phone
04/01/2012, 21h42
Citation Envoyé par sablier94
A savoir je n'ai pas mis session_start() au début de mes pages car cela me mettait une erreur et j'ai vu qu'OVH fait qu'on a pas besoin de le mettre.
Peux-tu montrer le guide de OVH indiquant une pareille sornette ?

sablier94
04/01/2012, 19h20
Bonjour,

J'ai un problème avec l'espace membre de mon site puisqu'il fonctionne en local (avec wamp), mais pas sur mes hébergements OVH mutualisés.

J'utilise des sessions pour connecter les membres sur mon site et quand je lui affecte une valeur cela fonctionne mais dès que l'on change de page ça ne fonctionne plus, la variable est vide.

Voilà le code que j'utilise pour définir la variable (fonctionne en local) :
Code PHP:
$_SESSION['pseudo'] = stripslashes($pseudo); 
A savoir je n'ai pas mis session_start() au début de mes pages car cela me mettait une erreur et j'ai vu qu'OVH fait qu'on a pas besoin de le mettre.

Merci pour vos réponses.