Le langage P.H.P. 2
• Tapez dans l’url : http:
AdresseIP/votre chemin/suite.php?nom=toto&prenom=titi
Y a t-il des erreurs dans la page affichée ? oui ou non
D’après ce test, pensez-vous qu’un utilisateur peut mettre directement des valeurs dans l’url sans être passé par le lien de la page précédente ?
oui ou non
• Tapez dans l’url : http://AdresseIP/votre_chemin/suite.php.
Y a t-il des erreurs dans la page affichée ? oui ou non
Pourquoi d’après vous ? ____________________________________________________
Notez le message d’erreur : __________________________________________________
• Il faut régler le problème des erreurs, qui proviennent du fait qu’on demande d’afficher des variables qui n’existent pas.
Pour cela on va utiliser une fonction :
La fonction isset($nomVariable) retourne « VRAI » si la variable en paramètre existe, «FAUX» sinon.
Exemple :
- if (isset($_GET['prenom']) )
- echo ("Bonjour " . $_GET['prenom']);
- else
- echo ("Bonjour inconnu");
Faire en sorte que si l’on tape directement l’url dans la barre du navigateur, il n’y ait plus de message d’erreur.
T.P. sur les formulaires
Les tableaux associatifs des variables :

Si par exemple une zone de texte a pour nom motdepasse : <input type=‘text’ name=‘motdepasse’>
sa valeur sur la page suivante pourra être atteinte grâce à :
- • $_GET[‘motdepasse’] si la méthode du formulaire envoyé est GET
- • $_POST[‘motdepasse’] si la méthode du formulaire envoyé est POST
- • $_REQUEST[‘motdepasse’] dans tous les cas.
Pour effectuer vos tests, vous pouvez utiliser la fonction extract() qui vérifie chaque clé afin de contrôler si elle a un nom de variable valide, et retourne le nombre de variables importées avec succès dans la table des symboles.
Cela évite de mettre $_POST ou autre devant le nom de la variable.
extract($_POST);
echo $motdepasse;
Attention à n’utiliser que pour les tests car dans certains cas cela peut engendrer des failles de sécurité
➢ Rappel SESSION : La déclaration d’utilisation d’une session doit se faire avant tout code HTML
| //Création d’une variable de session | | //récupération d’une variable de session |
| //sur une page | ************** | //sur une autre page |
session_start();
$_SESSION["nom"]="toto"; …
| |
session_start();
echo $_SESSION["nom"]; …
|
➢ Rappel PASSAGE VALEUR PAR URL
La valeur peut être donnée en dur, ou provenir d’une variable locale, dans ce cas on indique $valeur
page.php?nomVar=valeurEnDur&autrVar=$valeurVar
Travail à réaliser :
1° On considère le formulaire suivant : formulaire.htm
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>LES FORMULAIRES EN HTML</title>
<SCRIPT LANGUAGE="JavaScript">
document.write ("Ici du javascript")
</script>
</head>
<body bgcolor="#FFFFFF">
<h1 align="center">Utilisation des formulaires</h1>
<FORM METHOD="get" ACTION="recupForm.php" NAME="nomForm">
Nom : <input type="text" name="nom" size="10" maxlength="20">
<p>
Mot de passe : <input type="password" name="mdp" size="6" maxlength="6">
<input type="hidden" name="cache" value="valeur_cache">
</p>
<p>
Commentaire : <textarea name="commentaire" rows="2" cols="10">Tapez votre texte</textarea>
</p>
<p>
Vous préferez :
<input type="checkbox" name="NS" value="NouvelleStar" checked>Nouvelle Star
<input type="checkbox" name="SA" value="StarAc">Star Academy
</p>
<p>
La réponse :
<input type="radio" value="vrai" name="reponse"> Vrai
<input type="radio" value="faux" name="reponse" checked>Faux </p>
<p>
Vous préférez :
<select size="1" name="parfum">
<option value="Pistache" >Pistache
<option value="Fraise">Fraise
</select>
</p>
<p>
<button type="button" value="Bouton" name="Bi" onclick="JavaScript: alert('Bouton image')"> <IMG src="image.jpg"></button>
<!--<button type="button" value="Bouton" name="Bt" onclick="JavaScript: alert('Bouton text')">cliquer</button> -->
<input type="button" value="Bouton" name="BEnvoi" onclick="JavaScript: alert('Bouton text')">
<br><br>
<input type="submit" value="Envoyer" name="BEnvoi">
<input type="reset" value="Rétablir" name="BReset">
</p>
</FORM>
</body>
</html>
Ce qui va donner à l'affichage :
Utilisation des formulaires
2° Vérifiez le en transférant la page sur votre serveur.
3° Le formulaire utilise la méthode : GET ou POST ?
4° Vers quelle page est dirigé le formulaire ? ___________________________________________
5° Créer cette page et afficher les valeurs du formulaire.
6° Tester le formulaire en ne cochant aucune des 2 cases à cocher. Cela génère une erreur. Quel est le code qui permet de ne pas générer l’erreur de variable inconnue ? Le rajouter ___________________________
7° Rajouter en bas de la page un lien qui retourne vers la page formulaire.htm
- Est-ce que les valeurs qui étaient saisies sont toujours présentes quand vous retournez dans le formulaire ? oui ou non
8° Faire en sorte que le nom qui était saisi soit remis automatiquement dans sa zone de texte lorsque l’on revient au formulaire en passant par le lien. Deux façons à tester :
- a. En utilisant le passage de variable par l’url du lien. La noter ici ''_''
Faut-il garder l’extension .htm du formulaire ? oui ou non
Mettre cette url en commentaire et tester la seconde façon.
- b. En utilisant une variable de session pour le nom.
Noter ici le code qui permet de réafficher le nom saisi dans la zone de texte.