Donne nous ton code en entier, car quand j'ai essayé les numéros donné dans mon code de test, il me renvoie 1.
Il peut y avoir un problème à l'endroit de l'utilisation du pattern
hum un vrai casse tête... j'ai cherché en vain :'(
voilà une partie de mon code :
dans le formulaire : form.php
<?php
if(isset($_POST["valider"]))
{
require 'checkEntries2.php';
require 'sendMail1.php';
//require 'm2.php';
// données obligatoires :
$data["name"] = trim($_POST["name"]);
$data["responsable"] = trim($_POST["responsable"]);
$data["tel"] = checkEntries(trim($_POST["tel"]), "digit");
$data["gsm"] = checkEntries(trim($_POST["gsm"]), "gsmtest");
if($_POST["nogsm"])
$data["gsm"] = trim($_POST["nogsm"]);
$data["mail"] = checkEntries(trim($_POST["mail"]), "mail");
$data["adresse"] = trim($_POST["adresse"]);
$data["condition"] = trim($_POST["condition"]);
// données facultatives :
$data_option["fax"] = trim($_POST["fax"]);
$erreur = null;
$erreurs = array('name' => 'dans le nom de l\'organisme demandeur',
'responsable' => 'dans le nom du représentant',
'tel' => 'dans le numéro de téléphone',
'gsm' => 'dans le numéro gsm',
'mail' => 'dans l\'adresse mail',
'adresse' => 'dans l\'adresse de facturation',
'condition'=> 'il faut accepter les conditions d\'utilisation');
echo "<p>";
foreach($data as $key => $value)
{
if(empty($data[$key]))
{
$erreur = 1;
echo "Il y a une erreur $erreurs[$key]<br />";
}
}
echo "</p>";
if($erreur != 0)
echo "<p>Veuillez recommencer.</p>";
else
{
if(sendMail("form3", $data, $data_option))
echo "Votre demande a été transmise à nos services.Vous allez recevoir un email de confirmation. Vous pouvez fermer la fenêtre.";
else
echo "Erreur de transmission, veuillez recommencer.";
}
if (is_null($erreur)) {
$mail = $_POST['mail'];
$destinataire = $mail;
$sujet = "Confirmation " ;
$entetes = "From: @";
$message = "bla bla bla ";
mail($destinataire, $sujet, $message, $entetes) ;
}
}
?>
ensuite voici le code lié à la case GSM :
<p>
<label for="form3Gsm">GSM :</label>
<input name="gsm" type="text" id="form3Gsm" onfocus="MM_popupMsg('Merci d\'entrer un numéro de GSM valide commençant par :\r621, 661, 691\r\rCes données resteront confidentielles et ne seront utilisées que pour traiter votre demande.')" value = "<?php if(isset($_POST["gsm"])) echo htmlspecialchars($_POST["gsm"]) ?>" />
*
<input name="nogsm" type="checkbox" id="nogsm" value="pas de gsm" <?php if (isset($_POST['nogsm'])) echo 'checked = "checked"'?>/>
Pas de GSM
</p>
Ensuite mon fichier checkEntries.php (avec la fonction gsmtest).
<?php
function checkEntries($entry, $type, $needed = 1)
{
if($needed == 1)
{
if(empty($entry))
return null;
}
switch($type)
{
case "digit" :
{
$pattern = "([[:blank:][:punct:][:digit:]])*";
break;
}
case "alnum" :
{
$pattern = "([[:alnum:]])*";
break;
}
case "alpha" :
{
$pattern = "([[:alpha:]])*";
break;
}
case "lower" :
{
$pattern = "([[:lower:]])*";
break;
}
case "upper" :
{
$pattern = "([[:upper:]])*";
break;
}
case "alnum+" :
{
$pattern = "([-_.])*([[:alnum:]])*";
break;
}
case "mail" :
{
$pattern = "[[:alnum:]]([-_.]?[[:alnum:]_?])*@[[:alnum:]]([-.]?[[:alnum:]])+\.([a-z]{2,6})";
break;
}
case "gsmtest" :
{
$pattern = '/^(621|691|661){1}(([[:punct:][:blank:]]{0,1}[0-9]{2}){3}|([[:punct:][:blank:]]{0,1}[0-9]{3}){2})^$/';
break;
}
default :
{
$pattern = $type;
}
}
if(preg_match("'^".$pattern."$'", $entry))
return $entry;
else
{
if($needed == 1)
return null;
else
return "Non renseigné";
}
}
?>
Merci beaucoup pour ton aide, peut être que le pb vient des []
