Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Shop Recherche
1597 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] Besoin d'aide pour du code PHP

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PHP] Besoin d'aide pour du code PHP

n°1891409
lechateux
Posté le 04-06-2009 à 20:14:43  profilanswer
 

:hello:  
 
Actuellement en classe de Terminale STG GSI (Gestion des Systèmes d'Informations), j'ai un projet a réaliser et à présenter au BAC, cependant j'ai un petit problème : Je n'arrive pas à utiliser la variable de session afin de faire suivre un code (codeAgent). Voici ma première page d'authentification :
 

Code :
  1. <?php
  2.   session_start();
  3.   $_SESSION['connect']=0;
  4.  $Identifiant=$_POST['ident'];
  5.  $pass=$_POST['pwd'];
  6.     $db=mysql_connect("localhost","root","gsi" ) or die("erreur de connexion".mysql_error());
  7.  mysql_select_db("sncf",$db) or die("erreur de connexion à la base sncf" );
  8.  $sql="SELECT * FROM Agent WHERE Agent.code='$Identifiant' AND Agent.pwd='$pass'";
  9.  $requete = mysql_query($sql);
  10.   if (mysql_num_rows($requete) == 0)
  11.   {
  12. $_SESSION['connect']=0;
  13.     header("Location: proj.php" );
  14.   }
  15.  
  16.   else
  17.   {
  18.     $identifiant=$_POST['ident'];
  19. $_SESSION['connect']=1;
  20. header("Location: proj2.php" ); 
  21. $_SESSION['login']=$identifiant;
  22.   }
  23.    
  24.   ?>


 
J'ai bien mis la variable de session (en gras). Ensuite sur toute mes autres pages j'ai mis un session_start de ce type :
 

Code :
  1. <?php
  2. session_start();
  3. ?>


 
Ensuite il s'agit de rentrer cette variable dans une base de données (champ "codeAgent" de la table "formation" ) mais celui-ci ne se rentre pas .. Et quand je test la variable avec un echo, je n'ai rien en retour. Aucun message d'erreur avec Easy PHP.. Même mon prof ne comprends pas ..
 
La page qui effectue la requête d'insertion du codeAgent dans la page est la suivante :
 

Code :
  1. <?php // insertion formations dans la BDD
  2. session_start();
  3. $numeroSession=$_POST['numeroSession'];
  4. $db=mysql_connect("localhost", "root", "gsi" ) or die("erreur de connexion".mysql_error());
  5. mysql_select_db("sncf",$db) or die("erreur de connexion à la base sncf" );
  6. $sql="INSERT INTO formation (numeroSession, codeAgent) VALUES ('$numeroSession', '". $_SESSION['login'] . "')";
  7. mysql_query($sql);
  8. header("Location:Confirmation_formation.php" );
  9. mysql_close();
  10. ?>


 
Ce projet est un projet que je dois présenter au BAC jeudi prochain, et il faut qu'il soit fini pour dimanche soir. C'est pourquoi je fais appel à vous et je compte sur votre gentillesse pour tenter de m'aider ! Ceux qui veulent mon "projet" entier le voici : http://www.mediafire.com/?sharekey [...] f6e8ebb871
 
Il faut noter que sncf.txt est la Base de données (qui a été modifiée) :  
 
- Ajout des champs "pwd" et "email" dans la table AGENT (ALTER TABLE AGENT ADD pwd CHAR(20); / ALTER TABLE AGENT ADD email CHAR(20);)
- Ajout de la table formation avec 2 champs : "numeroSession" et "codeAgent"  Cette table a été rajoutée à l'aide d'easy PHP.
 
Merci à tous ce qui prendront un peu de temps pour me lire et tenter de m'aider :)


Message édité par lechateux le 04-06-2009 à 20:15:01

---------------
Mon feed back
mood
Publicité
Posté le 04-06-2009 à 20:14:43  profilanswer
 

n°1891410
jonas3
Posté le 04-06-2009 à 20:22:26  profilanswer
 

C'est quoi ca ? '$numeroSession'


---------------
http://petitjonas.blogspot.com/
n°1891416
lechateux
Posté le 04-06-2009 à 20:55:33  profilanswer
 

C'est le numéro saisi dans la page d'avant dans une case (il faut tout télécharger pour comprendre en fait ..) :/


---------------
Mon feed back
n°1891425
jonas3
Posté le 04-06-2009 à 21:17:02  profilanswer
 

ouai mais sauf que cest interprete comme un string et non comme une variable


---------------
http://petitjonas.blogspot.com/
n°1891433
lechateux
Posté le 04-06-2009 à 21:33:14  profilanswer
 

Oui j'avais une erreur à un moment du type blablabla STRING.. etc
Qu'es-ce que cela signifie ?


---------------
Mon feed back
n°1891635
macgawel
Posté le 05-06-2009 à 12:58:45  profilanswer
 

Tu devrais peut-être faire un echo $sql; à la place de ton mysql_query($sql);
Ca te permettrait de voir le contenu de ta requête. C'est un bon début...

n°1891649
rufo
Pas me confondre avec Lycos!
Posté le 05-06-2009 à 13:47:13  profilanswer
 

un truc tout con : la ligne 27 sert à rien vu qu'à la 26, tu fais un header("location..." ) :/


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Cantine Calandreta : http://sourceforge.net/projects/canteen-calandreta
n°1891659
guybrush02
Posté le 05-06-2009 à 14:25:01  profilanswer
 

Ce n'est pas parce qu'il y a une déclaration d'un entête HTTP que le code php qui suit ne s'exécute pas. Le code s'exécute jusqu'au bout, c'est uniquement les autres entêtes qui peuvent poser problème (notamment les implicites quand on echo qqchose).

 

Par contre, c'est sûr que ce n'est pas très logique l'ordre dans lequel ceci est réalisé :)

Message cité 1 fois
Message édité par guybrush02 le 05-06-2009 à 14:26:02
n°1891764
Profil sup​primé
Posté le 05-06-2009 à 17:14:42  answer
 

guybrush02 a écrit :

Ce n'est pas parce qu'il y a une déclaration d'un entête HTTP que le code php qui suit ne s'exécute pas. Le code s'exécute jusqu'au bout, c'est uniquement les autres entêtes qui peuvent poser problème (notamment les implicites quand on echo qqchose).  
 
Par contre, c'est sûr que ce n'est pas très logique l'ordre dans lequel ceci est réalisé :)


c'est d'ailleurs pour çà qu'il faut toujours faire suivre header('Location: ...'); d'exit() (et aussi au cas ou la modification des entêtes est impossible à cause d'un bug)

n°1891832
jonas3
Posté le 05-06-2009 à 22:17:11  profilanswer
 

si tu fais un echo apres un header location ca part dans le neant intersideral?


---------------
http://petitjonas.blogspot.com/
mood
Publicité
Posté le 05-06-2009 à 22:17:11  profilanswer
 

n°1891917
guybrush02
Posté le 06-06-2009 à 09:08:50  profilanswer
 

Soit ça, soit un "header already sent". Je ne sais plus...

n°1892014
jonas3
Posté le 06-06-2009 à 19:02:49  profilanswer
 

le header already sennt se passe quand tu envoie de l'html avant le header location non ?


---------------
http://petitjonas.blogspot.com/
n°1892017
Profil sup​primé
Posté le 06-06-2009 à 19:06:02  answer
 

oui, pas forcément de l'HTML, çà peut être n'importe quoi (même les caractères indésirables de l'utf 8 avec BOM), ou bien un saut de ligne, enfin, n'importe quelle sortie.

n°1892105
Antac
..
Posté le 07-06-2009 à 02:38:52  profilanswer
 

fais déjà un echo $sql pour voir déjà ce que tu as dedans


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] Besoin d'aide pour du code PHP

 

Sujets relatifs
Aide MAJ liste chainéeAIDE créer une page en INTRANET
[Résolu-BATCH] aide sur la commande for /f delims[Resolu]Code qui passe toujours dans le IF
[PHP] Client/serveur PHP et Ajaxaide pour un script
Compiler du code java existant avec MAVENProbleme Php - Base de donées - Wamp
Besoin d'aide pour un code PHPBesoin d'aide pour mon bout de code PHP
Plus de sujets relatifs à : [PHP] Besoin d'aide pour du code PHP


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR