Page 1 sur 1

Passage de paramètre

Posté : 29 juin 2013, 18:57
par Herve_be
Bonjour,
Je voudrais passer un paramètre d'un module à l'autre; dans un cas ça fonctionne, pas dans l'autre !
Voici le code partiel du module de base

Code : Tout sélectionner

<?php session_start(); ?> <form method="post" action="RegLogAll.php"> <?php Echo "<input type='text' size='20' name='ID' value=".$_SESSION['ID'].">"; ?> <input type="submit" name="Choice" value="Consult."> ... $_POST["ID"] = $_SESSION['ID']; <a href="RegLogAll.php"'>Consult</a>
Dans les 2 cas (bouton ou url) on appelle le même module RegLogAll.php qui fait

Code : Tout sélectionner

session_start(); $_SESSION['ID'] = $_POST["ID"];
Dans le premier cas (bouton), $_SESSION['ID'] contient bien la valeur qu'on a rempli dans la zone input texte mais quand on clique sur l'url $_SESSION['ID'] est vide.
Merci d'avance pour votre aide

Re: Passage de paramètre

Posté : 29 juin 2013, 19:42
par sirakawa
Je me demande ce que:
$_POST["ID"] = $_SESSION['ID'];
qui est du php vient faire au milieu de html...

Re: Passage de paramètre

Posté : 01 juil. 2013, 03:08
par orenx22
Bonsoir l'ami,

Pourrais-tu décrire ce que tu veux faire en faite svp, un système de log d'utilisateur ?!

Re: Passage de paramètre

Posté : 01 juil. 2013, 09:36
par Herve_be
Je me demande ce que:
$_POST["ID"] = $_SESSION['ID'];
qui est du php vient faire au milieu de html...
Bonjour,
J'ai voulu garder l'essentiel du code pour ne pas compliquer inutilement; il y a bien des <?php et des ?> à bon escient.
Pourrais-tu décrire ce que tu veux faire en faite svp
Le module RegLogAll.php vérifie que l'accès est autorisé.
Je voudrais l'appeler aussi bien en cliquant sur le bouton
<input type="submit" name="Choice" value="Consult.">
que sur le lien
<a href="RegLogAll.php"'>Consult</a>
en lui passant la valeur ID saisie dans la zone
<input type='text' size='20' name='ID' >

Re: Passage de paramètre

Posté : 01 juil. 2013, 11:58
par sirakawa
L'absence du code complet empêche de tester sur place...

Re: Passage de paramètre

Posté : 01 juil. 2013, 12:15
par moogli
salut,
Dans le premier cas (bouton), $_SESSION['ID'] contient bien la valeur qu'on a rempli dans la zone input texte mais quand on clique sur l'url $_SESSION['ID'] est vide.
vue le code
$_SESSION['ID'] = $_POST["ID"];
la réponse est simple une donnée issue d'une formulaire se trouve dans $_POST et celle issue d'une url dans $_GET donc le cas traité n'est que depuis un formulaire.

Il existe $_REQUEST qui est un mixe des deux mais tu peux avoir un problème d'écrasement, on d'injection car te ne sais pas d'où viens la valeur.

Attention utiliser comme ça une valeur sans vérifier son existence dans les tableaux $_GET ou $_POST t'expose à un comportement inattendu et un message d'erreur au milieux de ta page si le formulaire n'est pas complet.
Inattendu car (même s'il n'y a pas de message d'erreur) le reste du script va travailler avec $_SESSION['ID'] = null.

@+

Re: Passage de paramètre

Posté : 01 juil. 2013, 13:57
par Herve_be
Merci pour la réponse,
Si j'ai bien compris, via url je devrais passer les paramètres dans l’URL et les récupérer avec $_GET.
Ça m'ennuie fortement de mettre les paramètres dans l’URL car ils seront alors clairement visibles !

Autre solution : serait-il possible de simuler un clic sur le bouton <input type="submit" name="Choice" value="Consult."> ?
Je veux dire, quand on clique sur le lien, qui ne serait donc pas un lien, faire en sorte que le navigateur se comporte comme si on avait cliqué sur le bouton, ce qui enverrait les paramètres vis $_POST.

Ou alors, est-il possible de créer un bouton, qui réagisse comme un bouton, mais qui ne ressemble pas à un bouton ?

Pour fixer les idées, jetez un coup d'oeil à cette page : http://www.rudyv.be/VTT/index.php
A côté des zones ID et PIN se trouve un bouton "Consult."; quand on clique dessus il appelle le module php qui vérifie si ID et PIN sont corrects puis affiche des infos.
Dans le tableau en-dessous vous voyez aussi des prénoms, certains sont soulignés.
Je voudrais simplement que lorsqu'on clique sur un nom souligné, ça se comporte exactement de la même manière que si on avait cliqué sur le bouton "Consult."

Re: Passage de paramètre

Posté : 01 juil. 2013, 14:50
par sirakawa
oui avec du javascript on peut simuler un clic sur le bouton. Je n'ai pas le code en tête, mais je m'en suis servi.

Re: Passage de paramètre

Posté : 01 juil. 2013, 16:14
par Herve_be
J'ai trouvé, enfin presque.

Code : Tout sélectionner

<form name="RegLog" method="post" action="RegLogAll.php"> <input type='text' size='20' name='ID'> <input type='password' size='10' name='pin'> <input type="submit" name="Choice" value="Consult."> <input type="submit" name="Choice" value="Membres"> ... <?php $_POST["Choice"] = "Consult."; ?> <a href="javascript:document.RegLog.submit()">Name</a>
Quand on clique sur "Name" le module RegLogAll.php est bien appelé et il reçoit bien les paramètres ID et pin
Le petit problème est qu'il ne reçoit pas le paramètre "Choice" alors il ne sait pas ce qu'il doit faire !

Re: Passage de paramètre

Posté : 01 juil. 2013, 16:55
par sirakawa
faudrait avoir deux noms différents

Re: Passage de paramètre

Posté : 01 juil. 2013, 17:00
par Herve_be
lesquels devraient être différents ?

Re: Passage de paramètre

Posté : 01 juil. 2013, 18:33
par Herve_be
J'ai trouvé, ça marche !
La form comporte 2 zones et plusieurs boutons

Code : Tout sélectionner

<form name="RegLog" method="post" action="RegLogAll.php"> <input type="text" size="20" name="ID" <input type="password" size="10" name="pin" <input type="submit" name="Choice" value="Consult."> <input type="submit" name="Choice" value="Membres">
Le module RegLogAll sait sur quel bouton on clique grâce à la valeur de $_POST["Choice"]

Quand on clique sur le lien Name
<a href="javascript:document.RegLog.submit()">Name</a>
$_POST["Choice"] est vide
alors que je voudrais que RegLogAll se comporte comme si on avait cliqué sur le bouton "Consult."

Je viens de donner la réponse : dans RegLogAll j'ai juste ajouté
if($_POST["Choice"]=="") $_POST["Choice"]="Consult.";

Merci pour votre aide, je n'aurais pas trouvé tout seul.

Mais j'ai encore besoin d'un petit coup de main.
Quand on survole à la souris le lien <a href ... ci-dessus je voudrais voir une infobulle
<span title="'Cliquer ici pour lire le commentaire"'>Name</span>
mais je ne sais pas comment combiner le <a> et le <span>

Mes excuses si ce n'est plus du php mais du html !

Re: Passage de paramètre

Posté : 01 juil. 2013, 23:54
par moogli
le premier lien de google pour texte alternatif lien : http://www.pompage.net/traduction/Bien- ... alternatif :)


@+

Re: Passage de paramètre [Résolu]

Posté : 02 juil. 2013, 09:16
par Herve_be
Bonjour,
Je ne veux pas utiliser alt car il ne fonctionne pas sur du texte avec tous les browsers mais title (dans une balise span) !
Mais j'ai trouvé

Code : Tout sélectionner

<a href="javascript:document.RegLog.submit();"><span title="Cliquer ici pour lire le commentaire">Name</span></a>
Problème clôturé,merci.