Page 1 sur 1

affichage variable mozilla-IE

Posté : 12 mars 2009, 19:19
par graffx
Salut les gens,


j' ai un ultime souci, un peu comme en haut de se forum, si un membre n' est pas connecté, on voit un petit formulaire rapide (login-passe), si l' utilisateur est connecté on voit son pseudo + le lien se déconnecter.


Le tout fonctionne trés bien a un detail prés.

Sous mozilla, lorsqu' il se connecte, au lieu d' avoir "connecté : Pseudo", il a juste "connecté: ".

Cependant la connection est faite et tout fonctionne niveau espace membre.


Sous IE, je vois bien le pseudo " connecté : Pseudo".


Voici mon code tout ce qu' il y a de plus simple:

<?php
if(isset($_SESSION['pseudo']))
{

    echo 'connecté :';
	echo $_SESSION['pseudo'];
    echo '<a href="deconnexion.php">Deconnexion</a>';
}
else
{
   include('connect_fast.php'); //petit formulaire de connection

}
?>
Pour voir par vous meme sous mozilla :

http://mickael.piot1.free.fr/index.php?page=accueil


login : test passe : test


Merci de votre aide car je ne vois pas comment résoudre le souci si ca vient de mozilla, étant débutant....


Merci :roll:

Posté : 13 mars 2009, 11:38
par Ryle
C'est pour le moins surprenant que d'avoir une différence à ce niveau là entre les navigateurs... Il semblerait que sous firefox ta variable de session ne soit pas renseignée correctement.

Vérifies avec print_r() ou var_dump() que $_SESSION est correctement renseignée...

Est ce que par hasard tu utilises la variable $pseudo ? il se peut qu'elle t'écrase le contenu de $_SESSION['pseudo'] si l'option register_globals de ton serveur est active... mais elle devrait le faire également sur IE... peut être un soucis de header() ?

Dans tous les cas, commence par vérifier ce que contient $_SESSION et à partir de quand tu perds l'info sous FF, cela t'aidera à identifier la zone de code incriminée :)

Posté : 13 mars 2009, 20:46
par graffx
Arf je désésperais d' une réponse :lol: alors comm eje suis debutant, je vais t ' expliquer mes verifs et tu va me dire ce qui est bien ou pas .


J ' ai fait un print $pseudo > meme chose que echo $pseudo

j' ai meme fait un var_dump $pseudo :

sous FF : string (0) et sous IE : string (6)


j' ai meme fait

$pseudo = $_SESSION['pseudo']
$test = $pseudo

Pareil, visible sous IE uniquement.

J' ai trouvé un bug \o/

Bon, serieusement, mon bout de code est si simple, niveau debutant, que je ne comprend pas pourquoi ca tombe sur moi :lol:


PAr contre je ne comprend pas ta derniere phrase.

D' abord "peu etre un souci de header()", tu parles de la redirection? Non, j' utilise pas header() mais "<meta http-equiv="Refresh" content="3;URL=index.php?page=accueil">".


Et pour verifier ce que contient $_SESSION et a partir de quand je perd l' info? Je comprend pas ca :roll:


Cependant une chose me chiffone sur traitement_formulaire, la variable $pseudo n' est entourée que d' un seul point, et ca fonctionne quand je me logue. J' imagine que ca vient pas de la mais bon toute facon je sais plus ou chercher :)
echo '<center><img src="images/icones/info.png"/><br><br> Vous êtes maintenant connectés en tant que '.$pseudo;

Posté : 14 mars 2009, 11:22
par graffx
Personne n' aurait une facon de faire qui fonctionnerai a coup sur? Y' a tellement de sites qui ont un systeme ou le pseudo s' affiche si une session est ouverte :cry:

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

Posté : 14 mars 2009, 12:06
par Ryle
Alors pour le point, ne te tracasse pas, c'est normal ici qu'il n'y en ait qu'un. Le point sert à la concaténation des chaines (coller deux chaines ensemble pour n'en faire qu'une).

Donc aucun soucis de ce côté là. Montre nous plutôt le code du script qui récupère les données du formulaire quand l'utilisateur s'authentifie, et qui ajoute ses infos dans la session :)

C'est en effet le point de départ, on va vérifier si tu renseignes bien ta session, et on va pouvoir à partir de là vérifier sur chaque page que les valeurs sont toujours présentes. Ca nous permettra de vérifier à partir de quand FF perds l'information, et probablement du coup de comprendre pourquoi :)

Posté : 14 mars 2009, 12:26
par Aureusms
Hmmm je vais peut -être dire une bétises mais as tu bien activé les cookies sous FF ? (j'ai pas lu les précédents)

Posté : 14 mars 2009, 13:58
par graffx
Aureusms : c' est toujours sympa d' avoir une reponse, ca coute rien. En fait oui par defaut FF accepte tous els cookies chez moi, de plus jamais eu de souci de connexion nulle part.


Ryle: voilou:

<?php
mysql_connect("****", "****", "****");
mysql_select_db("mickaevf1");
$pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo']));
$passe = sha1(mysql_real_escape_string(htmlspecialchars($_POST['passe'])));
$quete = mysql_query('SELECT pseudo, passe FROM connexion WHERE pseudo="' . $pseudo . '"'); // Si possible, remplacer l'étoile par le nom de tous les champs voulus (ici, que "passe" apparement)
$nbre = mysql_num_rows($quete);
$donnees = mysql_fetch_assoc($quete);
if($nbre != 0) //si le pseudo existe
	if($passe == $donnees['passe'])
	{
		$_SESSION['pseudo'] = $pseudo;
		echo '<center><img src="images/icones/info.png"/><br><br> Vous êtes maintenant connectés en tant que '.$pseudo;
		echo '<br><br>Si vous ne voulez pas attendre, <a href="index.php?page=accueil">Cliquez-ici</a>.<meta http-equiv="Refresh" content="3;URL=index.php?page=accueil">';
	}
?>
Pas de souci, les identifiants sont volontairements faux.

Posté : 14 mars 2009, 14:27
par Ryle
Pas de souci, les identifiants sont volontairements faux.
Arf, bah j'étais pas allé au bout de ton message, j'ai dégagé les identifiants ;)

Y a pas de session_start() dans cette partie du code, il est bien présent plus haut ?
(et même question pour la page suivante où tu affiches le pseudo)

Posté : 14 mars 2009, 15:24
par graffx
oui je l' ai mis tout en haut de page pour eviter la fameuse erreur 'header already sent'.

Je l' ai aussi msi sur les pages restreintes.