Passer des variables en PHP. Méthodes GET et POST. Comment utiliser les variables PHP en JavaScript

Nous continuons donc notre étude Les bases de PHP et dans cet article, nous nous familiariserons avec les méthodes de transmission de variables en PHP, à savoir les méthodes GET et POST. Chacun d’eux a ses avantages et ses inconvénients et est utilisé dans des situations appropriées, qui seront abordées dans cet article. Nous examinerons également des exemples de code illustrant le fonctionnement des méthodes POST et GET.

Passer des variables à l'aide de la méthode GET

Cette méthode de transmission de variables est utilisée en PHP pour transmettre des variables à un fichier à l'aide de la barre d'adresse. Autrement dit, les variables sont transmises immédiatement via la barre d'adresse du navigateur. Un exemple serait, par exemple, un lien vers un article dans WordPress sans utiliser CNC (SEF), qui ressemble à ceci :

https://archive.site/?p=315

Autrement dit, dans ce cas, la variable $p est transmise avec la valeur 315. Examinons maintenant la méthode GET plus en détail à l'aide d'un exemple. Disons que nous devons transmettre trois variables $a, $b et $c au fichier Méthode OBTENIR et affichez leur somme à l'écran. Vous pouvez utiliser le code suivant pour cela.

$a = $_GET["a"]; $b = $_GET["b"]; $c = $_GET["c"]; $somme = $a + $b + $c ; echo "Somme $a + $b + $c = $summa";

Puisque toutes les variables seront placées dans le tableau global GET() avant de passer, nous attribuons d'abord notre valeurs variableséléments correspondants du tableau GET. Nous faisons cela au tout début pour éviter diverses erreurs lors du passage des variables. Ensuite, pour démontrer le travail, nous écrivons une formule arbitraire et affichons le résultat à l'écran.

Pour tester la méthode GET, ajoutez simplement un point d'interrogation « ? » au lien du fichier. et à travers l'esperluette « & », listez les variables avec leurs valeurs. Disons que nous avons un fichier get.php, qui se trouve à la racine du site. Afin de transférer des variables dans un fichier, écrivez simplement ce qui suit dans la barre d'adresse.

https://archive.site/get.php?a=1&b=2&c=3

Comme vous pouvez le voir dans l'exemple, nous ajoutons d'abord un point d'interrogation immédiatement après le nom du fichier. Ensuite, nous enregistrons la variable et indiquons sa valeur en utilisant des valeurs égales. Après cela, nous listons les autres variables de la même manière via l’esperluette. Maintenant, lorsque nous suivrons ce lien, nous verrons la somme des variables $a, $b et $c.

Cette méthode est très simple et ne nécessite pas de créer fichiers supplémentaires. Toutes les données nécessaires arrivent directement via la barre d'adresse du navigateur.

Eh bien, passons maintenant à la deuxième méthode de transmission de variables en PHP - la méthode POST.

Passer des variables à PHP à l'aide de la méthode POST

Cette méthode vous permet de transférer secrètement des variables d'un fichier à un autre. Comme vous l'avez déjà compris, deux fichiers sont généralement utilisés à ces fins. Le premier contient un formulaire de saisie des données initiales et le second contient un fichier exécutif qui accepte les variables. Pour démonstration, regardons le code suivant.

Code du premier fichier avec le formulaire de soumission des données. Donnons-lui le nom post-1.php

  • action – spécifiez le fichier vers lequel les variables seront transférées.
  • méthode – méthode de transmission de variables. Dans notre cas, il s'agit de la méthode POST.
  • nom – nom du formulaire. Dans le même temps, une variable du même nom sera transférée dans le fichier.

Champs de texte :

  • nom – noms de variables. Dans notre cas, il s'agit du prénom et du nom (variables nom et nom).
  • type – type de champ. Dans notre cas, il s'agit d'un champ de texte.
  • name – le nom du bouton et la variable qui sera transmise avec d'autres variables.
  • type – type de bouton. Dans notre cas, il s'agit d'un bouton d'envoi de données.
  • valeur – texte sur le bouton.

Le code du deuxième fichier, qui servira de récepteur de variables. Appelons-le post-2.php

$nom = $_POST ; $nom = $_POST ; echo "Les valeurs des variables passées Méthode POST- $nom et $nom" ;

Comme pour la méthode GET, nous attribuons d'abord les valeurs des éléments correspondants du tableau global POST aux variables. Ensuite, pour plus de clarté, nous affichons ces variables à l'écran en utilisant .

Désormais, lorsque nous chargerons le premier fichier, le formulaire se chargera. Après avoir saisi les données, cliquez sur le bouton « Soumettre », ce qui ouvrira une page avec un deuxième fichier dans un nouvel onglet, qui affichera les valeurs écrites dans le formulaire sur page précédente. Autrement dit, les valeurs des variables du premier fichier seront transférées vers le deuxième fichier.

Ceci conclut cet article sur le passage de variables en PHP. Si vous ne voulez pas manquer l'apparition d'autres articles sur le blog, je vous recommande de vous inscrire à la newsletter par tout d'une manière pratique dans la rubrique « Abonnement » ou utilisez le formulaire ci-dessous.

C'est tout. Bonne chance et réussite dans la maîtrise des bases de PHP.

Pourquoi la question du passage d'une variable d'une langue à l'autre est-elle une question de débutant ? Parce que c'est impossible à faire ! Les langages de programmation fonctionnent chacun indépendamment. Et le transfert directement entre eux est impossible. Maintenant, je vais vous expliquer pourquoi.

Le fait est que PHP et JavaScript ne sont liés que de manière conditionnelle. PHP s'exécute sur le serveur et JavaScript s'exécute dans le navigateur.

Permettez-moi de vous rappeler l'algorithme Internet. Autrement dit, que se passe-t-il lorsque vous demandez une adresse...

  • Le navigateur génère des en-têtes de requête, ajoute une sorte de une information important sur vous-même et les envoie à cette adresse.
  • Le serveur reçoit les en-têtes et comprend que le document doit être renvoyé. Il comprend que ce n'est pas un document qui est demandé, mais un programme. Puis il lance ce programme et lui transmet toutes les données qu'il a reçues du navigateur.
  • Le programme (script php) s'exécute, s'exécute et imprime simplement le résultat de son travail. Le résultat du travail peut être une page HTML avec des scripts JavaScript inclus. Mais on se souvient que dans ce moment PHP et JavaScript fonctionnent pour cela et ne sont pas différents des autres données. Juste des lettres.
  • Le serveur reçoit ce que le programme a imprimé. Attache les en-têtes de réponse et les envoie tous au navigateur demandeur.
  • Le navigateur reçoit le code de la page et l'affiche. Charge plus fichiers nécessaires(js, css, images), les applique au code html. Et ce n'est que maintenant que le JavaScript intégré au navigateur est activé.
  • Si vous regardez attentivement cet ordre de travail, vous pouvez répondre à la question

    Comment passer une variable de PHP vers JavaScript ?

    Nécessaire au moment de l'exécution Script PHP générez simplement un tel texte pour qu'il puisse ensuite être exécuté dans le navigateur. Par exemple.

    Passer de manière asynchrone une variable de JavaScript à PHP

    Cela implique d'utiliser Ajax. Essentiellement, la même chose est faite que dans le cas précédent, mais la page du navigateur ne se recharge pas. La façon la plus simple d’illustrer cela consiste à utiliser le .

    var message = "Bonjour, serveur !"; $..php", (message:message), function(data) ( alert("Le serveur a répondu : "+data); ));

    Comme vous pouvez le constater, tout est encore plus simple. Il n'est pas nécessaire d'utiliser la fonction encodeURIComponent ; jQuery le fait pour nous. Nous décrivons une fonction qui prend la réponse du serveur et l'ajoute à la variable de données. Si index.php renvoie simplement la valeur de la variable $_GET, alors nous verrons une alerte avec le texte « Le serveur a répondu : Bonjour, serveur !

    Diffuser objets complexes de php à javascript

    Nous rappelons que lors de la génération de JavaScript à partir de php, vous devez respecter la syntaxe JavaScript. Par conséquent, nous devons traduire les données de la représentation PHP vers la représentation JavaScript. La façon la plus simple de procéder est d'utiliser Format JSON et la fonction json_encode(), qui transformera l'objet ou tableau phpà une chaîne qui, lorsqu'elle est exécutée par le moteur JavaScript, produira un objet JavaScript.

    C’est là que les choses peuvent commencer à devenir confuses. Mais il n'y a pas de quoi s'inquiéter. Il suffit de mémoriser la séquence. PHP est exécuté en premier, puis JavaScript. Après avoir exécuté php, vous obtiendrez :

    var obj=("test": "123", "clé": "valeur"); alerte(obj.test);

    Qui, une fois exécuté, affichera une alerte avec le texte « 123 ».

    Total

    Vous devez vous rappeler que php génère du JS, il est donc assez simple de transmettre des données. Vous devez générer du JS de la même manière que du HTML. Soumis à la syntaxe JavaScript.

    Une requête supplémentaire est toujours utilisée pour transférer des données de JS vers PHP. La manière dont cela sera réalisé est la dixième question. Par exemple, un formulaire peut être généré et soumis. Ou ouvrez une iframe. Mais le point demeure. Comprenant cette essence, vous pouvez transférer n'importe quelle donnée du navigateur vers le serveur et inversement tout simplement.

    Il se trouve qu'en raison de la nature de mon travail, je dois répondre à des questions complexes problèmes techniques, et franchement noobish. Que faire, le niveau de formation des différents spécialistes est différent.

    Ils ont demandé : « Comment passer une variable de Javascript à PHP. » Je voudrais commencer la réponse à cette question par le fait que Javascript et PHP sont exécutés sur des machines physiques différentes, ce qui signifie que le simple fait de « passer une variable » au sens habituel de ce processus ne fonctionnera pas.

    Puisque Javascript s'exécute sur la machine client (client) et PHP sur la machine serveur (serveur), nous appellerons le transfert de données entre Javascript et PHP le terme « échange client-serveur », ce sera plus correct.

    Sur le web, l'échange de données s'effectue selon le schéma suivant : une requête est envoyée au serveur par le client, cette requête est traitée par le serveur, après quoi il renvoie certaines données (réponse) au client. Cette méthode d'échange est également utilisée par le navigateur lui-même. L'URL que vous entrez dans la barre d'adresse est la demande. Et la réponse est HTML, qui s'affiche sur la page du navigateur.

    Cependant, ce n’est pas nécessairement le navigateur lui-même qui doit demander des données au serveur. Votre code Javascript qui s'exécute sur la page peut également agir en tant que client. Pour ce faire, ils utilisent le composant de navigateur intégré XMLHttpRequest, qui lui-même peut adresser des requêtes au serveur et en recevoir des réponses, tandis que la page HTML elle-même n'est ni mise à jour ni modifiée du tout.

    Travailler avec le serveur via l'objet XMLHttpRequest est souvent appelé le mot le plus populaire - AJAX.

    Cependant, personnellement, je ne recommande pas de travailler directement avec cet objet. Le fait est que sur différents navigateurs cela fonctionne légèrement différemment et cela devra être pris en compte dans le code. De plus, Javascript « pur » ne dispose pas de moyens pratiques pour travailler avec des événements, vous vous retrouverez donc avec un « chausson » de code décent, qui sera également très probablement « bogué ».

    Le code utilisant cette bibliothèque est assez simple et concis. par exemple, si vous devez transmettre la valeur v=6789 au serveur, vous pouvez exécuter le code suivant

    JQuery.get("/index.php?v=6789", function(result)( alert(result); ));

    Dans ce cas, votre script dans /index.php recevra la valeur dans la variable $_GET['v']. Et tout ce qu'il envoie au flux de sortie (par exemple, en utilisant echo) se retrouvera dans la variable de résultat et sera affiché dans la boîte de dialogue contextuelle alert().

    Comme vous pouvez le constater, tout est simple.

    Vous pouvez de la même manière envoyer des données via POST, ainsi qu'envoyer des données codées en JSON (la méthode la plus couramment utilisée), mais je vous recommande de lire cela vous-même dans la documentation jQuery (voir les méthodes .ajax(), .post()). .

    8 réponses

    HTML/HTTP est sans état, en d’autres termes, ce que vous avez fait/vu sur la page précédente n’a aucun rapport page actuelle. Sauf lorsque vous utilisez quelque chose comme des sessions, des cookies ou GET/POST. Séances et biscuits sont assez simples à utiliser et la session est beaucoup plus sécurisée que les cookies. Plus sécurisé, mais pas complètement sécurisé.

    session:

    //Sur la page 1 $_SESSION["varname"] = $var_value; //À la page 2 $var_value = $_SESSION["varname"];

    N'oubliez pas d'exécuter session_start(); sur ces deux pages, avant de tenter d'accéder au tableau $_SESSION, et également avant qu'une sortie ne soit envoyée au navigateur.

    //Une page 1 $_COOKIE["varname"] = $var_value; //À la page 2 $var_value = $_COOKIE["varname"];

    La grande différence entre les sessions et les cookies est que la valeur de la variable sera stockée sur le serveur si vous utilisez des sessions et sur le client si vous utilisez des cookies. Je ne vois aucune bonne raison d'utiliser des cookies au lieu de sessions, à moins que vous ne souhaitiez que les données persistent entre les sessions, mais même dans ce cas, il serait peut-être préférable de les stocker dans la base de données et de les récupérer en fonction du nom d'utilisateur ou de l'ID.

    OBTENIR et POST