Aide - Recherche - Membres - Calendrier
Version complète : Sessions et BD ne font pas bon ménage chez moi...
Forum Développeur - Administration serveur, programmation et base de données > Programmation > PHP
JF
Bonjour à tous,

j'ai un petit problème qui me cause plusieurs lignes d'erreurs.

QUOTE
Notice: Undefined index: id in c:\inetpub\wwwroot\gfl\adm\authentification.php on line 22
Notice: Undefined index: loginname in c:\inetpub\wwwroot\gfl\adm\authentification.php on line 24
Notice: Undefined index: password in c:\inetpub\wwwroot\gfl\adm\authentification.php on line 26

(...)

Notice: Undefined index: admrights in c:\inetpub\wwwroot\gfl\adm\authentification.php on line 50
Notice: Undefined index: modifrights in c:\inetpub\wwwroot\gfl\adm\authentification.php on line 52
Notice: Undefined index: id in c:\inetpub\wwwroot\gfl\adm\authentification.php on line 54


Je fais premièrement une requête SQL à ma table EQUIPEGFL puis je pousse mes données dans la variable $data. Mais je suis incapable de travailler avec cette dernière par la suite...

CODE
$sql_inserer_equipe = "SELECT ID,LOGINNAME,PASSWORD,PRENOM,NOM,COURRIEL,TELEPHONE,TELEPHONEEXT,TELECOPIEUR,CEL
LULAIRE,PHOTOPATH,EQUIPE,POSTE,STATUTAGENT,ADMRIGHTS,MODIFRIGHTS FROM EQUIPEGFL WHERE LOGINNAME = '".$_POST['loginname']."' AND PASSWORD = '".$_POST['password']."' AND ACTIF = 'Y'";

mysql_select_db($database_conn_gfl, $conn_gfl);

$result = mysql_query($sql_inserer_equipe, $conn_gfl) or die(mysql_error());

$data = mysql_fetch_array($result);

$nbresults = mysql_numrows($result);



Lorsque je tente d'assigner $data['id'] à ma variable $ss_id (que je veux enregistrer ensuite comme variable de session), ça me donne cette liste d'erreurs, pour chacun des champs de mon enregistrement que je tente d'insérer dans une variable.

Je vous joins le fichier authentification.php, ce qui contient le traitement (en fait, ce qui est fait jusqu'à présent). Sachez que la réception des données postées par le formulaire précédent, la connexion et la requête dans la BD se font correctement, sinon le script n'embarquerait pas dans ma condition (voir fichier ci-joint) et donc, n'afficherait pas ces erreurs.

Merci de votre aide!
manumanu17
Déja je dirais pour commencer que tu n'est pas obligé de faire
CODE
"select tous tes champs sql from .... "
: fais simplement
CODE
"select * from ..."

Puis, pour récupérer tes données des champs, ce sera
CODE
"$data["nomduchampenquestion"]..."
c'est moins long, plus simple et porte moins à erreur vu que ta requete sql donne pour résultat un tableau contenu dans la variable data.

Enfin c un truc du genre et de mémoire ... dis moi si ca marche mieux et si c clair
JF
En fait, le problème vient de la casse du nom de mes champs. Boichu l'a vu tout de suite!

Pour en revenir au SELECT *, il va me causer des problèmes de performance puisque tu fais deux requêtes au lieu d'une :

1) Tu vas chercher le nom des champs.
2) Ensuite, le contenu de ses champs.

Leçon durement apprise alors qu'un serveur Oracle ramait plus que d'habitude. Le p'tit nouveau avait changé tous les SELECT x,y,z par des SELECT *.

Maintenant, c'est mon problème de sessions qui apparaît de nouveau. Voici le message d'erreur qu'il me donne.

CODE
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


Voici ce que Rasmus Lerdorf dit de ceci : dans le fichier php.ini, on doit modifier les lignes session.bug_compat_42 et session.bug_compat_warn avec les valeurs suivantes :

CODE
session.bug_compat_42 = 1

session.bug_compat_warn = 0


Je vais tester demain matin... :wink:

QUOTE
Déja je dirais pour commencer que tu n'est pas obligé de faire
CODE
"select tous tes champs sql from .... "
: fais simplement
CODE
"select * from ..."

Puis, pour récupérer tes données des champs, ce sera
CODE
"$data["nomduchampenquestion"]..."
c'est moins long, plus simple et porte moins à erreur vu que ta requete sql donne pour résultat un tableau contenu dans la variable data.
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'informations, la mise en page et les images, veuillez cliquer ici.
Invision Power Board © 2001-2009 Invision Power Services, Inc.