Manuel PHP

PHP et HTML

PHP et HTML sont très interactifs : PHP peut générer du HTML et HTML peut passer des informations à PHP. Avant de lire cette faq (foire aux questions), il est important que vous appreniez comme récupérer des variables externes à PHP. La page du manuel correspondante contient beaucoup d'exemples. Faites particulièrement attention à ce que signifie register_globals.

  1. Quel encodage/décodage ai-je besoin lors du passage d'une valeur via un formulaire/une URL ?
  2. J'essaye d'utiliser <input type="image"> mais les variables $foo.x et $foo.y ne sont pas disponibles. $_GET['foo.x'] n'existe pas non plus. Où sont-elles ?
  3. Comment créer un tableau dans une balise <form> HTML ?
  4. Comment puis-je récupérer le résultat d'un champ HTML SELECT multiple ?
  5. Comment puis-je passer une variable de Javascript vers PHP ?
  6. Quel encodage/décodage ai-je besoin lors du passage d'une valeur via un formulaire/une URL ?

    htmlspecialchars() pour encoder la chaîne.

  7. URL : une URL est constituée de plusieurs parties. Si vous voulez que vos données soient interprétées comme un seul élément, vous devez les encoder avec la fonction urlencode().

  8. Example#1 Un élément de formulaire HTML caché

    1. <?php
    2. echo '<input type="hidden" value="' . htmlspecialchars($data) . '" />';  
    3. ?> 

    Note: Il n'est pas correct d'utiliser la fonction urlencode() pour vos données $data, car il en est de la responsabilité du navigateur de les encoder. Tous les navigateurs populaires le font correctement. Notez que cela s'effectue sans considération de la méthode utilisée (c'est-à-dire GET ou POST). Vous devez uniquement noter ce cas pour les requêtes GET, car les requêtes POST sont généralement cachées.

    Example#2 Données éditables par l'utilisateur

    1. <?php
    2. echo "<textarea name=\"mydata\">\n";  
    3. echo htmlspecialchars($data)."\n";  
    4. echo '</textarea>';  
    5. ?> 

    Note: Les données sont montrées dans le navigateur comme prévues, car celui-ci interprétera les symboles HTML échappés. Au moment de la validation, via la méthode GET ou POST, les données devraient être url-encodées par le navigateur avant le transfert et directement url-décodées par PHP. Donc, finalement, vous n'avez pas à effectuer d'url-encodage/url-decodage vous-même, tout est effectué automatiquement.

    Example#3 Dans une URL

    1. <?php
    2. echo "<a href=\"" . htmlspecialchars("/nextpage.php?stage=23&data=" . 
    3.       urlencode($data)) . "\">\n";  
    4. ?> 

    Note: En fait, vous simulez une requête GET HTML, il est nécessaire d'utiliser manuellement la fonction urlencode() sur vos données.

    Note: Vous devez utiliser htmlspecialchars() sur l'URL complète, car l'URL se comporte comme la valeur d'un attribut HTML. Dans ce cas, le navigateur fera un htmlspecialchars() sur la valeur et passera le résultat à l'URL. PHP devrait comprendre l'URL correctement, car vous avez url-encodé les données. Vous devez noter que & dans l'URL est remplacé par &amp;. Bien que la plus part des navigateurs devraient corriger cela si vous l'oubliez, ce n'est pas toujours le cas. Donc, même si votre URL n'est pas dynamique, vous devez utiliser la fonction htmlspecialchars() sur l'URL.

    J'essaye d'utiliser <input type="image"> mais les variables $foo.x et $foo.y ne sont pas disponibles. $_GET['foo.x'] n'existe pas non plus. Où sont-elles ?

    Variables externes à PHP". Par exemple, en utilisant $_GET['foo_x'].

    Note: Les espaces dans les noms de variables sont également converties en un souligné bas.

    Comment créer un tableau dans une balise <form> HTML ?

    fonctions sur les tableaux de variables et la section sur les variables externes à PHP.

    Comment puis-je récupérer le résultat d'un champ HTML SELECT multiple ?

    count() peut être utilisée pour déterminer combien d'options ont été sélectionnées, et la fonction sort() peut être utilisée pour trier le tableau, si nécessaire.

    Notez que si vous utilisez Javascript, [] dans le nom de l'élément peut vous poser problème lorsque vous tenterez d'accéder à celui-ci par son nom. Utilisez plutôt l'indice numérique de l'élément dans ce cas, ou bien utilisez les simples guillemets pour entourer cet élément, comme :

    variable = documents.forms[0].elements['var[]'];
          

    Comment puis-je passer une variable de Javascript vers PHP ?

    Utiliser PHP

Remonter Remonter
L'éditeur javascript - CSS - Gentoo - Tutoriaux PHP - Tutoriels PHP - Breizh Blog