:hello:
j’ai entendu à la radio ce matin, qu’on était le plus efficace au boulot entre 9H et 10H… c’est con, j’arrive à 9h30 et je commence pas de bosser avant 10H ![]()
:hello:
j’ai entendu à la radio ce matin, qu’on était le plus efficace au boulot entre 9H et 10H… c’est con, j’arrive à 9h30 et je commence pas de bosser avant 10H ![]()
Vous voulez une regexp qui valide les adresses emails conformes à la norme RFC822 ?
Et bien voilà :
<?php
(?:(?:rn)?[ t])*(?:(?:(?:[^()<>@,;:".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t]
)+|\Z|(?=[\["()<>@,;:".\[\]]))|"(?:[^"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:
rn)?[ t])*)(?:.(?:(?:rn)?[ t])*(?:[^()<>@,;:".\[\] \000-\031]+(?:(?:(
?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:".\[\]]))|"(?:[^"\r\\]|\\.|(?:(?:\r\n)?[
\t]))*"(?:(?:rn)?[ t])*))*@(?:(?:rn)?[ t])*(?:[^()<>@,;:".\[\] \000-\0
31]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:".\[\]]))|\[([^\[\]\r\\]|\\.)*\
](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".[] 000-031]+
(?:(?:(?:rn)?[ t])+|Z|(?=[["()<>@,;:\\".[]]))|[([^[]r]|.)*](?:
(?:rn)?[ t])*))*|(?:[^()<>@,;:".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z
|(?=[\["()<>@,;:".\[\]]))|"(?:[^"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:rn)
?[ t])*)*<(?:(?:rn)?[ t])*(?:@(?:[^()<>@,;:".\[\] \000-\031]+(?:(?:(?:\
r\n)?[ \t])+|\Z|(?=[\["()<>@,;:".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[
\t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".[] 000-031]+(?:(?:(?:rn)
?[ t])+|Z|(?=[["()<>@,;:\\".[]]))|[([^[]r]|.)*](?:(?:rn)?[ t]
)*))*(?:,@(?:(?:rn)?[ t])*(?:[^()<>@,;:".\[\] \000-\031]+(?:(?:(?:\r\n)?[
\t])+|\Z|(?=[\["()<>@,;:".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*
)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".[] 000-031]+(?:(?:(?:rn)?[ t]
)+|Z|(?=[["()<>@,;:\\".[]]))|[([^[]r]|.)*](?:(?:rn)?[ t])*))*)
*:(?:(?:rn)?[ t])*)?(?:[^()<>@,;:".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+
|\Z|(?=[\["()<>@,;:".\[\]]))|"(?:[^"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:r
n)?[ t])*)(?:.(?:(?:rn)?[ t])*(?:[^()<>@,;:".\[\] \000-\031]+(?:(?:(?:
\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:".\[\]]))|"(?:[^"\r\\]|\\.|(?:(?:\r\n)?[ \t
]))*"(?:(?:rn)?[ t])*))*@(?:(?:rn)?[ t])*(?:[^()<>@,;:".\[\] \000-\031
]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:".\[\]]))|\[([^\[\]\r\\]|\\.)*\](
?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".[] 000-031]+(?
:(?:(?:rn)?[ t])+|Z|(?=[["()<>@,;:\\".[]]))|[([^[]r]|.)*](?:(?
:rn)?[ t])*))*>(?:(?:rn)?[ t])*)|(?:[^()<>@,;:".\[\] \000-\031]+(?:(?
:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:".\[\]]))|"(?:[^"\r\\]|\\.|(?:(?:\r\n)?
[ \t]))*"(?:(?:rn)?[ t])*)*:(?:(?:rn)?[ t])*(?:(?:(?:[^()<>@,;:".\[\]
\000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:".\[\]]))|"(?:[^"\r\\]|
\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:rn)?[ t])*)(?:.(?:(?:rn)?[ t])*(?:[^()<>
@,;:".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:".\[\]]))|"
(?:[^"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:rn)?[ t])*))*@(?:(?:rn)?[ t]
)*(?:[^()<>@,;:".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:
".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?
:[^()<>@,;:\\".[] 000-031]+(?:(?:(?:rn)?[ t])+|Z|(?=[["()<>@,;:\\".[
]]))|[([^[]r]|.)*](?:(?:rn)?[ t])*))*|(?:[^()<>@,;:".\[\] \000-
\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:".\[\]]))|"(?:[^"\r\\]|\\.|(
?:(?:\r\n)?[ \t]))*"(?:(?:rn)?[ t])*)*<(?:(?:rn)?[ t])*(?:@(?:[^()<>@,;
:".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:".\[\]]))|\[([
^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\"
.[] 000-031]+(?:(?:(?:rn)?[ t])+|Z|(?=[["()<>@,;:\\".[]]))|[([^[
]r]|.)*](?:(?:rn)?[ t])*))*(?:,@(?:(?:rn)?[ t])*(?:[^()<>@,;:".\
[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:".\[\]]))|\[([^\[\]\
r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".[]
000-031]+(?:(?:(?:rn)?[ t])+|Z|(?=[["()<>@,;:\\".[]]))|[([^[]r]
|.)*](?:(?:rn)?[ t])*))*)*:(?:(?:rn)?[ t])*)?(?:[^()<>@,;:".\[\] \0
00-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:".\[\]]))|"(?:[^"\r\\]|\\
.|(?:(?:\r\n)?[ \t]))*"(?:(?:rn)?[ t])*)(?:.(?:(?:rn)?[ t])*(?:[^()<>@,
;:".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:".\[\]]))|"(?
:[^"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:rn)?[ t])*))*@(?:(?:rn)?[ t])*
(?:[^()<>@,;:".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:".
\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[
^()<>@,;:\\".[] 000-031]+(?:(?:(?:rn)?[ t])+|Z|(?=[["()<>@,;:\\".[]
]))|[([^[]r]|.)*](?:(?:rn)?[ t])*))*>(?:(?:rn)?[ t])*)(?:,s*(
?:(?:[^()<>@,;:".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:
".\[\]]))|"(?:[^"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:rn)?[ t])*)(?:.(?:(
?:rn)?[ t])*(?:[^()<>@,;:".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[
\["()<>@,;:".\[\]]))|"(?:[^"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:rn)?[ t
])*))*@(?:(?:rn)?[ t])*(?:[^()<>@,;:".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t
])+|\Z|(?=[\["()<>@,;:".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?
:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".[] 000-031]+(?:(?:(?:rn)?[ t])+|
Z|(?=[["()<>@,;:\\".[]]))|[([^[]r]|.)*](?:(?:rn)?[ t])*))*|(?:
[^()<>@,;:".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:".\[\
]]))|"(?:[^"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:rn)?[ t])*)*<(?:(?:rn)
?[ t])*(?:@(?:[^()<>@,;:".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["
()<>@,;:".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)
?[ \t])*(?:[^()<>@,;:\\".[] 000-031]+(?:(?:(?:rn)?[ t])+|Z|(?=[["()<>
@,;:\\".[]]))|[([^[]r]|.)*](?:(?:rn)?[ t])*))*(?:,@(?:(?:rn)?[
t])*(?:[^()<>@,;:".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,
;:".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t]
)*(?:[^()<>@,;:\\".[] 000-031]+(?:(?:(?:rn)?[ t])+|Z|(?=[["()<>@,;:\\
".[]]))|[([^[]r]|.)*](?:(?:rn)?[ t])*))*)*:(?:(?:rn)?[ t])*)?
(?:[^()<>@,;:".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:".
\[\]]))|"(?:[^"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:rn)?[ t])*)(?:.(?:(?:
rn)?[ t])*(?:[^()<>@,;:".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\[
"()<>@,;:".\[\]]))|"(?:[^"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:rn)?[ t])
*))*@(?:(?:rn)?[ t])*(?:[^()<>@,;:".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])
+|\Z|(?=[\["()<>@,;:".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\
.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".[] 000-031]+(?:(?:(?:rn)?[ t])+|Z
|(?=[["()<>@,;:\\".[]]))|[([^[]r]|.)*](?:(?:rn)?[ t])*))*>(?:(
?:rn)?[ t])*))*)?;s*)
?>
source : http://www.expreg.com/expreg_article.php?art=verifmail
:MDR
je ne sais pas si les regexp étaient le plus adaptées dans ce cas là ![]()
Tain je fais les vérif pour validation d’un forumlaire :paf: c’est trop le bordel, en plus suis certain que j’oublie des trucs ^^
Vérifier que pseudo est défini
Vérifier que les deux champs ‹ email › sont définis
S’ils le sont, vérifier que les valeurs ‹ email › sont identiques
Si elles le sont, vérifier que c’est une email valide (la regexp, non pas la grosse quand même :D)
Si l’email est bien défini, bien tapé deux fois à l’identique et d’un format valide: vérifier qu’elle est pas déjà dans la BDD ![]()
Vérifier que les passwords sont définis ET identiques ![]()
Vérifier que les conditions d’utilisation sont acceptées
Vérifier que le nom de la guilde n’existe pas déjà sur le même serveur
Et pour tous les cas où ca chie : afficher un message d’erreur, mettre en rouge la case en question ![]()
dedieu !
PS : vous traitez d’une manière spécifique les valeurs envoyées par POST ? je fais un trim pour éviter les espaces malvenus en fin de mot de pass ou de pseudo… mais niveau "vraie" sécurité faudrait faire quoi à ces variables en fait ?
Startide > tu fais un pré-test en javascript ou bien le type doit valider le formulaire à ton script PHP qui lui s’occupe de faire tous les tests puis de recharger la même page avec les messages d’erreur ?
Sinon ouais, contrôler que l’utilisateur n’est pas un boulet et qu’il a bien rempli le bordel, c super lourd et long, et ça fait pas avancer le reste (plus intéressant) du site… ![]()
Sinon pense bien à appeler la fonction pour virer les symboles " ’ etc… (mettre des \ devant), histoire d’éviter les SQL injection…
Normalement je dois pas avoir ces caractères dans mes variables… vu que c’est lié à World of Warcraft, les ’ sont des caractères interdits.
Faut que je fasse comme ils disent là => http://fr.php.net/mysql_real_escape_string
PS : comprends pas bien leur requête sécurisée d’exemple : la ligne "$query = sprintf("INSERT INTO products (`name`, `description`, `user_id`) VALUES (‹ %s ›, ‹ %s ›, ‹ %d ›)"," en particulier : d’où sortent ces %s %d ? Oo
C’est comme en C: sprintf te formatte un pattern %s: une string, %d un entier, donc c’est plutôt:
sprintf("INSERT INTO products (`name`, `description`, `user_id`) VALUES (‹ %s ›, ‹ %s ›, ‹ %d ›)",$Name,$Description, $userid).
(si j’ai bien compris la syntaxe PHP)
edit: ah oui, j’ai vu l’exemple, il ne faut pas passer les variable en direct, mais appliquer le excape pour modifier notamment les '; ça veut dire que le escape_patin_couffin($name) est remplacé dans ton pattern à l’emplacement du 1er %s.
et évidemeent pas besoin d’escape sur le dernier %d puisque c’est un umérique sans car spéciaux.
OK j’ai capté après coup, c’est le retour à la ligne qui m’a perturbé , en fait c’est une fonction avec deux paramtètres sprintf =>
$query = sprintf(
"INSERT INTO products (`name`, `description`, `user_id`) VALUES (‹ %s ›, ‹ %s ›, ‹ %d ›)",
mysql_real_escape_string($product_name, $link),mysql_real_escape_string($product_description, $link),$_POST[‹ user_id ›]);
Je comprends plus ou moins le principe, enfin je crois ![]()
Week-end enfin :o
orf moi weekend depuis ce matin 10h30, fin des tests psychotechniques stepp one :o
on verra les résultats pour acceder à la deuxieme étape de préselection [:shy]
pire que chez nouvelle popstar academy :ane:
Bon une chtite question bête, j’ai un problème de bordure "dashed" qui lorsqu’on scroll "bave" sous IE…
Un exemple :
http://www.theatreendiagonale.com/index.php
Si quelqu’un connait la solution ![]()
Le trajet NY-Paris par google maps:
http://maps.google.fr/maps?f=d&hl=fr&saddr…dr=Paris+France
L’étape 23 et le temps estimé
:MDR :MDR
"Traverser l’océan à la nage"
:MDR :MDR :MDR
Une bonne nuit de sommeil, demain crémaillère, ça va être physique ![]()
:sleep:
:MDR :MDR
avec ça je vais passer une bonne nuit!
:sleep:
dernz :ane:
First :hello:
deuz, le réveil a sonné tôt, mais franchement après le concert d’hier j’étais pas en état pour me lever ![]()
troiz ![]()
C’est vrai que tu es également nantais ![]()
Faudrait se faire un chtit napéro ![]()