Comment utiliser le superglobale en php
Lili_754
Messages postés
137
Statut
Membre
-
tryan44 Messages postés 1289 Date d'inscription Statut Membre Dernière intervention -
tryan44 Messages postés 1289 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je debute en php, on me demande d'écrire une première version du script inscrireEtudiant qui retourne les valeurs transmises :
en utilisant $_SERVER['QUERY_STRING']
en utilisant $_GET
en utilisant $_REQUEST
Ecrire une deuxième version du script qui teste si l'un des champs est vide et renvoie, dans ce cas, le formulaire à compléter.
Fichier à créer : inscrireEtudiant.php
<?php
error_reporting(E_ALL);
include "entete.php";
echo DOCTYPE_XHTML_BASIC_11."\n";
echo HTML_FR."\n";
echo "<head>";
echo META_TYPE_TEXT_HTML_UTF8."\n";
echo "<title> Saisir son groupe </title> \n";
echo "</head> \n";
echo "<body>";
?>
<form method='get' action=".$_SERVER['PHP_SELF'].">
<fieldset> <legend> Veuillez remplir le formulaire d'inscription </legend>
<span> Nom </span>
<input type='text' id="Nom" name="Nom"/>
<br/><br/>
<span> Prenom </span>
<input type='text' id='Prenom' name='Prenom' />
<br/><br/>
<span> Date de naissance <span>
<!-- Code pour la date de naissance -->
<br/><br/>
<input type='submit' value='valider' />
</fieldset>
</form>
<?php
echo "</body>";
echo "</html>";
?>
Mon souci est que je ne vois pas ou et comment utiliser les superglobales :(
Merciiiii pour votre aide d'avance
Je debute en php, on me demande d'écrire une première version du script inscrireEtudiant qui retourne les valeurs transmises :
en utilisant $_SERVER['QUERY_STRING']
en utilisant $_GET
en utilisant $_REQUEST
Ecrire une deuxième version du script qui teste si l'un des champs est vide et renvoie, dans ce cas, le formulaire à compléter.
Fichier à créer : inscrireEtudiant.php
<?php
error_reporting(E_ALL);
include "entete.php";
echo DOCTYPE_XHTML_BASIC_11."\n";
echo HTML_FR."\n";
echo "<head>";
echo META_TYPE_TEXT_HTML_UTF8."\n";
echo "<title> Saisir son groupe </title> \n";
echo "</head> \n";
echo "<body>";
?>
<form method='get' action=".$_SERVER['PHP_SELF'].">
<fieldset> <legend> Veuillez remplir le formulaire d'inscription </legend>
<span> Nom </span>
<input type='text' id="Nom" name="Nom"/>
<br/><br/>
<span> Prenom </span>
<input type='text' id='Prenom' name='Prenom' />
<br/><br/>
<span> Date de naissance <span>
<!-- Code pour la date de naissance -->
<br/><br/>
<input type='submit' value='valider' />
</fieldset>
</form>
<?php
echo "</body>";
echo "</html>";
?>
Mon souci est que je ne vois pas ou et comment utiliser les superglobales :(
Merciiiii pour votre aide d'avance
2 réponses
-
Salut,
Il manque l'attribut "value" sur les champs de type "text".
Il manque l'attribut "name" sur le champ de type "submit".
Pour l'exemple :<input type="text" id="Nom" name="Nom" value="" /> <input type="submit" name="Valider" value="Valider" />
Lors de l'envoie du formulaire soit "$_POST['Valider']", testez les variables en question pour voir ce qu'elles retournent et comprendre à quoi elles servent :if(isset($_POST['Valider'])){ echo $_GET['Nom'].'<br/>'; echo $_SERVER['QUERY_STRING'].'<br/>'; print_r($_REQUEST); }
https://www.php.net/manual/fr/language.variables.superglobals.php
http://php.net/manual/fr/reserved.variables.server.php
Une question stupide engendre une réponse stupide!
Une question mal formulé engendre une réponse aléatoire! -
<form method="GET" action="page-de-destination.php">
Dans la page de destination et si le "submit" du formulaire vaut "Valider" :if(isset($_GET['Valider'])){ //reste du code }