
| auteur : Eric Berger | a)Avant l'envoi du formulaire
La vérification avant envoi ne peut se faire en PHP, PHP étant un langage serveur, elle devra donc être faite à l'aide d'un langage client, généralement javaScript.
Cette vérification est utile dans le sens oû elle évite d'envoyé des données mal formatées vers le serveur, mais elle n'est pas fiable, car on ne peut contrèler de manière certaine le client et ce qu'il envoie (le javaScript peut être désactivé dans le navigateur, par exemple).
b)Avant enregistrement
C'est le meilleur moment pour vérifier les données, ceci assure que les données enregistrées respectent les règles fixées. La vérification avant enregistrement ne doit cependant porter que sur la validité du format des données et leur compatibilité avec les outils et supports (bdd, php).
c)Avant l'utilisation
A ce moment, les données devraient déjà être validées. Si ce n'était pas le cas, ça voudrait dire que des données invalides ont été sauvegardées, ce qui n'est pas acceptable. Il se peut cependant que des données doivent être préparées en vue d'une utilisation particulière, par exemple en supprimant les tags HTML pour l'affichage sur une page web. Dans ce cas seulement, une vérification des données se fera avant leur utilisation.
|
| auteur : Eric Berger |
-
Les caractères interprétables par HTML et les caractères accentués ou spéciaux
C'est la fonction htmlspecialchars() qui se charge de
remplacer les caractères suivants* :
& ' " < > par leur entité HTML. Cette
fonction est également très utile si on veut présenter
un exemple de code HTML dans une page web.
Quant aux caractères accentués ou spéciaux, c'est la
fonction htmlentities() qui est sollicitée. Elle fonctionne
de la même manière que htmlspecialchars() mais s'applique
à tous les caractères qui ont un équivalent en entité HTML.
il est également possible d'ignorer les quote simples et doubles.
* Il est possible de faire ignorer les quotes simple et doubles par la fonction.
-
Si on a à faire à une chaîne vide :
Il est parfois utile de savoir si on a affaire à une
chaîne vide, afin de ne pas enregistrer la donnée ou
d'ajouter une valeur par défaut.
En utilisant l'instruction suivante, il est possible de le savoir.
if(strlen($chaine) < 1){
echo "la chaîne est vide";
} else {
echo "la chaîne n'est pas vide";
} |
|
lien : Comment se protéger de la faille XSS ?
lien : Comment se protéger des failles d'injection ?
|
| auteur : Julp | Soit le champ de formulaire de méthode POST suivant :
<input type="text" name="mon_champ" ...> |
Tester si $_POST["mon_champ"] est un entier :
if (is_numeric($_POST['mon_champ']) && (intval(0 + $_POST['mon_champ']) == $_POST['mon_champ'])) {
echo 'Saisie correcte !';
} else {
echo 'Saisie incorrecte !';
} |
Tester si $_POST["mon_champ"] est un réel :
if(is_numeric($_POST['mon_champ'])) {
echo 'Saisie correcte !';
} else {
echo 'Saisie incorrecte !';
} |
Tester si $_POST["mon_champ"] est une adresse email valide :
if (ereg('^.+@.+\\..+$', $_POST['mon_champ'])) {
echo 'Email valide !';
} else {
echo 'Email invalide !';
} |
|
| auteur : Cyberzoide |
La syntaxe d'un champ input de type text est la suivante :
<input type="text" name="nom" value="valeur" /> |
Selon la norme XHTML, les valeurs des attributs des balises doivent être délimitées par des doubles quotes.
Exemple exact :
<input type="text" name="nom" value="<?php echo $nom; ?>" /> |
Exemple inexact :
<input type="text" name="nom" value=<?php echo $nom; ?> /> |
Dans ce dernier exemple, si la variable $nom comporte des espaces, le navigateur n'interprétera pas le reste de la chaîne de caractères.
De même, si cette variable contient des doubles quotes, il faudra les déspécialiser avec la fonction addslashes(), sinon ils vont interférer avec les doubles quotes de délimitation de la valeur d'attribut.
Exemple :
<input type="text" name="nom" value="<?php echo addslashes($nom); ?>" /> |
|
| auteur : Forum PHP |
Cela peut être utile pour vérifier le contenu des données
transmises par un formulaire quelque soit la méthode
($_GET ou $_POST).
On utilise donc la fonction
print_r()
qui affiche des informations à propos d'une variable, de
manière à ce qu'elle soit lisible.
Exemple :
Ce code peut également être utilisé pour afficher le contenu
de $_POST, $_SESSION ou $_SERVER
|
lien : Comment afficher (pour vérification) le contenu d'un tableau ?
|
| auteur : doof | Une fois de plus, on va faire appel aux expressions régulières et à la fonction preg_match. if (preg_match('#(^[\d(]+[ +*()/\d-]*[\d)]+$)#', $txt)) {
...
} |
Avec ce masque, il est même possible de remplacer toutes les opérations par leur résultat dans une chaine quelconque : $txt = '(5 + 2) * 11' ;
$txt=@preg_replace('#([\d(]+[ +*()/\d-]*[\d)]+)#e', "'<b>'.round($0, 3).'</b>'", $txt);
echo $txt; |
Il vaut mieux vérifier avant qu'elle ne renvoie pas d'erreur (ou utiliser l' inhibiteur d'erreur), une parenthèse non fermée ou une division par zéro va entrainer une erreur.
|
| auteur : Kerod |
Nous avons un SELECT généré dynamiquement. Pour obtenir et
réafficher sa valeur après soumission du formulaire auquel
il appartient, nous devons procéder comme l'exemple
ci-dessous l'indique.
<form action="page.php" method="post">
<select name="choix">
<?php
for($i = 0; $i < 10; $i++)
{
$selected = (isset($_POST['choix']) and $_POST['choix'] == $i)?'selected="selected"':'';
echo '<option value="'.$i.'" '.$selected.'>'.$i.'</option>';
}
?>
</select>
<input type="submit" value="Envoyer" />
</form> |
|
Consultez les autres F.A.Q's
Les sources présentés sur cette pages sont libre de droits,
et vous pouvez les utiliser à votre convenance. Par contre cette page de présentation de ces sources constitue une oeuvre intellectuelle protégée par les droits d'auteurs.
Copyright ©2003
Developpez LLC. Tout droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de
l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à 3 ans
de prison et jusqu'à 300 000 E de dommages et intérets.
Cette page est déposée à la SACD.
|