yoyo@invalid.news.free.fr a écrit :
> j'ai eu le cas sur un script ou j'ai essayé de faire une isset suivi d'un
> empty imbriqué dans le premier if.
Ça n'a aucun intérêt. Parce qu'en PHP, une chaîne vide
> je me demandais si le formulaire est posté vide est ce que les variables
> testé par isset existe quand même,
Normalement oui.
> ci joint un exemple de code.
>
> if(isset($_POST['sexe']) && (isset($_POST['nom'])) &&
> (isset($_POST['prenom'])) && (isset($_POST['code_postal']))
> &&(isset($_POST['adresse'])) && (isset ($_POST['ville'])) &&(
> isset($_POST['telephone'])) &&(isset($_POST['courriel'])) &&
> (isset($_POST['message']))){
C'est pas très lisible tout ça, avec des parenthèses en trop, on se
croirait en LISP

Tu devrais faire une fonction qui teste la présence
de toutes ces clés dans le tableau $_POST. Et ne pas mettre des
parenthèses inutiles.
> $sexe=$_POST['sexe'];
> $nom=$_POST['nom'];
> $prenom=$_POST['prenom'];
> $cp=$_POST['code_postal'];
> $adresse=$_POST['adresse'];
> $ville=$_POST['ville'];
> $telephone=$_POST['telephone'];
> $mail=$_POST['courriel'];
> $demande=$_POST['message'];
À quoi ça sert de supprimer une fonctionnalité si les utilisateurs
s'empressent de jeter les variables HTTP dans le scope global comme tu
le fais ?
> if (!preg_match("!^0[1-48][0-9]{8}$!", $_POST['telephone']))
> {
> echo "<br/>veuillez saisir un numéro téléphone correct <br>";
> $erreur = 1;
> }
Un numéro de téléphone est une suite indéterminée de chiffres

À
moins qu'il n'y ait une norme internationale ?
> if(empty($_POST['courriel']))
> {
>
> echo "<br/><p style= \"color:red;\"> $message_erreur votre mail <br>";
> $erreur = 1;
> }else
> /*if (!preg_match("!^[a-z0-9.-_]+@[a-z.]+.[a-z]{2,3}$!"
> $_POST['mail']))
Les adresses en .info n'ont pas le droit de citer chez toi ? Et quid
de ceux qui ont un courriel du type toto.nom.fr ? J'avais essayé de
faire une Regex qui match les adresses courantes, mais elle n'est
malheureusement pas universelle :
<http://lupusmic.org/pro/docs/regex.php>. Son amélioration est dans ma
TODO List
> $sql=pg_query($conn, "INSERT INTO contact(sexe, nom, prenom, adresse,
> code_postal, ville, telephone, courriel, message)
>
> VALUES('$sexe', '$nom', '$prenom', '$adresse', '$cp','$ville', '$telephone', '$mail','$demande')");
XSS détectée !
--
Mickaël Wolff aka Lupus Michaelis
http://lupusmic.org