cs_jonas03
Messages postés52Date d'inscriptionsamedi 20 octobre 2007StatutMembreDernière intervention 7 mars 2010
-
2 janv. 2009 à 11:45
cs_jonas03
Messages postés52Date d'inscriptionsamedi 20 octobre 2007StatutMembreDernière intervention 7 mars 2010
-
5 janv. 2009 à 20:19
Bonjour a tous,
J'ai un formulaire avec plusieurs variables et je voudrais récupérer ces valeurs dans d'autres pages mais je n'y arrive pas.
Explications: page1-->mon formulaire avec les données
page1 envoie vers page2 et la page2 choisit après la page3 ou 4 ou 5, et je veut que les valeurs soient transmises dans les 3,4,5.
J'espère avoir été assez précis
merci de vos réponses
kohntark
Messages postés3705Date d'inscriptionlundi 5 juillet 2004StatutMembreDernière intervention27 avril 201230 3 janv. 2009 à 22:49
$id_periode2=$conn->nouvel_id(); Ici c'est pareil mais sa marche bien. Aucun problème
=> non, ça ne peut pas marcher :
function nouvel_id($table) // erreur, l'argument n'est pas présent
{
$id='id'.$table.''; // erreur, $table n'existe pas
$identif=$this->requete("select ".$id." from ".$table." order by ".$id." desc limit 1");
=> SELECT id FROM ORDER BY id DESC LIMIT 1 // plantage
if($this->nb_ligne($identif)==0) // peut être est ce validé ?
$identifiant=1;
else{
$res_identif=$this->extraction_tab_numerique($identif);
$identifiant=$res_identif[0]+1;
}
return $identifiant;
// retourne soit une erreur soit 1, mais pas de résultat SQL
Il te faut revoir tous tes accès à la BD.
Soit la requête est nécessaire et il faut renseigner l'argument (la table) soit elle ne l'est pas et il faut la supprimer avec toutes les datas qui en découlent.
donc en pseudo code:
<hr size= "2" width="100%" />-> page 1: form1
-> page 2: form2 avec champ "hidden" data_from_1 value ="serialise(les_valeurs_de_form1" )
-> page 3: form3 avec champ "hidden" data_from_(1+2) value ="serialise(les_valeurs_de_form1")
.....
<hr size="2" width="100%" />
je pense que c'est relativement facile a mettre en œuvre ;)
solution 2:
faire environ la même chose en utilisant une session de banque de donnée en complêtant tour a tour les champs de la bdd....
si tu a plus de questions n'hésite pas
<hr size="2" width="100%" />Some Geek: Tous les programmeurs sont des brutes, [...] ils violent chaque ligne, chaque language [...] et n'on aucun goût pour la beauté de ./sh
etc...
page2-->elle permet de choisir en fonction de $idetudiant la page qu'il lui faut.soit 4,5,6
page4,5,6 elle permettent de créer chacunes un pdf avec les données du formulaire de la page1 sans que les données soient mises dans la bdd.
exemple de page4 :
$pdf->Text(112.13,188.35,($_POST['nom_etudiant'])." ".unhtmlentities($resconv['prenom_etudiant']));
cela permet de mettre le nom de l'etudiant et son prenom dans le pdf sans avoir a mettre les données dans la bdd.
Merci de m'aider.
Vous n’avez pas trouvé la réponse que vous recherchez ?
etc...
page2-->elle permet de choisir en fonction de $idetudiant la page qu'il lui faut.soit 4,5,6
page4,5,6 elle permettent de créer chacunes un pdf avec les données du formulaire de la page1 sans que les données soient mises dans la bdd.
exemple de page4 :
$pdf->Text(112.13,188.35,($_POST['nom_etudiant'])." ".unhtmlentities($resconv['prenom_etudiant']));
cela permet de mettre le nom de l'etudiant et son prenom dans le pdf sans avoir a mettre les données dans la bdd.
etc...
page2-->elle permet de choisir en fonction de $idetudiant la page qu'il lui faut.soit 4,5,6
page4,5,6 elle permettent de créer chacunes un pdf avec les données du formulaire de la page1 sans que les données soient mises dans la bdd.
exemple de page4 :
$pdf->Text(112.13,188.35,($_POST['nom_etudiant'])." ".unhtmlentities($resconv['prenom_etudiant']));
cela permet de mettre le nom de l'etudiant et son prenom dans le pdf sans avoir a mettre les données dans la bdd.
pysco68
Messages postés681Date d'inscriptionsamedi 26 février 2005StatutMembreDernière intervention21 août 20148 2 janv. 2009 à 12:42
je ne vois pas pourquoi tu ne pourrais pas utiliser les deux variantes.... et comme Kohntark l'a dit... utiliser les sessions serait la meilleur des deux solutions... surtout coté sécurité...
cs_jonas03
Messages postés52Date d'inscriptionsamedi 20 octobre 2007StatutMembreDernière intervention 7 mars 2010 2 janv. 2009 à 12:51
Désolé pour ces problemes de messages. Je veux bien utiliser les sessions mais je ne voit pas comment faire le lien avec les pages.
Je doit faire un truc du genre
$_SESSION['nom_etudiant']=$nom dans la page1 ?
et je mets quoi dans les autres pages, un code du genre :
$pdf->Text(112.13,188.35,($nom)."
kohntark
Messages postés3705Date d'inscriptionlundi 5 juillet 2004StatutMembreDernière intervention27 avril 201230 2 janv. 2009 à 13:08
Non, tu ne fais rien dans la page1
Tu récupères les infos de ton formulaire dans la page2, et tu les affectes aux variables de sessions, par ex :
$_SESSION['nom_etudiant'] = $_POST['nom_etudiant'];
[...]
Si la page2 ne sert qu'à la redirection en fonction de l'id, du fait un beau :
switch ($_SESSION['idetudiant']) {
case 'bhjkbugiugm':
$location = page4;
break;
case 'boooouds':
$location = page5;
break;
[...]
}
header("Location:$location");
Puis dans tes pages 4,5,6 ... :
$pdf->Text(112.13,188.35,($_SESSION['nom_etudiant'])."
C'est beaucoup plus souple et sécuritaire que sérialiser les données.
En plus ça te permet très simplement de réutiliser ces données ailleurs si besoin est.
cs_jonas03
Messages postés52Date d'inscriptionsamedi 20 octobre 2007StatutMembreDernière intervention 7 mars 2010 2 janv. 2009 à 13:35
Quand je fait : $_SESSION['nom_etudiant'] = $_POST['nom_etudiant']; il me dit que le nom_etudiant est pas defini alors que dans la page1 j'envoie nom_etudiant grace a :
<form name='convention' method='post' action='page2.php'>
comment je peut faire pour recuperer ce nom_etudiant ?
cs_jonas03
Messages postés52Date d'inscriptionsamedi 20 octobre 2007StatutMembreDernière intervention 7 mars 2010 2 janv. 2009 à 14:05
J'ai bien fait session_start() et j'ai ça comme erreurs :
Notice: Undefined index: nom_etudiant in ...
Notice: Undefined index: idetudiant in...
Notice: Undefined variable: location in ...
kohntark
Messages postés3705Date d'inscriptionlundi 5 juillet 2004StatutMembreDernière intervention27 avril 201230 2 janv. 2009 à 14:28
Heu ... ça devrait marcher pourtant.
Questions cons :
Les lignes indiquées par les erreurs correspondent elles bien à l'affectation des vars de session ?
Le fichier de l'erreur est bien page2.php ? (avec les header(location) on ne sait jamais)
( je ne te prends pas pour un abruti avec ces questions, c'est juste que qqfois quand on a la tête dedans on zappe l'évidence)
Tente un debug en mettant un print_r($_POST); tout en haut de page2.php
Poste plus de code sinon, parce que sur ce que tu as fourni je ne vois pas.
cs_jonas03
Messages postés52Date d'inscriptionsamedi 20 octobre 2007StatutMembreDernière intervention 7 mars 2010 2 janv. 2009 à 14:45
les lignes d'erreurs sont les lignes ou il y a :
erreur1 : $_SESSION['nom_etudiant'] = $_POST['nom_etudiant'];
erreur2 : switch ($_SESSION['idclasse']) {
erreur3 : header("Location:$location");
et c'est bien sur la page2.php.
Quand je fait le debug j'ai Array ( ) qui apparait avec les erreurs.
Je vous donne un bout du code de la page2 avant modif
$idlog=$_SESSION['idlogin'];
$repidp=$conn->requete("select id_personne from tlogin where idtlogin='$idlog'");
$residp=$conn->extraction_tab($repidp);
$idetudiant=$residp['id_personne'];
$rep=$conn->requete("select idclasse from etudiant where idetudiant='$idetudiant'");
if(!$rep)
echo "Erreur lors de la rechercher de données";
else
{
$rep=$conn->requete("select typeconv from classe,etudiant where etudiant.idclasse=classe.idclasse and idetudiant='$idetudiant'");
$res=$conn->extraction_tab($rep);
$type_conv=$res['typeconv'];
kohntark
Messages postés3705Date d'inscriptionlundi 5 juillet 2004StatutMembreDernière intervention27 avril 201230 2 janv. 2009 à 15:32
Bon, il y a pas mal de monde dans ton fichier envoyé en MP.
Ce que je vois au premier coup d'oeil, c'est que toutes les vars non définies sur page2.php sont conditionnées par if($_SESSION['niveau']!=0) {
9 chances / 10 que la condition ne soit jamais vraie.
Fais le test, mets juste ça en tout début de page :
print_r($_SESSION);
regarde si 'niveau' est différent de 0, à mon avis il n'y est jamais.
modifie pour le debug 2/3 type "hidden" faisant parti du "if"en "text" et regarde si ils s'affichent.
cs_jonas03
Messages postés52Date d'inscriptionsamedi 20 octobre 2007StatutMembreDernière intervention 7 mars 2010 2 janv. 2009 à 15:42
Quand je mets print_r($_SESSION); j'obtient :
Array ( [idlogin] => 3 [nom] => VIGNAUD [prenom] => Emmanuel [niveau] => 2 )
donc il y a bien un niveau different de 0.