Variable avec espace - formulaire - supprimer les espaces - PHP - Programmation
Marsh Posté le 18-07-2008 à 15:05:51
http://www.manuelphp.com/php/function.trim.php ??
edit :
Marsh Posté le 18-07-2008 à 15:05:55
trim
edit
Marsh Posté le 18-07-2008 à 15:09:25
On se calme...
D'après mes recherches trim() supprimerais uniquement le début et la fin de la chaine de caractères.
Marsh Posté le 18-07-2008 à 15:10:20
ben si tu as la phrase " " sans les guillements
tous els espaces sont au debut ET a la fin,non ?
Marsh Posté le 18-07-2008 à 15:11:06
Oui, mais si l'espace se trouve entre deux mots: "jean pignon"
Marsh Posté le 18-07-2008 à 15:13:00
ça ne supprimera rien
alors que " jean bon " deviendra "jean bon"
Marsh Posté le 18-07-2008 à 15:13:53
Utilise str_replace(" ","" ) si tu veux virer tous les espaces de ton champ, il me semble que ça fonctionne
http://www.manuelphp.com/php/function.str-replace.php
Marsh Posté le 18-07-2008 à 15:15:15
Marty_McFly a écrit : str_replace(" ","" ) ?? |
" le petit padawan a plein de questions " devient "lepetitpadawanapleindequestions"
Marsh Posté le 18-07-2008 à 15:16:02
Merci marty et flo,
est-ce que cela est possible au passage:
if(empty(trim($_POST['nom']))){
echo "<p class=\"red\">Veuillez indiquer votre Nom</p>";
$erreur= 1;
}
Marsh Posté le 18-07-2008 à 15:19:32
Essaie, tu verras bien
A premiere vue, y'a pas de raisons que ça marche pas
Marsh Posté le 18-07-2008 à 15:21:42
et pourtant... cela ne marche pas... si je pose des questions ce n'est pas pour spamer c'est pour avoir de l'aide.
Marsh Posté le 18-07-2008 à 15:23:38
dis plutôt ce qui ne marche pas, sinon on sort nos boules... (de cristal )
essaie ceci :
Code :
|
Marsh Posté le 18-07-2008 à 15:25:11
le code au dessu renvoie cela:
Fatal error: Can't use function return value in write context
Marsh Posté le 18-07-2008 à 15:32:00
cela fonctionne merci, mais ne supprime pas mes espaces.
mon code:
$nom = (isset($_POST['nom'])) ? trim($_POST['nom']) : '';
if ($nom == '')
{
echo '<p class="red">Veuillez indiquer votre Nom</p>';
$erreur= 1;
}
else{
$nom=$_POST['nom'];
echo "Votre nom: ".$nom."<br>";
}
quand j'ecrit "a dfdf" cela me sort une variable avec espace:
a dfdf
Marsh Posté le 18-07-2008 à 15:35:13
attends, tu veux quoi exactement? supprimer tous les espaces de la chaine de caractères, ou bien supprimer les espaces à gauche et a droite?
" Mais ou et donc or ni car " doit donner "Maisouetdoncornicar" ou "Mais ou et donc or ni car" ?
Marsh Posté le 18-07-2008 à 15:55:00
dans ce cas là
Code :
|
Marsh Posté le 18-07-2008 à 15:58:30
peux tu s'il te plais me commenter un peu le code ? je n'ai pas l'habitude des commandes raccourcit comme le "?" ou le ":"...
Marsh Posté le 18-07-2008 à 16:00:38
pas de probleme:
en gros, la syntaxe c'est
$nom = (condition) ? (resultat si condition=true) : (resultat si condition = false);
Marsh Posté le 18-07-2008 à 16:02:25
haaa, vraiment sympa, je connaissans pas.
Merci pour votre aide, je vais appliquer tout cela.
Marsh Posté le 18-07-2008 à 16:09:31
je vais être chiant mais cela ne fonctionne pas.
ca me renvoie:
Votre nom: jean duppont
c'est bon j'ai pigé pourquoi
Marsh Posté le 18-07-2008 à 16:43:22
une erreur de manip je pense, tout fonctionne bien, j'aime beaucoup cette manière de coder une condition sur une seule ligne, très rapide et pratique
Marsh Posté le 18-07-2008 à 16:47:20
if(empty($tel) OR !is_numeric($tel) OR (($tel>=0100000000) AND ($tel<=99999999999))){
Ca fais trop pour une seule commande ?
Me manque plus que ça et j'ai fini, en faite je peux le faire sur deux conditions, mais j'aimerais economiser le code qu'il soit moin "lourd"...
Marsh Posté le 18-07-2008 à 16:59:47
non, ça fait pas trop, mais perso, je trouve ça assez moche
Marsh Posté le 18-07-2008 à 17:02:59
Tu a une autre maniere de proceder ?
j'ai trouvé cette solution:
$tel = (($_POST['tel']>=0100000000) AND ($_POST['tel']<=99999999999)) ? str_replace(" ", "", $_POST['tel']) : '';
if(empty($tel) OR !is_numeric($tel)){
echo "<p class=\"red\">Veuillez indiquer un numero de telephone valide</p>";
$erreur= 1;
}
je pense pouvoir retirer la codition is_numeric, ainsi que le str_replace
Marsh Posté le 18-07-2008 à 17:07:31
$tel = (($_POST['tel']>=0100000000) AND ($_POST['tel']<=99999999999)) ? $_POST['tel'] : '';
if(empty($tel)){
echo "<p class=\"red\">Veuillez indiquer un numero de telephone valide</p>";
$erreur= 1;
}
Voila qui marche !
Bon chers programmeurs, vous m'avez été d'un recourt instantané (comme les royco) je vous remercie donc pour tout ce temps que vous m'avez économisé.
Un grand merci à vous donc et un petit clin d'œil à marty McFly, héro de mon film préféré.
@bientôt pour de nouvelles aventures Phpesques.
Marsh Posté le 18-07-2008 à 17:10:57
a ta place, je mettrais plutot une expression régulière ( http://toutjavascript.com/savoir/savoir22.php3 pour le principe, google pour voir ce que ça donne en php [flemme de chercher inside] )
ce qui donnerait, au final
$tel = ( isset( $_POST['tel'] ) ) ? $_POST['tel'] : '';
if ( !ereg_match("^0[1-9]{1}[0-9]{8}$",$tel) ) {
echo "<p class=\"red\">Veuillez indiquer un numero de telephone valide</p>";
$erreur= 1;
}
Marsh Posté le 18-07-2008 à 17:19:02
Ca marche pas, j'ai la flemme de chercher je fatigue un peu, on remet ca demain après que j'ai cherché, vais pas vous laisser tout faire à ma place non plus, c'est pas correcte.
Thx
Marsh Posté le 18-07-2008 à 17:27:28
ok, en tout cas j'ai trouvé mon erreur:
je suis distrait, c'est tout
remplace ereg_match( par ereg( et ça va rouler tout seul
Résultat:
Code :
|
Marsh Posté le 18-07-2008 à 17:35:55
Tu gère !
Voila qui est parfait.
Que c'est bon l'entraide !
Thanx à bientôt.
Marsh Posté le 18-07-2008 à 15:04:41
Bonjour,
Voila j'ai un petit soucis que je vous expose:
J'ai fais un formulaire, puis, à la page verif, je vérifie que les champs ne sont pas vides avec empty().
Seulement je viens de me rendre compte qu'un utilisateur peux tres bien mettre juste des espaces et cela fonctionne.
Comment faire ?
J'ai pensé qu'avec une fonction je pourrais supprimer les espaces de chaque variable POST.
Qu'en pensez vous ? avez vous des idées ?
Merci par avance pour votre aide.