comment passer un paramettre à la 3eme page, je nai pas pu le passer avec $_POST

Petit nouveau ! | 9 Messages

14 avr. 2009, 10:34

Bonjour,
bjr
j'ai 3fichiers

je fait l'authentification puis elle s'affiche la page filiere.php et quand je choisi une filiere normalement il affiche ce que j'ai traité dans la page ajaxiinfo_list.php, il l'affiche dans la page filiere.php

dans ce fichier j'ai fait

Code : Tout sélectionner

<? echo $code_ens; ?>
mais il m'aafiche cette erreur: Notice: Undefined index: code_ens in c:\www\gad\ajaxinfo_list.php on line 10/B/COLOR


1er: gad_aut_prof.php //authentification

Code : Tout sélectionner

<? session_start() ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>التسيير الآلي للفروض </title> <style type="text/css"> <!-- .s1 { font-family: Arial, Helvetica, sans-serif; font-size: 18px; font-style: normal; line-height: normal; font-weight: bold; color: #800000; } body { background-image: url(fond2.jpg); } .s2 { font-size: 16px; font-style: normal; line-height: normal; font-weight: bold; color: #FFFF00; } .Style4 { color: #800000; font-weight: bold; } .Style5 {font-size: 18px} .Style6 {color: #800000; font-weight: bold; font-size: 18px; } .Style9 {font-family: Arial, Helvetica, sans-serif; font-size: 18px; font-style: normal; line-height: normal; font-weight: bold; color: #FFF3E8; } .Style10 {font-size: 24px} --> </style> </head> <body> <form name="form1" method="post" action='filiere.php'> <p align="right"> </p> <p> </p> <p> </p> <p> </p> <table width="377" border="1" align="center" bgcolor="#FFF3E8"> <tr background="Image/bouton_col.jpg"> <th height="61" background="Image/bouton_col.jpg" scope="row"><p class="Style10"> الدخول بصفة أستاذ </p> </th> </tr> <tr> <th height="215" scope="row"><p> <input name="code_ens" type="text" id="code_ens" size="20" /> <span class="Style4 Style5">: إسم المستخدم </span> </p> <div align="right" class="Style4 Style5"></div> <p> <input name="password" type="password" id="password" size="10" maxlength="10" /> <span class="Style6">: كلمة المرور </span></p> <p> </p> <p> <input name="effac" type="reset" class="s1" value=" مسح " /> <span class="Style9"> ااااااااااااااا </span> <input name="confirm" type="submit" class="s1" value=" تأكيد " /> </p> </th> </tr> </table> <p> </p> <div align="center"><!--début du lien vers ImaGimp --> <a href="http://imagimp.free.fr" target="_blank"></a> <!--fin du lien vers ImaGimp --> </div> <p align="center"> </p> </form> </body> </html>
le 2eme: filiere.php

Code : Tout sélectionner

<?php require_once('connexion.php'); global $code_ens; ?> <html> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <style type="text/css"> <!-- .Style1 { color: #990000; font-weight: bold; font-size: 18px; } .Style2 { color: #000066; font-weight: bold; } .Style4 {color: #990000} .Style5 { color: #990000; font-weight: bold; font-size: 18px; } .Style11 { color: #000099; font-weight: bold; } .Style15 { color: #006600; font-weight: bold; } body { background-color: #000099; } --> </style> <head> <?php ?> <title>My webpage is rich</title> <script type='text/javascript'> function getXhr(){ var xhr = null; if(window.XMLHttpRequest){ // Firefox et autres xhr = new XMLHttpRequest(); } else if(window.ActiveXObject){ // Internet Explorer try { xhr = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { xhr = new ActiveXObject("Microsoft.XMLHTTP"); } } else { // XMLHttpRequest non supporté par le navigateur alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); xhr = false; } return xhr; } /** * Méthode qui sera appelée sur le click du bouton */ function change(){ var xhr = getXhr(); // On défini ce qu'on va faire quand on aura la réponse xhr.onreadystatechange = function(){ // On ne fait quelque chose que si on a tout reçu et que le serveur est ok if(xhr.readyState == 4 && xhr.status == 200){ di = document.getElementById('info'); di.innerHTML = xhr.responseText; } } // Ici on va voir comment faire du post xhr.open("POST","ajaxinfo_list.php",true); // ne pas oublier ça pour le post xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); // ne pas oublier de poster les arguments idfiliere = document.getElementById('filiere').options[document.getElementById('filiere').selectedIndex].value; xhr.send("idfiliere="+idfiliere); } </script> </head> <body> <form name="form1" id="form1"> <div align="right"> </div> liste des filieres <fieldset style= "background-color:#FFFFFF" "width:810px" align="center" ><table width="211" border="0" align="center" dir="rtl"> <tr class="Style11"> <th width="205" height="53" scope="row"><label><span class="Style2"> <input name="code_ens" type="hidden" id="code_ens" value="<? echo $_POST['code_ens']; ?>" /> <input name="password" type="hidden" id="password" value="<? echo $_POST['password']; ?>" /> filiere</span></label> <select name='filiere' id='select' onChange='change()'> <option value='-1'>اختيار شعبة</option> <?php $res = mysql_query("SELECT * FROM filieres ORDER BY code_fil"); while($row = mysql_fetch_assoc($res)){ echo "<option value='".$row["code_fil"]."'>".$row["nom_fil"]."</option>"; } ?> </select></th> </tr> <?php $code_ens=$_POST['code_ens']; if(isset($_REQUEST["idfiliere"])) { //echo $_REQUEST["idfiliere"]; echo substr($_REQUEST["idfiliere"],0,1); echo $code_ens; echo $code_ens; } ?> </table> <label class="Style2"></label> <div id='daira1' style='display:inline'> </div> <label class="Style2"></label><div id='commune1' style='display:inline'> </div> <label class="Style2"></label><div id='lycee1' style='display:inline'></div> <p> </fieldset> </p> </form> <div id='info'></div> </body> </html>
et le 3eme: ajaxinfo_list.php

Code : Tout sélectionner

<?php require_once('connexion.php'); ?> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <? if(isset($_REQUEST["idfiliere"])) { //echo $_REQUEST["idfiliere"]; echo substr($_REQUEST["idfiliere"],0,1); $code_ens=$_POST['code_ens']; echo $code_ens; $dossier='Gad_prof_rep/'.substr($code_ens,0,1).'/'.$_REQUEST["idfiliere"].'/'.substr($code_ens,1,4).'/'.'/';} echo $dossier; ?> </p> <input name="code_ens" type="hidden" id="code_ens" value="<? echo $_POST['code_ens']; ?>" /> <input name="password" type="hidden" id="password" value="<? echo $_POST['password']; ?>" /> <p><br> </p> <p> </p> </div>
comment le faire passer à la 3eme page, impossible de le passer avec $_POST,[/code][/php]

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

14 avr. 2009, 10:40

soit tu le passes en hidden si tu utilises des formulaires sur chacune de tes pages
soit tu le stockes dans une variable de session

Petit nouveau ! | 9 Messages

14 avr. 2009, 15:58

Merci de m'avoir répondre

type hiden (champs caché) ça n'a pas marché svp pouvez vous m'expliquer comment utiliser $_SESSION ?merci bcp

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

14 avr. 2009, 16:03


Mammouth du PHP | 661 Messages

14 avr. 2009, 23:26

@albat ::

ma question n'as probablement rien a voir, mais peux t'on récupérer dans une page apellée en ajax une variable de séssion créée à l'orginigine de l'affichage de la pgae et modifiée par une page intermédiaire, appelée elle aussi, en ajax

- pge.php => création $_session
- appel ajax=> récupération session, modification
- appel ajax => récupération session modifiée ... ?

SANS RECHARGER le navigateur ... ? ... il me semblait que non, et il serait pratique de pouvoir ... ?

Merci ..

Petit nouveau ! | 9 Messages

15 avr. 2009, 10:21

Merci Mr albat je vais oir le cour
Mr nours , ge ne connait pas ajax TB je suis debuttante.

sans utilser AJAX , comment faire pour afficher une chainne de carractere dans la meme page ou il ya la liste déroulante
c'est a dire dés que je choisi une filiere de la liste déroulante il s'affiche dans la meme page une chainne de carracetre par exemple.sans faire deux fichiers , le traitement peu se faire dans le meme fichier?

Mammouth du PHP | 661 Messages

15 avr. 2009, 12:06

salut ::

Il me semblait avoir bien cerné ton pb, et c'est pourquoi je me suis permi cette note ...

Donc, tu as un formulaire (contenant un <select> )

lorsque tu change ton select, la fonction javascript va apeller une page, et là tu as deux option :

1. tu charge une page dans une iFrame ... c'est pas terrible mais trés simple ! ;)
2. tu utilise Ajax pour appeler une page qui va te retourner du HTML que tu placera dans une cellule de ta page

L'ajax, ce n'est pas trés compliqué ... mais c'est encor plus simple avec une Librairie tels que JQuery ou prototype ...

le principe est d'envoyer un parametre en GET ou POST à une url, récupérer ce qu'elle retourne et le placer dans un élément :

ex avec prototype :

function Charge(param){
var url = "mapage.php";
var maDiv = $('idMaDiv');
// est l'équivalent de document.getElementById('idMaDiv');
new Ajax.Request(url, {
  method: 'get',
  parameters : {'var':param},
  onComplete: function(transport) {
    maDiv.innerHTML = transport.responseText;
  }
});
}


ainsi lors du changement du select, tu envois param à la fonction Charge qui va appeler
maPage.php?var=param
et afficher le contenu de la page retournée dans la div dont l'id est idMaDiv

...

Maintenant, pour faire des traitement sur des variables, appelées par la page, pour les retournées, et les réutilisée, c'est plus complexe, et tu dois donner plus d'explications sur ton Besoin ::

BonCode ;)

Petit nouveau ! | 9 Messages

18 avr. 2009, 11:16

Invité c'est moi j'ai posté sans connexion

Merci bcp Mme nour pour cette explication, si vous me permettez je vous explique en plus mon travailcomme vous m'avez mensinné.

je fait la gestion automatique des devoirs, j'ai une page d'authentification ou le prof doit faire entrer son code et password, ce formulaire est dans le fichier gad_aut_prof.php son action =gadprof.php ce fichier contien le traitement de verification du code et password, ce dernier contient une redirection vers la page filiere.php si code_ens est password sont juste.

ce fichier filiere.php contient une liste déroulante qui contient les filieres. normalement quand je clique sur une filiere automatiquement il s'affiche une liste des fichiers des devoirs des eleves de la matiere de ce prof, je n'ai pas besoin de choisir la matiere car le code_ens (code enseignant) contien la matiere, pour cela j'ai besoin de code_ens pour faire le substr(code_ens,...,...) pour extraire la matiere et pour specifier automatiquement le répertoire qu'on doit afficher ses fichiers.

alors, meme dans le fichier filiere.php le code_ens n'est pas reconnu , j'ai esayer de faire le traitement dans le meme fichier (filiere.php),je n'ai pas fait fichier ajax mais dans ce fichier (filiere.php) n'est pas reconnu.

ou peut etre vous avez rencontré un exemle de gestion des devoirs .
merci encore.

Mammouth du PHP | 661 Messages

19 avr. 2009, 17:21

je suis navré mais dans ce cas, je rejoind l'idée initiale de Albat qui visais à orienter le post sur le traitement des sessions en PHP et non en Javascript/AJAX

le principe de la gestion du code_ens serait :

- lors de l'identification : $_SESSION['code_ens'] = $_POST['code_ens']
- lors de l'utilisation : $var = substr($_SESSION['code_ens'], ..., ...);

la variable $_SESSION['code_ens'] serait accessible de tous les scripts utilisés ...

désolé de cette incompréhension précédente .... @+

Petit nouveau ! | 9 Messages

20 avr. 2009, 09:41

je suis navré mais dans ce cas, je rejoind l'idée initiale de Albat qui visais à orienter le post sur le traitement des sessions en PHP et non en Javascript/AJAX

le principe de la gestion du code_ens serait :

- lors de l'identification : $_SESSION['code_ens'] = $_POST['code_ens']
- lors de l'utilisation : $var = substr($_SESSION['code_ens'], ..., ...);

la variable $_SESSION['code_ens'] serait accessible de tous les scripts utilisés ...

désolé de cette incompréhension précédente .... @+
Bonjour Mme nour312, et merci pour la réponse

J'ai utilisé la session mais quand la redirection affiche le fichier filieres.php il m'affiche ces msg d'erreur avec la liste deroulante:
Notice: Undefined variable: _SESSION in c:\www\gad\filiere.php on line 44
et quand je choisi une filiere de la liste il m'affiche ce msg d'erreur
Notice: Undefined variable: _SESSION in c:\www\gad\ajaxinfo_list.php on line 13
le fichier gad_aut_prof.php c'est le formulaire d'authentification (je fait entrer code_ens(code enseignant) et password).

Code : Tout sélectionner

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>التسيير الآلي للفروض </title> <style type="text/css"> <!-- .s1 { font-family: Arial, Helvetica, sans-serif; font-size: 18px; font-style: normal; line-height: normal; font-weight: bold; color: #800000; } body { background-image: url(fond2.jpg); } .s2 { font-size: 16px; font-style: normal; line-height: normal; font-weight: bold; color: #FFFF00; } .Style4 { color: #800000; font-weight: bold; } .Style5 {font-size: 18px} .Style6 {color: #800000; font-weight: bold; font-size: 18px; } .Style9 {font-family: Arial, Helvetica, sans-serif; font-size: 18px; font-style: normal; line-height: normal; font-weight: bold; color: #FFF3E8; } .Style10 {font-size: 24px} --> </style> </head> <body> <form name="form1" method="post" action='gadprof.php'> <p align="right"> </p> <p>&nbsp;</p> <p>&nbsp;</p> <p>&nbsp;</p> <table width="377" border="1" align="center" bgcolor="#FFF3E8"> <tr background="Image/bouton_col.jpg"> <th height="61" background="Image/bouton_col.jpg" scope="row"><p class="Style10"> الدخول بصفة أستاذ </p> </th> </tr> <tr> <th height="215" scope="row"><p> <input name="code_ens" type="text" id="code_ens" size="20" /> <span class="Style4 Style5">: إسم المستخدم </span> </p> <div align="right" class="Style4 Style5"></div> <p> <input name="password" type="password" id="password" size="10" maxlength="10" /> <span class="Style6">: كلمة المرور </span></p> <p>&nbsp;</p> <p> <input name="effac" type="reset" class="s1" value=" مسح " /> <span class="Style9"> ااااااااااااااا </span> <input name="confirm" type="submit" class="s1" value=" تأكيد " /> </p> </th> </tr> </table> <p>&nbsp;</p> <div align="center"><!--début du lien vers ImaGimp --> <a href="http://imagimp.free.fr" target="_blank"></a> <!--fin du lien vers ImaGimp --> </div> <p align="center">&nbsp;</p> </form> </body> </html>






le fichier gadprof.php verifi si l'enseiignant (code_ens) existe dans la table ainsi le password.
s'ils existent il fait la redirection versle fichier filieres.php

Code : Tout sélectionner

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>Untitled Document</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <style type="text/css"> <!-- body { background-image: url(fond2.jpg); } body,td,th { color: #000000; } .Style3 { color: #800000; font-size: 24px; } .Style5 { font-size: 18px; color: #000000; } .Style10 {color: #990000} .Style12 {font-size: 18px} .st1 { font-size: 24px; font-weight: bold; color: #800000; } .Style15 {color: #800000; font-size: 18; } .Style16 {color: #800000} .Style21 {font-size: 18; color: #000000;} .Style22 {color: #000000} --> </style></head> <?php if (isset($_POST["code_ens"])==FALSE) { ?> <script language="javascript"> <!-- //document.bgColor = "red"; document.location = "gad_aut_prof.php"; --> </script> <? exit(); } ?> <body> <? //error_reporting(E_ALL ^ E_NOTICE); require('connexion.php'); // $lien_etud='<a href =gadetud.php> <p align="center" > <font size=6> التالي <br/> </font> <p/> </a>'; $code_ens=$_POST['code_ens']; $password=$_POST['password']; if (isset($code_ens) ) { if (isset($password)) { session_start(); $_SESSION['code_ens']=$code_ens; $_SESSION["password"]=$password; mysql_select_db($nom_bd1); $donnees=mysql_query(" select * from enseignant where (codens='$code_ens')"); $rech=mysql_fetch_array($donnees); if (mysql_num_rows($donnees)==0) { ?> <p> <script language="javascript"> alert('إسم المستخدم خاطىء') ; document.location= "gad_aut_prof.php"; </script> <? } elseif ( $password!=$rech['password'] ) {?> <script language="javascript"> alert('كلمة المرور خاطئة') ; //document.location= "gad_aut_prof.php"; </script> <?php } ?> <script language="javascript"> document.location= "filiere.php"; </script> <? } mysql_close(); }?> </p> <form name="form1" method="post" action="filiere.php"> <input name="code_ens" type="hidden" id="code_ens" value="<? echo $_POST['code_ens'] ?>;"> <input name="password" type="hidden" id="password" value="<? echo $_POST['password'] ?>;"> </form> <p>&nbsp; </p> </body> </html>
le fichier filieres.php ilya la liste des filieres qui existe,
le fichier ajaxinfo_liste.php contient le traitement qui va s'afficher dan la page filieres.php. (affichage du code_ens (session)

Code : Tout sélectionner

<?php require_once('connexion.php'); ?> <html> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <style type="text/css"> <!-- .Style1 { color: #990000; font-weight: bold; font-size: 18px; } .Style2 { color: #000066; font-weight: bold; } .Style4 {color: #990000} .Style5 { color: #990000; font-weight: bold; font-size: 18px; } .Style11 { color: #000099; font-weight: bold; } .Style15 { color: #006600; font-weight: bold; } body { background-color: #000099; } --> </style> <head> <?php //$code_ens=$_POST['code_ens']; //$password=$_POST['password']; echo $_SESSION['code_ens']; ?> <title>My webpage is rich</title> <script type='text/javascript'> function getXhr(){ var xhr = null; if(window.XMLHttpRequest){ // Firefox et autres xhr = new XMLHttpRequest(); } else if(window.ActiveXObject){ // Internet Explorer try { xhr = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { xhr = new ActiveXObject("Microsoft.XMLHTTP"); } } else { // XMLHttpRequest non supporté par le navigateur alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); xhr = false; } return xhr; } /** * Méthode qui sera appelée sur le click du bouton */ function change(){ var xhr = getXhr(); // On défini ce qu'on va faire quand on aura la réponse xhr.onreadystatechange = function(){ // On ne fait quelque chose que si on a tout reçu et que le serveur est ok if(xhr.readyState == 4 && xhr.status == 200){ di = document.getElementById('info'); di.innerHTML = xhr.responseText; } } // Ici on va voir comment faire du post xhr.open("POST","ajaxinfo_list.php",true); xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); // ne pas oublier de poster les arguments // ici, l'id de l'auteur idfiliere = document.getElementById('filiere').options[document.getElementById('filiere').selectedIndex].value; xhr.send("idfiliere="+idfiliere); } </script> </head> <body> <form name="form1" id="form1"> <div align="right"> </div> <tr class="Style11"> <th width="205" height="53" scope="row"><label><span class="Style2"> <input name="code_ens" type="hidden" id="code_ens" value="<? echo $_POST['code_ens']; ?>" /> <input name="password" type="hidden" id="password" value="<? echo $_POST['password']; ?>" /> filiere</span></label> <select name='filiere' id='select' onChange='change()'> <option value='-1'>اختيار شعبة</option> <?php $res = mysql_query("SELECT * FROM filieres ORDER BY code_fil"); while($row = mysql_fetch_assoc($res)){ echo "<option value='".$row["code_fil"]."'>".$row["nom_fil"]."</option>"; } ?> </select></th> </tr> </table> </form> <div id='info'> <p>&nbsp;</p> <p>&nbsp;</p> </div> <form name="form1" method="post" action="gadprof.php"> <input name="code_ens2" type="hidden" id="code_ens2" value="<? echo $_POST['code_ens'] ?>;"> <input name="password2" type="hidden" id="password2" value="<? echo $_POST['password'] ?>;"> </form> </body> </html>
quand je clique sur une filiere je veux afficher le code de l'enseignant que j'ai fai entré dans l'authentification (code_ens).

le fichier ajaxinfo_list.php

Code : Tout sélectionner

<?php require_once('connexion.php'); ?> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <? if(isset($_REQUEST["idfiliere"])) { //echo $_REQUEST["idfiliere"]; echo $_SESSION['code_ens']; } //$dossier='Gad_prof_rep/'.substr($code_ens,0,1).'/'.$_REQUEST["idfiliere"].'/'.substr($code_ens,1,4).'/'.'/';} //echo $dossier; ?> </p> <form name="form1" method="post" action="filiere.php"> <input name="code_ens" type="hidden" id="code_ens" value="<? echo $_POST['code_ens']; ?>" /> <input name="password" type="hidden" id="password" value="<? echo $_POST['password']; ?>" /> </form> <p><br> </p> <p>&nbsp; </p> </div>

meme si c'est possible meme sans ajax ie sans le fichier ajaxinfo_liste.php, je veux seulement afficher code_ens dans filieres.php


[/php][/quote]
[/quote]

Mammouth du PHP | 965 Messages

20 avr. 2009, 10:00

Il faut pas oublier de mettre un session_start() au début de chaque page pour la session.

Petit nouveau ! | 9 Messages

20 avr. 2009, 16:19

bonjour Mr agité
je l'ai fait en chaque page alors msg erreur
[/quote]Cannot send session cache limiter - headers already sent (output started at [/quote][/quote]

Mammouth du PHP | 661 Messages

21 avr. 2009, 09:06

session_start() doit etre appellée avant tout envois au navigateur, une seul fois, cela signifie que :

-lors que la page index.php (ou autre ) est appelée, on place en tut début de script la fonction session_start();
-ensuite dans tous les fichiers include() la session est déja existante, et donc n'a pas à etre redéclarée !...
Bonjour Mme nour312,
Perdu !

@+

Petit nouveau ! | 9 Messages

22 avr. 2009, 09:13

ok , je vais corriger merci bcp

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

Petit nouveau ! | 9 Messages

22 avr. 2009, 16:57

Bonjour
C'est amel01

merci pour vos aide ça va ça marche et j'ai pu l'afficher

merci encore