Suppression dans saisie Formulaire

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Suppression dans saisie Formulaire

par Joss850csi » 17 oct. 2007, 20:14

ho ho desolé... c'est bon ça marche
j'ai un peu merder dans le code mais là c'est bon

par Joss850csi » 17 oct. 2007, 20:08

Merci, Merci mais bon je viens d'essayer et ça ne me supprime rien du tout !!!

C'est fou mais a chaque fois rien ne marche :cry:

Pourtant pas d'erreur mais marche po

par Berzemus » 17 oct. 2007, 09:23

Merci Kaoteknik, c'est vrai que j'ai été un peu court sur le coup..
(pour ma défence, j'étais fatigué.. :wink: )

par Kaoteknik » 16 oct. 2007, 23:46

Bonsoir,

les expressions regulières (regex) font l'objet d'une documentation extrêmement fournie et il serait fastidieux d'en énumérer ici toutes les possibilités. En cherchant un peu il est facile de trouver des tutoriaux qui en expliquent les principales fonctions et leur application...

C'est un assez gros morceau à digérer lorsqu'on se lance dans le php. Tu pourras par exemple trouver des réponses en étudiant le sujet sur ce site : http://www.expreg.com/index.php

Dans l'exemple qu'à proposé Berzemus, la fonction preg_replace va permettre de remplacer les espaces contenus dans la chaîne de la variable $_REQUEST par une chaîne vide.

Le premier argument de la fonction ("|\W|") indique que l'on souhaite sélectionner tout ce qui n'est pas constitué de lettres ou de chiffres (en l'occurence dans ton cas les espaces seront considérés comme "éléments" à traîter) et qu'on veut le(s) remplacer par le second argument ("") qui n'est rien d'autre qu'une chaîne vide. Le troisième argument de la fonction est la chaîne que l'on souhaite traîter.

Voilà, en espérant que ça pourra t'aider. Je te conseille tout de même d'étudier le sujet en profondeur, tu y apprendras de nombreuses choses intéressantes, comme par exemple effectuer des contrôles sur les formulaires ! :)

par Joss850csi » 16 oct. 2007, 22:36

tu peux m'en dire plus sur cette fonction ?

par Berzemus » 16 oct. 2007, 21:59

Pourquoi pas le regex ?
$pseudo = preg_replace("|\W|","",$_REQUEST['pseudo'])
et elle est belle la vie..

par Joss850csi » 16 oct. 2007, 21:50

ben en fait j'aimerais que si un user tape "le frelon" dans un champs de formulaire, je voudrai supprimer l'espace ce qui donnerai "lefrelon"

Autre chose sur les suppressions j'ai fais ce bout de code
<?php
$pseudo = ($_REQUEST['pseudo']);
$remplacements = array(
" " => "_",
'"' => '',
';' => '',
',' => '',
'?' => '',
'!' => '',
'@' => '',
'^' => '',
'#' => '',
'{' => '',
'}' => '',
'(' => '',
')' => '',
'=' => '',
'+' => '',
'°' => '',
'*' => '',
'/' => '',
'.' => '',
'$' => '',
'%' => '',
'î' => 'i',
'ï' => 'i',
'û' => 'u',
'ô' => 'o',
'ù' => 'u',
'à' => 'a',
'â' => 'a',
'€' => 'e',
'ê' => '',
'ô' => 'o',
'&' => '' );
$pseudo = strtr($pseudo, $remplacements);
$pseudo = addslashes($_REQUEST['pseudo']);
$password = addslashes($_REQUEST['password']);
?>
Mais je voudrais plutot utiliser str-replace mais ça ne marche pas grrr....

par Tracker » 15 oct. 2007, 21:46

Tu pourrais donner l'exemple de deux chaines, celle que tu reçois et celle que tu voudrais obtenir ?

Tracker.

par Joss850csi » 15 oct. 2007, 21:43

ben j'arrive pas à echapper les espaces !!!

par Ryle » 15 oct. 2007, 10:05

Tout dépends des caractères que tu veux supprimer... s'il s'agit juste des guillemets et des apostrophes, tu peux utiliser str_replace() ou même strtr() .. pas besoin d'htmlentities() ou autre, maintenant si tu as d'autres choses à modifier ou a supprimer dans ta chaine (entités html, tags html, accents, ..) bah faut combiner effectivement...

Suppression dans saisie Formulaire

par Joss850csi » 14 oct. 2007, 20:52

Bonsoir,

J'aimerai savoir si il existe un moyen plus smple pour supprimer des caractere dans un formulaire sans devoir passer par :
htmlspecialchars puis str_replace

Car mon but est en fait de vouloir supprimer les " et ' dans les formulaires si des utilisateurs les ont mis biensur... et je ne vois que cette solution...

Qu'en pensez-vous ?