probleme avec ereg();

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 : probleme avec ereg();

par hakazizi » 06 janv. 2009, 14:48

merci pour les reponse sa fonctionne tb mais surtout pour les explications.

par Berzemus » 06 janv. 2009, 14:35

ouaip, les fonctions preg_* sont plus conseillés.

Et ton problème vient de "44{2}"

En gros, tu demandes un 4, et un autre 4 mais répété 2 fois. Cette condition ne valide donc que '444'.

Pour valider '44', soit tu enlèves le {2}, soit tu enlèves le premier 4.

par Calimero » 06 janv. 2009, 13:50

Ca m'étonnerait que cela vienne de la fonction ereg() (qui fonctionne très bien, même si elle est marquée comme obsolète dans la doc) mais plutôt de ton expression régulière.

Si tu n'arrives pas à la corriger, essaye de la remplacer par un code équivalent sans expression régulière avec par exemple substr() (très facile dans ce cas).

probleme avec ereg();

par hakazizi » 06 janv. 2009, 13:36

Je ne comprend pas pourquoi sa ne fonctionne pas quelque soit le code postal debutant ou non par 44 je n'entre pas dans ma condition...
je pense que cela vient de la fonction ereg(); mais peut-etre que je me trompe
je n'ai aucun message d'erreur.
<?php
$pays=strToLower($sql['pays']);
$code_postal=$sql['code_postal'];
if($pays=='france' AND ereg("(44{2})([0-9]{3})",$code_postal))
{
echo'<option value="3">Présentation des modèles à domicile (uniquement Nantes et son aglomeration)</option>';
}
?>
Merci