IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Passer variable PHP en argument d'une fonction JS


Sujet :

JavaScript

  1. #1
    Membre exp�riment� Avatar de Vespiras
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    D�cembre 2012
    Messages
    168
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, C�te d'Or (Bourgogne)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : D�cembre 2012
    Messages : 168
    Par d�faut Passer variable PHP en argument d'une fonction JS
    Bonjour � tous,

    Tout d'abord, sachez que j'ai �cum� les forums, vu des tas des sujets � ce propos, mais aucune des solutions ne fonctionne pour mon cas, et je ne saisis pas pourquoi. En d�sespoir de cause, je cr�e un nouveau topic.

    J'aimerais passer deux variables de sessions (login et password) � une page, lors d'un clic sur un lien.

    Voici mon code avec le lien:
    Code php : S�lectionner tout - Visualiser dans une fen�tre � part
    <li><span class="grr_dijon"></span><a href="grr/planning_dijon/login.php"  onClick="openWithPostData('grr/planning_dijon/login.php','<?php echo $coupleUsrPwd; ?>')">GRR Dijon</a></li>

    Ou $coupleUsrPwd est une simple chaine de caract�re dans laquelle j'ai concat�n�e les identifiants.

    Puis ma fonction JS :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    function openWithPostData(page,data)
    {
    	var posSeparateur = data.indexOf(':');
    	var password = data.substr(posSeparateur, data.length);
            var login = // ici mon traitement pour récuperer le login
    	alert(password);
            tab[0]=password;
            tab[1]=login;
            /* le traitement des chaines n'est pas fini, mais jai testé en envoyant la chaine en dur */
    	var n = 0;
    	var form = document.createElement('form');
    	form.setAttribute('action', page);
    	form.setAttribute('method', 'post');
    	for (n in tab)
    	{
    		var inputvar = document.createElement('input');
    		inputvar.setAttribute('type', 'hidden');
    		inputvar.setAttribute('name', 'pdata'+n);
    		inputvar.setAttribute('value', tab[n]);
    		form.appendChild(inputvar);
    	}
    	document.body.appendChild(form);
    	form.submit(); 
    }
    En r�sum�, j'ai jou� avec les ", ' et les \ pour tenter des faire passer cette variable PHP : rien � faire ! Des fois la page s'ouvre, mais les donn�es POST ne sont pas transmises, des fois la page ne s'ouvre pas car la syntaxe est fausse ...

    quelqu'un aurait-il une piste au niveau de la syntaxe � utiliser ?
    je vous remercie d'avance !

    Cdt,
    Vespiras

  2. #2
    Membre Expert
    Avatar de Kaamo
    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    Avril 2007
    Messages
    1 165
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 38
    Localisation : France, Bouches du Rh�ne (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 165
    Par d�faut
    Si j'ai bien compris ..

    Au clic sur un lien, tu cr�es un formulaire � la vol�e qui post un login mot de passe vers une autre page. Donn�es qui sont contenues dans la session ?

    Pourquoi ne pas r�cup�rer les donn�es de la session (login / mot de passe) directement dans la page login.php ?

  3. #3
    Membre exp�riment� Avatar de Vespiras
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    D�cembre 2012
    Messages
    168
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, C�te d'Or (Bourgogne)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : D�cembre 2012
    Messages : 168
    Par d�faut
    Merci de porter de l�int�r�t � mon probl�me,
    la r�ponse est tout simplement que la page � laquelle j'envoie les POST est une page qui est ind�pendante et � �t� cr��e par quelqu'un d'autre. Qui utilise d�j� les sessions, je ne peux donc pas r�cup�rer mes variables de session � l'ouverture de la page.

  4. #4
    R�dacteur/Mod�rateur

    Avatar de SpaceFrog
    Homme Profil pro
    D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activit� : D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par d�faut
    Autant faire un ajax non ?
    Ma page Developpez - Mon Blog Developpez
    Pr�sident du CCMPTP (Comit� Contre le Mot "Probl�me" dans les Titres de Posts)
    Deux r�gles du succ�s: 1) Ne communiquez jamais � quelqu'un tout votre savoir...
    Votre post est r�solu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de D�veloppez !

  5. #5
    R�dacteur

    Avatar de Bovino
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par d�faut
    Tu ne peux pas r�cup�rer les variables de session parce que la page utilise les sessions ?
    Je suis pas s�r de comprendre le concept...
    Pas de question technique par MP !
    Tout le monde peut participer � developpez.com, vous avez une id�e, contactez-moi !
    Mes formations video2brain : La formation compl�te sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'int�gration de JSFiddle et CodePen sur le forum

  6. #6
    Membre exp�riment� Avatar de Vespiras
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    D�cembre 2012
    Messages
    168
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, C�te d'Or (Bourgogne)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : D�cembre 2012
    Messages : 168
    Par d�faut
    La page cible, d�truit toute session existante avant de recr�er la sienne, et appelle des tas de fonctions relatives aux sessions que je comprend pas, sur plus de 500 lignes ^^

    Pour moi, j'ai rep�r� ou se fait l'authentification.
    Sinon, je pensais r�ussir � passer les variables POST, et � remplir dynamiquement le formulaire gr�ce � du jQuery

    Mais je ne comprend vraiment pas pourquoi je n'arrive pas � passer en argument ma variable php. J'ai essay� une fonction des plus simples :

    Code js : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
     
    function openWithPostData(page, data)
    {
        alert(data);
    }

    Que j�appelle de la m�me mani�re que dans mon premier POST, mais il ne m'affiche pas l'alerte

  7. #7
    Membre exp�riment� Avatar de Vespiras
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    D�cembre 2012
    Messages
    168
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, C�te d'Or (Bourgogne)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : D�cembre 2012
    Messages : 168
    Par d�faut
    J'ai trouv� la solution. Merci � vous pour votre aide.
    Je la poste ca pourra peut �tre servir :

    Cela ne fonctionnant pas avec l��v�nement "onClick" j�ex�cute la fonction javascript dans l'URL comme suit :

    Code php : S�lectionner tout - Visualiser dans une fen�tre � part
    <a href="javascript:openWithPostData('grr/planning_dijon/login.php','<?php echo $_SESSION['login'].':'.$_SESSION['password']; ?>')" >GRR Dijon</a>

    Je concat�ne le login et le mot de passe, s�par�s du caract�re ':' pour pouvoir les d�couper dans ma fonction.
    Ma fonction openWithPostData :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    function openWithPostData(page,data)
    { 
    	var id = new Array;
    	var posSeparateur = data.indexOf(':');
    	id[0] = data.substring( 0, posSeparateur);
    	id[1] = data.substr(posSeparateur+1, data.length);
    	var n = 0; 
    	var form = document.createElement('form');
    	form.setAttribute('action', page);
    	form.setAttribute('method', 'post');
    	for (n in id)
    	{
    		var inputvar = document.createElement('input');
    		inputvar.setAttribute('type', 'hidden');
    		inputvar.setAttribute('name', 'pdata'+n);
    		inputvar.setAttribute('value', id[n]);
    		form.appendChild(inputvar);
    	}
    	document.body.appendChild(form);
    	form.submit(); 
    }
    Et dans ma page login.php, au lieu de prendre les variables $_POST['login'] et $_POST['password'], je prend $_POST['pdata0'] et $_POST['pdata1'], pour la s�curit� et l'authentification.

    R�solu !

  8. #8
    R�dacteur/Mod�rateur

    Avatar de SpaceFrog
    Homme Profil pro
    D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activit� : D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par d�faut
    il n'y a aucune raison que cela ne fonctionne pas avec un onclick si ce
    n'est que tu n'aies pas inhib� le href ...

    Sinon c'est cool d'avoir les logins et mot de passe dans le source
    Ma page Developpez - Mon Blog Developpez
    Pr�sident du CCMPTP (Comit� Contre le Mot "Probl�me" dans les Titres de Posts)
    Deux r�gles du succ�s: 1) Ne communiquez jamais � quelqu'un tout votre savoir...
    Votre post est r�solu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de D�veloppez !

  9. #9
    Membre exp�riment� Avatar de Vespiras
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    D�cembre 2012
    Messages
    168
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, C�te d'Or (Bourgogne)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : D�cembre 2012
    Messages : 168
    Par d�faut
    Inhib� ? C'est � dire ?
    Si on parle de mettre un href="#" c'�tait fait. J'ai aussi essay� avec "", "lurl", etc ...

    Et je n'ai pas mis le login et mot de passe, enfin il y'a le nom des variables mais c'est tout ?

  10. #10
    R�dacteur/Mod�rateur

    Avatar de SpaceFrog
    Homme Profil pro
    D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activit� : D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par d�faut
    un return false dans le onclick apr�s la fonction ..

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    <a href="#" onlick=openWithPostData('grr/planning_dijon/login.php','<?php echo $_SESSION['login'].':'.$_SESSION['password']; ?>;return false;')" >GRR Dijon</a>
    Ma page Developpez - Mon Blog Developpez
    Pr�sident du CCMPTP (Comit� Contre le Mot "Probl�me" dans les Titres de Posts)
    Deux r�gles du succ�s: 1) Ne communiquez jamais � quelqu'un tout votre savoir...
    Votre post est r�solu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de D�veloppez !

  11. #11
    Membre exp�riment� Avatar de Vespiras
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    D�cembre 2012
    Messages
    168
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, C�te d'Or (Bourgogne)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : D�cembre 2012
    Messages : 168
    Par d�faut
    J'avais fait une recherche Google apr�s avoir pos� la question inutilement ^^
    Mais j'ai essay� �a ne fonctionne pas. L'authentification �choue si je proc�de ainsi.

  12. #12
    R�dacteur/Mod�rateur

    Avatar de SpaceFrog
    Homme Profil pro
    D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activit� : D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par d�faut
    D�sol� erreur de syntaxe
    je n'avais pas plac� le return false au bon endroit ...
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    <a href="#" onlick=openWithPostData('grr/planning_dijon
    /login.php','<?php echo $_SESSION['login'].':'.$_SESSION['password']; ?>');return false;" >GRR Dijon</a>
    Ma page Developpez - Mon Blog Developpez
    Pr�sident du CCMPTP (Comit� Contre le Mot "Probl�me" dans les Titres de Posts)
    Deux r�gles du succ�s: 1) Ne communiquez jamais � quelqu'un tout votre savoir...
    Votre post est r�solu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de D�veloppez !

  13. #13
    Membre exp�riment� Avatar de Vespiras
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    D�cembre 2012
    Messages
    168
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, C�te d'Or (Bourgogne)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : D�cembre 2012
    Messages : 168
    Par d�faut
    Ah oui effectivement �a marche !
    Je suppose que c'est plus propre de laisser l'appel de fonction dans le onClick.

    Juste une pr�cision, quand tu dis que les login/mot de passe sont dispo dans le code source, tu veux juste dire par la que je passe pas par une bdd pour les stocker ?

    Merci beaucoup pour les infos !

  14. #14
    Membre exp�riment� Avatar de MaitreKaio
    Profil pro
    Freelance Java / Web / Mobile
    Inscrit en
    Juin 2007
    Messages
    140
    D�tails du profil
    Informations personnelles :
    Localisation : France, Rh�ne (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : Freelance Java / Web / Mobile
    Secteur : High Tech - Multim�dia et Internet

    Informations forums :
    Inscription : Juin 2007
    Messages : 140
    Par d�faut
    Si quelqu'un va voir le code source de la page HTML g�n�r�e, il verra le login / mot de passe de l'utilisateur.

  15. #15
    Membre exp�riment� Avatar de Vespiras
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    D�cembre 2012
    Messages
    168
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, C�te d'Or (Bourgogne)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : D�cembre 2012
    Messages : 168
    Par d�faut
    Un grand merci pour cette aberration, on vois bien que je ne suis pas habitu� au dev web ...

    Quelle serait la meilleur m�thode pour cacher ces variables aux yeux de tous ?
    Merci !

  16. #16
    R�dacteur/Mod�rateur

    Avatar de SpaceFrog
    Homme Profil pro
    D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activit� : D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par d�faut
    ne pas les faire apparaitre cot� client...
    ne les utiliser que cot� serveur
    Ma page Developpez - Mon Blog Developpez
    Pr�sident du CCMPTP (Comit� Contre le Mot "Probl�me" dans les Titres de Posts)
    Deux r�gles du succ�s: 1) Ne communiquez jamais � quelqu'un tout votre savoir...
    Votre post est r�solu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de D�veloppez !

  17. #17
    Membre exp�riment� Avatar de Vespiras
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    D�cembre 2012
    Messages
    168
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, C�te d'Or (Bourgogne)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : D�cembre 2012
    Messages : 168
    Par d�faut D�sol�, c'est plus du JS, mais c'est dans la suite de mon probleme
    Bonjour � tous,

    En fait mon probl�me n'est pas vraiment r�solu, je me suis rendu compte qu'en vidant le cache, d�s la connexion sur mon site, les variables de sessions que j'utilise dans mon scripts ne sont pas d�finies

    Et je ne comprend pas pourquoi selon le code que j'ai.

    1- Si l'utilisateur n'est pas logg�, on affiche le formulaire de connexion
    2- Si l'utilisateur entre ses identifiants, je vais faire un traitement et les comparer dans un annuaire LDAP.
    3- Si �a match, je d�marre la session, je copie les identifiants dans les variables de session 'login' et 'password' et je cache le formulaire.
    4- Une fois logg�, si l'utilisateur clique sur mon lien qui appelle openWithPostData(), il me dit que les deux variables ne sont pas d�finies.

    Pourtant, d�s le chargement de la page index.php apr�s le submit du formulaire, je peux afficher a ma guise les variables de session, c'est du d�lire !

    Les quelques lignes de code concern�es, au cas ou :
    index.php
    Code php : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     <?php
    if(!isset($_POST["login"]) && !isset($_POST["password"]))	// si on vient d'arriver sur la page
    {
    	include("login.php");
    }
     
    if(isset($_POST["login"]) && isset($_POST["password"]))		// si on est loggé
    {
    	echo("<div class='user_frame' >");
    	 include("portail.php"); 
    	 include("user_ok.php"); ?>

    Le login.php est un simple formulaire dont l'action est le chargement de index.php.

    Et portail.php:
    Code php : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
     <?php
    if($connexion_user=@ldap_bind($connexion_serveur, $user_ou, $passwd))	//on se lie, renvoie une valeur !NULL si user authentifié dans LDAP
    {
    	session_start(); 
    	$_SESSION['login'] = $_POST['login'];
    	$_SESSION['password'] = $_POST['password'];
    ?>

    Et il faut que je conserve le cache, et que je recharge index, pour que mes variables de sessions soient prises en compte dans ma fonction Js.
    Quelqu'un a-t'il une id�e d'ou cela provient ?

    Un grand merci !

Discussions similaires

  1. Passage de variable php en parametre d'une fonction javascript
    Par alex7532 dans le forum G�n�ral JavaScript
    R�ponses: 10
    Dernier message: 26/01/2010, 19h46
  2. R�ponses: 1
    Dernier message: 05/10/2009, 03h50
  3. passer un iterator en argument d'une fonction
    Par manitor dans le forum SL & STL
    R�ponses: 3
    Dernier message: 13/09/2009, 14h42
  4. passer un tableau en argument dans une fonction
    Par rogerio dans le forum D�buter
    R�ponses: 6
    Dernier message: 30/10/2008, 12h15
  5. Passer un tableau PHP en argument dans une fonction javascript ?
    Par The Molo dans le forum G�n�ral JavaScript
    R�ponses: 5
    Dernier message: 18/05/2007, 12h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo