Portail PHP

Forum de discussion et d'aide au php

Vous n'êtes pas identifié.

Annonce

Regles d'utilisation des forums : pensez à toujours les respecter si vous désirez obtenir des réponses rapides.
FAQ : pensez à toujours chercher dedans si la réponse à votre question est dedans.
Proposez vos news : si vous avez un evenement à annoncer
le chat : venez discuter de php.
 

#1 15-12-2004 04:26:18

Guest
Membre
Date d'inscription: 26-06-2004
Messages: 15
Site web

Problème de session

Bonjour à tous

J'ai fait un site avec un accès limité à l'aide de session. Mon problème, c'est que chez moi celà marche très bien, mais sur le serveur non. Il ne créer pas les fichiers de session alors que le serveur a déjà un site nuke qui utilise des sessions et le répertoire "sessiondata" contient bien les fichiers pour nuke. Le php.ini au niveau de la rubrique [Session] est identique à chez moi.

Dans chaque page j'ai inclus le code ci-dessous pour vérifier si une session existe grace à un enregistrement que je fais après être identifié.
Sur le serveur comme il ne crée pas la session j'ai le message ci-dessous.

Code:

<?php
session_start();
if(empty($_SESSION['truc'])) {
    die('Sorry, but you are not logged in or your session expired
    <a href="log.php">Click here to log in</a>');
}
?>

Je ne vois pas d'où vient le problème si quelqu'un à une idée.
Merci.

Hors ligne

 

#2 15-12-2004 08:29:59

Guest
Membre
Date d'inscription: 26-06-2004
Messages: 15
Site web

Re: Problème de session

indication complémentaire :
dans ma page login si l'identification est valide j'enregistre les informations que je veux garder lors de la navigation avec la commande suivante :

Code:

$_SESSION['log'] = $login;

Hors ligne

 

#3 15-12-2004 08:38:48

kazhar
Ex-Webmaster
Lieu: Orléans
Date d'inscription: 25-06-2004
Messages: 3380
Site web

Re: Problème de session

et si tu définis tes variables de session avec session_register() ca donne quoi ?

Hors ligne

 

#4 16-12-2004 08:39:23

Guest
Membre
Date d'inscription: 26-06-2004
Messages: 15
Site web

Re: Problème de session

J'ai essayé avec session_register()
donc j'ai remplacé

Code:

$_SESSION['log'] = $dat['login']

par

Code:

$log = $dat['login'];
session_register("log");

mais maintenant j'ai un message d'erreur qui apparaît lorsque je valide mon indentification et après je vais à ma page d'accueil.

Warning: Unknown(): Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively. in Unknown on line 0

A part çà, çà marche, du moins en local sur ma machine. Je vais essayer ce soir sur le serveur. Mais j'aimerais bien comprendre pourquoi j'ai ce message.

Hors ligne

 

#5 16-12-2004 09:08:07

kazhar
Ex-Webmaster
Lieu: Orléans
Date d'inscription: 25-06-2004
Messages: 3380
Site web

Re: Problème de session

la register_globals est desactivée

Si votre script utilise session_register(), il ne fonctionnera pas dans les environnements où register_globals est désactivée

par défaut, register_globals est a off depuis php 4.2.0 je suppose (et j'espere) que tu utilise une version superieure

si tu passe par une fonction, définis tes variables en GLOBALS avant de faire ton session_register

Code:

$GLOBALS['variable'] = $variable; 

Hors ligne

 

#6 16-12-2004 18:17:50

Guest
Membre
Date d'inscription: 26-06-2004
Messages: 15
Site web

Re: Problème de session

Tout d'abord merci pour ton aide KaZhaR  wink

Avec session_register() çà marche sur le serveur  big_smile
je ne sais pas la différence entre les 2 syntaxes mais bon.

J'ai activé register_globals et j'ai plus le message d'erreur lors de la première connection.

Oui j'utilise une version supérieur à php 4.20.0 j'avais une version 4.3.8 avant de le mettre à jour aujourd'hui par la version 4.3.10

J'en ai profité pour mettre à jour MySQL à la version 4.1.8

J'ai un autre petit problème de connexion avec la base sur ma machine depuis la mise à jour.
J'ai une page php de connexion à ma base de donnée avec un utilisateur que j'ai créé spécialement pour le site avec "MySQL Control Center" et qui n'a des droits que sur cette base.
Mon problème est que le mot de passe que j'ai défini pour l'utilisateur et que je j'utilise dans ma page de connexion ne marche plus ???
Quelque soit le mot de passe çà veut pas marcher.
Mais si je ne mets pas de mot de passe, çà marche.

Hors ligne

 

#7 16-12-2004 18:29:50

kazhar
Ex-Webmaster
Lieu: Orléans
Date d'inscription: 25-06-2004
Messages: 3380
Site web

Re: Problème de session

es-tu sur que ton script ne créé pas les utilisateurs juste pour lui, au lieu de les définir pour mysql ?

tu a essayé avec phpmyadmin ?

Hors ligne

 

#8 17-12-2004 17:39:23

Guest
Membre
Date d'inscription: 26-06-2004
Messages: 15
Site web

Re: Problème de session

Oui celà me crée bien un utilisateur
je le vois dans PhpMyAdmin je l'ai refait avec et c'est pareil. Je cherche l'erreur.
dans ma page de connexion j'ai le code suivant :

Code:

<?php 
// Paramètres persos
$host = "localhost";
$user = "truc"; 
$pass = "truc"; 
$bdd = "truc"; 

// connexion
@mysql_connect($host,$user,$pass)
   or die("Impossible de se connecter problème host, user ou password");
@mysql_select_db("$bdd")
   or die("Impossible de se connecter la base n'existe pas ou est erronée");
?>

J'ai découvert une erreur avec mes sessions pendant la navigation je perds des infos dans mes variables. J'en ai résolu une, c'est que j'utilisais le même nom de variable. Je ne savais pas que l'on les appelait par $nom

Ma seconde erreur est : Lorsque je passe l'identification, j'enregistre 3 variables et je vais à la page d'accueil.
Jusque là, c'est correcte
log|s:1:"3";pass|s:1:"4";right|s:1:"1";

Mais dès que je passe à une autre page je perds l'info de ma variable pass
log|s:1:"3";pass|s:0:"";right|s:1:"1";

Si je remplace le nom "pass" par "test" par exemple çà marche.
Je voulais savoir si le nom "pass" est une commande, car j'ai vérifié, et je n'ai pas d'autres variables de même nom dans mon code.

Hors ligne

 

#9 17-12-2004 17:42:29

kazhar
Ex-Webmaster
Lieu: Orléans
Date d'inscription: 25-06-2004
Messages: 3380
Site web

Re: Problème de session

si tes variables sont redéfinies, ca veut forcément dire que tu les redéfinit quelque part.

pour ton pbm mysql, essaye de rajouter un mysql_error() dans ton message de die pour la connection mysql, il te dira quel est le pbm  wink

Hors ligne

 

#10 18-12-2004 05:47:18

Guest
Membre
Date d'inscription: 26-06-2004
Messages: 15
Site web

Re: Problème de session

Bon j'ai modifié mon code pour utiliser mysql_error()

Code:

// connexion
mysql_connect($host,$user,$pass);
mysql_select_db("nom base");
    echo mysql_errno() . ": " . mysql_error(). "n";

et j'ai eu l'erreur suivante :
Warning: mysql_connect(): Client does not support authentication protocol requested by server; consider upgrading MySQL client in...

et j'ai trouvé une réponse sur le net

SUMMARY

Warning: mysql_connect(): Client does not support authentication protocol requested by server; consider upgrading MySQL client ...
Could not connect: Client does not support authentication protocol requested by server; consider upgrading MySQL client

INFORMATION

As of MySQL 4.1 there is a new authentication protocol. This authentication protocol is only supported by PHP 5 or higher.

So what you need to do is upgrade your PHP engine to PHP 5 or higher.

NOTE: We have found that PHP 5.0.2 (on Windows) comes with the 3.23.x client API. Try... PHP 5.0.3 for MySQL 4.1.x

Donc il faut que j'installe PHP 5 car il est le seul à supporter le nouveau protocol d'identification de MySQL 4.1.

Mais est-il stable car la dernière fois que que j'ai voulu installer une des premières versions PHP 5 mes pages PHP ne marchaient plus  sad

J'espère que cette info aidera d'autres qui auront ce problème et qu'ils ne savaient pas, maintenant ils sauront  lol

Pour mon prob de session je vais analyser çà.

Hors ligne

 

#11 18-12-2004 05:53:26

kazhar
Ex-Webmaster
Lieu: Orléans
Date d'inscription: 25-06-2004
Messages: 3380
Site web

Re: Problème de session

bien sur que PHP 5 est stable il ne serait pas sorti en version finale autrement

Hors ligne

 

#12 19-12-2004 06:57:40

Din
Membre
Date d'inscription: 18-12-2004
Messages: 23

Re: Problème de session

ok ok lol

J'ai installé PHP 5 ben mes pages marchées plus après car il faut faire quelques modifications dans le fichier php.ini  :?

modifier le chemin où se trouve les extensions dll
pour moi c'est le répertoire "ext"
extension_dir = "./ext"

enlever le ; pour pouvoir se connecter à mysql
extension=php_mysql.dll

J'ai résolu tous mes problèmes pour le moment lol merci encore pour ton aide KaZhaR

Je trouve très intéressant de recharger juste les infos qui changent sans recharger totalement la page, vu que je le fais sur quasi tout le site. J'aimerais savoir si c'est facile à mettre en place  ? Car j'ai regardé quelques sites et j'ai pas tout compris  sad . Je ne suis qu'un amateur en php et j'apprends sur le tas.

Hors ligne

 

#13 19-12-2004 07:06:41

kazhar
Ex-Webmaster
Lieu: Orléans
Date d'inscription: 25-06-2004
Messages: 3380
Site web

Re: Problème de session

PHP sans recharger la page

personnelement, j'ai pas eu le temps (ni la necessité) de me pencher sur la question
mais, ca peut être interessant

Hors ligne

 

#14 19-12-2004 07:20:57

Din
Membre
Date d'inscription: 18-12-2004
Messages: 23

Re: Problème de session

C'est sur ton site que j'ai vu que çà existait  lol
J'ai consulté déjà ces pages mais pour le moment ce n'est pas une nécessité donc je vais attendre pour qu'il y'est plus d'infos et des exemples pour m'aider.

Hors ligne