REGEX ou expression régulière ne marchan pas
boss0211
Messages postés
264
Statut
Membre
-
lami20j Messages postés 21644 Date d'inscription Statut Modérateur, Contributeur sécurité Dernière intervention -
lami20j Messages postés 21644 Date d'inscription Statut Modérateur, Contributeur sécurité Dernière intervention -
Bonjour,
je souhaiterais savoir pourquoi il n'y a que la regex mail qui fonctionne.
car enfaite mon problème c'est que lorsque ladresse de site ou la description son trop court ou invalide je voudrais que le message qui est dans else apparaisse mais rien n(aparais!
Quel est le problème??
http://boss021190.free.fr/ajoutpub.php
MERCI BIEN!!
je souhaiterais savoir pourquoi il n'y a que la regex mail qui fonctionne.
car enfaite mon problème c'est que lorsque ladresse de site ou la description son trop court ou invalide je voudrais que le message qui est dans else apparaisse mais rien n(aparais!
Quel est le problème??
http://boss021190.free.fr/ajoutpub.php
MERCI BIEN!!
<?php
if (!empty($_POST['pseudo']) AND !empty($_POST['mail']) AND !empty($_POST['boutton']) AND !empty($_POST['site']) AND !empty($_POST['description'])) // Si on a quelque chose à enregistrer
{
if(preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $_POST['mail']))
{
if(preg_match("#^http://[a-a0-9._-]{3,}\.[a-z]{2,4}$#", $_POST['boutton'] && $_POST['site']))
{
if(preg_match("#^[a-z0-9._-]{4,255}#", $_POST['description']))
{
//Identifiants de connexion à la base de données.
require("config.inc.php");
//Connexion à la base de données.
mysql_connect($host,$username,$password);
mysql_select_db($bdd_name);
// On utilise la fonction PHP htmlentities pour éviter d'enregistrer du code HTML dans la table
$pseudo = htmlentities ($_POST['pseudo']);
$mail = htmlentities ($_POST['mail']);
$boutton = htmlentities ($_POST['boutton']);
$site = htmlentities ($_POST['site']);
$nom = htmlentities ($_POST['nom']);
$description = htmlentities ($_POST['description']);
$description = nl2br($description);
// Ensuite on enregistre le message
$env=mysql_query("INSERT INTO pub VALUES('', '$pseudo', '$mail', '$boutton', '$site', '$nom','$description')");
// On se déconnecte de MySQL
mysql_close();
}
else
{
echo '<strong>Votre description est sois trop long, sois trop court, elle doit contenir au minimum 4caractère</strong><br />';
}
}
else
{
echo '<strong>Veuillez mettre des adresses de site valide!</strong><br />';
}
}
else
{
echo'<strong>Veuillez mettre une adresse mail valide!</strong><br />';
}
}
?>
A voir également:
- REGEX ou expression régulière ne marchan pas
- Expression écrite cm1 cm2 télécharger gratuit - Télécharger - Éducatifs
- Microsoft expression encoder - Télécharger - Divers Utilitaires
- Avoir du ping expression ✓ - Forum Réseau
- Expression de recherche - Guide
- PING tres eleve ✓ - Forum jeux en ligne
4 réponses
Some people, when confronted with a problem, think “I know, I’ll use regular expressions.”
Now they have two problems.
Jamie Zawinski, in comp.lang.emacs
Now they have two problems.
Jamie Zawinski, in comp.lang.emacs
Pas mal la citation ^^
$_POST['boutton'] && $_POST['site'] renvoie un booléen ce qui fait que tu teste ta regex sur un booleen.
$_POST['boutton'] && $_POST['site'] renvoie un booléen ce qui fait que tu teste ta regex sur un booleen.
Salut,
Just pour l'info.
$a && $b : vaut 1 si $a et $b sont vrais.
Chose qui n'est pas spécifique à tous les langages.
Par exemple en Perl && c'est un opérateur court-circuit qui renvoie la partie gauche ou droite en fonction de teste et pas 1 ou 0 comme le fait php ou C par exemple.
$a && $b renvoie $a si $a faux sinon $b
Donc l'auteur de la citation n'a pas pris en compte tous les langages ;) se qui fait apparaître le 3ème problème ;)
Voilà un exemple
P.S. Ce qui est valable pour un langage n'est pas forcément valable dans les autre et vice versa
Just pour l'info.
$a && $b : vaut 1 si $a et $b sont vrais.
Chose qui n'est pas spécifique à tous les langages.
Par exemple en Perl && c'est un opérateur court-circuit qui renvoie la partie gauche ou droite en fonction de teste et pas 1 ou 0 comme le fait php ou C par exemple.
$a && $b renvoie $a si $a faux sinon $b
Donc l'auteur de la citation n'a pas pris en compte tous les langages ;) se qui fait apparaître le 3ème problème ;)
Voilà un exemple
#! /usr/bin/perl
#
use warnings;use strict;
my $aa = "hello";
my $bb = "salut";
# la regex teste $aa ou $bb en fonction de ce que && va renvoyer
if ( ($aa && $bb) =~ /salut/ ) {
print "\$aa vrai\n"; # puisque && renvoi $bb et regex teste $bb
}
# $aa faux
$aa =""; # en Perl une chaine vide est fausse
unless ( ($aa && $bb) =~ /salut/ ) {
print "\$aa faux\n"; # puisque && renvoi $aa et regex teste $aa
}
lami20j
P.S. Ce qui est valable pour un langage n'est pas forcément valable dans les autre et vice versa