WikiBtsSio

142sPpe21tsioCTpLangagePhp2Me

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 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&nbsp;</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

Nom :

Mot de passe :

Commentaire :

Vous préferez : Nouvelle Star Star Academy

La réponse : Vrai Faux 

Vous préférez :





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.



Il n'y a pas de commentaire sur cette page. [Afficher commentaires/formulaire]