Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
pratique:informatique:php [22/10/2015 14:35] Zatalyzpratique:informatique:php [30/11/2020 10:36] (Version actuelle) – modification externe 127.0.0.1
Ligne 111: Ligne 111:
   * Entrer une zone de texte (définir le nombre de lignes, largeur, etc) : ''<nowiki><textarea name="message" rows="8" cols="45">Exemple pré-remplit</textarea></nowiki>''   * Entrer une zone de texte (définir le nombre de lignes, largeur, etc) : ''<nowiki><textarea name="message" rows="8" cols="45">Exemple pré-remplit</textarea></nowiki>''
   * Valider (bouton) : ''<nowiki> <input type="submit" value="Valider" /> </nowiki>''   * Valider (bouton) : ''<nowiki> <input type="submit" value="Valider" /> </nowiki>''
 +  * Liste déroulante : <code>
 +    <select name="choix">
 +    <option value="choix1">Choix 1</option>
 +    <option value="choix2">Choix 2</option>
 +    </select></code>
 +  * Case à cocher (résultat on/rien): ''<input type="checkbox" name="case" id="case" /> <label for="case">Ma case à cocher</label>''. "Label" permet de cliquer sur le texte plutôt que la case pour cocher (asssocier ''id'' et ''for'').
 +  * Bouton radio, avec l'un présélectionné avec l'attribut ''checked="checked"''. Tous les boutons d'un même choix partagent le même ''name=''. ''<input type="radio" name="question" value="oui" id="oui" checked="checked" /> <label for="oui">Oui</label><input type="radio" name="question" value="non" id="non" /> <label for="non">Non</label>''
 +  * Champs cachés : l'information est transmise, mais non affichée au lecteur : ''<input type="hidden" name="pseudo" value="monpseudo" />''
 +
  
 Pour récupérer les donnés (pour ''name='') :   Pour récupérer les donnés (pour ''name='') :  
   * ''<nowiki><form action="cible.php" method="post"> ... </form> </nowiki>''(cible.php est le fichier où sera affiché le résultat après submit)   * ''<nowiki><form action="cible.php" method="post"> ... </form> </nowiki>''(cible.php est le fichier où sera affiché le résultat après submit)
 +
 +<WRAP center round important 60%>
 +Sur les données récupérées par $_POST et $_GET, ajouter ''htmlspecialchars'' pour bloquer l'interprétation de balises html. Exemple :
 +<code php><?php echo htmlspecialchars($_POST['prenom']); ?> !</p></code>
 +
 +La fonction ''strip_tags'' enlèvera les balises html qui auraient pu être ajoutées.
 +</WRAP>
 +
 +Pour résumer : 
 +<code php><form action="cible.php" method="post">
 +<p>
 + <input type="text" name="prenom" />
 +<br />
 + <textarea name="message" rows="8" cols="45">
 + Votre message ici.
 + </textarea>
 +<br />Choississez : 
 + <select name="choix">
 + <option value="choix1">Choix 1</option>
 + <option value="choix2">Choix 2</option>
 + <option value="choix3">Choix 3</option>
 + <option value="choix4">Choix 4</option>
 + </select>
 +<br />
 +
 + <input type="checkbox" name="case1" id="case1" /> <label for="case1">Ma case à cocher</label>
 + <br /><input type="checkbox" name="case2" id="case2" /><label for="case2">Ma case à cocher 2</label>
 + <br /><input type="checkbox" name="case3" id="case3" /><label for="case3">Ma case à cocher 3</label>
 +<br />
 +    Êtes-vous d'accord ?
 + <input type="radio" name="frites" value="oui" id="oui" checked="checked" /> <label for="oui">Oui</label>
 + <input type="radio" name="frites" value="non" id="non" /> <label for="non">Non</label>
 +<br />
 +    <input type="submit" value="Valider" />
 +    
 +</p>
 +</form></code>
 +
 +===== Session et cookies =====
 +Le cookie (''$_COOKIE'') est limité en taille, donc plus il y a d'infos à transiter, plus y'a de cookies.
 +La session (''$_SESSION'') est gérée par php.
 +
 +Si on utilise des informations de session, on doit ajouter le code php ''session_start()'' au début de la page, avant les infos en html (y compris ''<!DOCTYPE>'').
 +
 +Pour fermer la session d'un utilisateur avant la fin du délai : ''session_destroy()''
 +
 +On peut récupérer n'importe où les infos de session, ensuite. 
 +  $_SESSION['pseudo'] = 'Cémoi';
 +  echo $_SESSION['pseudo']
 +
 +
 +Le cookie a un temps d'expiration défini par [[wpfr>Horodatage#PHP|timestamp]]. Exemple pour un cookie d'un an : ''time() + 365*24*3600)''. Ajouter une sécurité "httponly" (le true à la fin) pour éviter des failles.
 +  <?php setcookie('pseudo', 'Cémoi', time() + 365*24*3600, null, null, false, true); ?>
 +  
 +Comme pour la session, le cookie doit être défini avant tout et surtout avant le html. Un cookie par info, par exemple pour stocker le pseudo, un autre pour l'âge...
 +
 +Pour l'afficher ''$_COOKIE['pseudo']''
CC Attribution-Noncommercial-Share Alike 4.0 International Driven by DokuWiki
pratique/informatique/php.1445517320.txt.gz · Dernière modification : 30/11/2020 10:35 (modification externe)