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

  FORUM HardWare.fr
  Programmation
  PHP

  comment faire passer des variables de page en page?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

comment faire passer des variables de page en page?

n°1294602
skraper
Posté le 30-01-2006 à 12:41:45  profilanswer
 

Salut tout le monde,
alors voilà, j'ai un chtio problème, je dois faire un classement pour un quiz, pour voir ou participer au classement l'utilisateur doit être enregistré.
L'enregistrement se fait sur la page de résultat du quiz.
L'utilisateur entre un login et un pass.
Je voudrais pouvoir updater la table user en fonction de son login, mais celà ne fonctionne pas.
Le code se présente comme ça :
 

Code :
  1. code :
  2. ?>
  3.              <form action="res_geo.php" method="post">
  4. Login : <input type="text" name="login" value="<?php if (isset($_POST['login'])) echo stripslashes(htmlentities(trim($_POST['login']))); ?>">
  5. Mot de passe : <input type="password" name="pass" value="<?php if (isset($_POST['pass'])) echo stripslashes(htmlentities(trim($_POST['pass']))); ?>">
  6. <input type="submit" name="connexion" value="Connexion">
  7. </form>
  8. <?php
  9.              if (isset($_POST['connexion']) && $_POST['connexion'] == 'Connexion') {
  10.              if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass']))) {
  11.         include("connect.php" );
  12.        
  13.         $sql = 'SELECT count(*) FROM forum_users WHERE username="'.addslashes($_POST['login']).'" AND user_password="'.md5(addslashes($_POST['pass'])).'"';
  14.         $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
  15.         $data = mysql_fetch_array($req);
  16.         mysql_free_result($req);
  17.         mysql_close();
  18.         if ($data[0] == 1) {
  19.                    session_start();
  20.                    $_SESSION['login']=$_POST['login'];
  21.                    header('Location: classement_geo.php');
  22.                    session_register('login');
  23.             exit();
  24.         }
  25.         elseif ($data[0] == 0) {
  26.             include("non_enreg.php" );
  27.         }
  28.     }
  29.     else {
  30.         $erreur = 'Au moins un des champs est vide.';
  31.     }
  32. }


 
A quel endroit pourrias-je placer ma requête? je n'y arrive pas du tout!
Je pensais la placer dans la page classement_geo.php(celle qui suit lorsque le log est bon), mais je n'arrive pas a conserver^$login entre les deux pages.
Merci de votre aide car la je galère dur!!


Message édité par skraper le 30-01-2006 à 14:20:10
mood
Publicité
Posté le 30-01-2006 à 12:41:45  profilanswer
 

n°1294605
omega2
Posté le 30-01-2006 à 12:47:41  profilanswer
 

Utilises donc le bouton http://forum-images.hardware.fr/icones/message/c.gif pour encadrer ton code.
Là, ca donne pas envie de lire alors mets ton code entre balise [cpp] (suffit d'utiliser le bouton) et j'y jéterais un oeuil.


Message édité par omega2 le 30-01-2006 à 12:48:02
n°1294763
skraper
Posté le 30-01-2006 à 14:20:22  profilanswer
 

voilà c'est fait

n°1294781
omega2
Posté le 30-01-2006 à 14:35:52  profilanswer
 

Code :
  1. header('Location: classement_geo.php');


Ce qui veut dire que le traitement de la page continu tel quel sans se préocuper du fichier "classement_geo.php" et que le navigateur de son côté demandera au serveur de traiter le dit fichier sans lui passer aucune variable. C'est donc normal que la page "classement_geo.php" ne conaisse pas les variables de l'ancienne page.
 
Donc soit tu fais un include soit tu mets tes variables en "session" soit tu les passes par l'adresse. C'est les trois solutions les plus simple pour que "classement_geo.php" recoive la variable "$login".

n°1294793
skraper
Posté le 30-01-2006 à 14:45:25  profilanswer
 

me dit que la session est deja ouverte!!

n°1295076
Djebel1
Nul professionnel
Posté le 30-01-2006 à 18:22:25  profilanswer
 

c'est quoi ton message d'erreur exact ?

n°1295296
skraper
Posté le 31-01-2006 à 09:11:54  profilanswer
 

A session had already been started - ignoring session_start() in c:\program files\easyphp1-7\www\ecocyclette\class_geo.php on line 3

n°1295316
skraper
Posté le 31-01-2006 à 09:52:21  profilanswer
 

maintenant j'ai ça! y'a rien à comprendre! Warning: session_start(): Cannot send session cookie - headers already sent by (output started at c:\program files\easyphp1-7\www\ecocyclette\arborescence.php:41) in c:\program files\easyphp1-7\www\ecocyclette\class_geo.php on line 2
 
Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at c:\program files\easyphp1-7\www\ecocyclette\arborescence.php:41) in c:\program files\easyphp1-7\www\ecocyclette\class_geo.php on line 2

n°1295334
darkendorf
Posté le 31-01-2006 à 10:46:52  profilanswer
 

un header et une redirection. il suppose qu'aucune information n'a quitté le serveur en direction du client (qui appelle la page donc).
 
lorsque toi tu y fais appel, tu as déjà envoyé au client un formulaire, et donc un entête avec (titre de la page, langue, charset, etc...) et donc ça cause un problème : il n'a pas finit d'afficher, et tu lui dit d'aller voir ailleur...
 
ps : header envoie les informations d'entête pour la page fournie en paramètre, quand il y a déjà les info cela crée des doublons et pouf !! plantage ;)


Message édité par darkendorf le 31-01-2006 à 10:48:31
n°1295358
skraper
Posté le 31-01-2006 à 11:13:48  profilanswer
 

Comment je peux faire alors, je n'arrive pas a toruver la solution du problème!

mood
Publicité
Posté le 31-01-2006 à 11:13:48  profilanswer
 

n°1295362
darkendorf
Posté le 31-01-2006 à 11:19:02  profilanswer
 

en début de page, avant même ta balise <html tu insère ton test if (isset($_POST['connexion'])...
 
s'il n'est pas connecté : tu redirige, sinon tu continue l'affichage.

n°1295471
skraper
Posté le 31-01-2006 à 13:04:49  profilanswer
 

je te mets le code, car je ne vois pas ce que tu veux dire, si tu pouvais m'en dire plus :  
page res_geo.php :  

Code :
  1. code :
  2. if (isset($_POST['connexion']) && $_POST['connexion'] == 'Connexion') {
  3.               if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass']))) {
  4.               include("connect.php" );
  5.               $sql = 'SELECT count(*) FROM forum_users WHERE username="'.addslashes($_POST['login']).'" AND user_password="'.md5(addslashes($_POST['pass'])).'"';
  6.               $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
  7.               $data = mysql_fetch_array($req);
  8.        
  9.             mysql_free_result($req);
  10.        
  11.             if ($data[0] == 1) {
  12.                session_start();
  13.                $_SESSION['login'] = $_POST['login'];
  14.                $login=$_SESSION['login'];
  15.                mysql_query("update 'forum_users' set totpoints= 2 where username= '$login'" );
  16.                exit();
  17.         }
  18.         elseif ($data[0] == 0) {
  19.             include("non_enreg.php" );;
  20.         }
  21.         else {
  22.             include("non_enreg.php" );
  23.         }
  24.     }
  25.     else {
  26.         $erreur = 'Au moins un des champs est vide.';
  27.     }
  28.     mysql_close();
  29. }
  30. ?>
  31.              <form action="classement_geo.php" method="post">
  32. Login : <input type="text" name="login" value="<?php if (isset($_POST['login'])) echo stripslashes(htmlentities(trim($_POST['login']))); ?>">
  33. Mot de passe : <input type="password" name="pass" size=10 value="<?php if (isset($_POST['pass'])) echo stripslashes(htmlentities(trim($_POST['pass']))); ?>">
  34. <input type="submit" name="connexion" value="Connexion">
  35. </form>
  36. <?php


Page class_geo.php :  
 

Code :
  1. code :
  2. <?php
  3.      session_start();
  4.      $login=$_SESSION['login'];
  5.      include("connect.php" );
  6.      mysql_query("update 'forum_users' set totpoints= 2 where username= '$login'" );
  7.      exit();
  8. echo "<center><font face =\"comic sans ms\"><font color=\"#4058d2\"><font size = 3>";
  9. if(isset($_GET['quizz'])){ $quizz = $_GET['quizz']; }
  10. else { $quizz = '0'; }
  11. $query = mysql_query("select quiz_aff_classement from `quiz_index` where `quiz_id` = '$quizz'" );
  12. while ($row = mysql_fetch_row($query)) { $afficherclassement = $row[0]; }
  13. if(isset($afficherclassement) and $afficherclassement == 'oui'){
  14.     $i = 0;
  15.     $j = '-1';
  16.     $query = mysql_query("select username, totpoints from forum_users order by totpoints desc;" );
  17.     while ($row = mysql_fetch_row($query)) {
  18.         if($row[1] != $j) { $i++; }
  19.         $row[0] = str_replace('<', '', $row[0]);
  20.         echo $i.' = '.$row[0].' avec '.$row[1].' points<br />';
  21.         $j = $row[1];
  22.     }
  23. }
  24. else {
  25.     echo 'Vous n\'êtes pas autorisé à consulter le classement de ce quizz';
  26. echo"</center></font></font></font>";
  27. mysql_close();
  28. }
  29. ?>


Merci de ton aide


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

  comment faire passer des variables de page en page?

 

Sujets relatifs
Page d'accés aux données Access / WebChargement d'une page...
Integration d'une page html dans une autre page html[ XML - XSL ] Probleme avec mes Pieds de page...
[resolu] transmission de variables à un CSS via PHPAtteindre un chapitre specifique d une autre page
include file: Comment appeler la page en cours?????actualisation page
[PHP] méthodologie pour passer des variables d'une page a l'autre[PHP] juste faire passer des variables d'une page a une autre....
Plus de sujets relatifs à : comment faire passer des variables de page en page?


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