Bonjour à tous,
j'ai un serveur apache group sous windows.
j'ai conçu un formulaire en php avec une vérification syntaxique et une validation de l'authentification du domaine de l'adresse email. je me sers de PEAR. Cela fonctionne trés bien.
je rencontre un problème sur mon hébergeur LWS avec le message suivants :
Warning: socket_select() [function.socket-select]: You MUST recompile PHP with a larger value of FD_SETSIZE. It is set to 1024, but you have descriptors numbered at least as high as 4396. --enable-fd-setsize=5120 is recommended, but you may want to set it to equal the maximum number of open files supported by your system, in order to avoid seeing this error again at a later date. in /htdocs/EN/Email/PEAR/Resolver.php on line 1035
J'active dans mon fichier php ceci : $lo_resolver->debug=1;
cela donne ceci :
;; query to 208.67.222.222:53 timed out ;; send_udp(208.67.220.220:53): sending 29 bytes ;; timeout set to 5 seconds
J'ai juste copier les fichiers PEAR dans le même dossier du fichier PHP du formulaire email.
voici la partie du code :
-----------------------
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132
|
/*
************************************* DEBUT *************************************************
Vérification de la syntaxe de l'adresse email Expéditeur -- $Email
Expression régulières Regex - RFC822
********************************************************************************************
*/
function IsEmail($email)
{
// $atom = '[-a-z0-9!#$%&\'*+\\/=?^_`{|}~]';
$atom = '[-a-z0-9_]';
$domain = '([a-z0-9]([-a-z0-9]*[a-z0-9]+)?)';
$pattern = '/^' . $atom . '+' .
'(\.' . $atom . '+)*' .
'@' .
'(' . $domain . '{1,63}\.)+' .
$domain . '{2,63}$/i';
// echo '<div id="TxTOKForm">Pattern '.$pattern.'</div>'."\n";
if (preg_match($pattern, $email))
{
/*
************************************* DEBUT *************************************************
Vérification du domaine de l'adresse email Expéditeur -- $Email
Librairie PEAR - RFC822
********************************************************************************************
*/
require_once './PEAR/PEAR5.php'; //Appel de la librairie PEAR5
require_once './PEAR/RFC822.php'; //Appel de la librairie Mail_RFC822
$lo_mail = Mail_RFC822::parseAddressList($email, NULL, FALSE);
// echo '<div id="TxTOKForm">lo_mail == '.$lo_mail.' Syntaxe valide</div>'."\n";
/*
Voici le contenu de $lo_mail
Array
(
[0] => stdClass Object
(
[personal] =>
[comment] => Array
(
)
[mailbox] => john.doe
[host] => example.org
)
)
*/
// $ls_domaine contient la valeur Host (Nom de domaine)
$ls_domaine=$lo_mail[0]->host;
$ls_domaine_User=$lo_mail[0]->mailbox;
// echo '<div id="TxTOKForm">ls_domaine == '.$ls_domaine_User.' Identification du NomUSer</div>'."\n";
// echo '<div id="TxTOKForm">ls_domaine == '.$ls_domaine.' Identification du Domaine.EXT</div>'."\n";
// Inscrivez dans ce tableau les serveurs de noms de domaine DNS de votre FAI.
$la_serveur_de_nom=array(
// OpenDNS est un service qui vous propose plusieurs gros serveurs DNS, ultra-rapide
'208.67.222.222', // DNS Primaire OpenDNS
'208.67.220.220' // DNS Secondaire OpenDNS
);
// Appel de la bibliothèque PEAR : Net_DNS
require_once './PEAR/DNS.php';
// Les fonctions ne peuvent pas s'appeler de façon statitique cette fois
// On crée donc une instance de classe Net_DNS_Resolver
$lo_resolver = new Net_DNS_Resolver();
// *** Décommentez cette ligne pour afficher le debuggage ***
// $lo_resolver->debug=1;
// On précise nos noms de serveurs DNS
$lo_resolver->nameservers=$la_serveur_de_nom;
//On lance une requête, on précise MX pour identifier un éventuel serveur de mail
$lo_response = $lo_resolver->query($ls_domaine,'MX');
//on teste la réponse
if ($lo_response) {
foreach ($lo_response->answer as $lo_rr) {
// On affiche le résultat
// $lo_rr->display();
// echo "Nom de serveur de mail $ls_domaine valide";
}
} else {
// echo "Nom de serveur de mail $ls_domaine inconnu";
return false;
}
/*
************************************* FIN *************************************************
Vérification du domaine de l'adresse email Expéditeur -- $Email
Librairie PEAR - RFC822
********************************************************************************************
*/
// echo '<div id="TxTOKForm">Adresse e-mail '.$email.' est valide</div>'."\n";
return true;
}
else
{
// echo '<div id="TxTOKForm">Adresse e-mail '.$email.' pas valide</div>'."\n";
return false;
}
};
$err_formulaire = false; // sert pour remplir le formulaire en cas d'erreur si besoin
/*
************************************* FIN *************************************************
Vérification de la syntaxe de l'adresse email Expéditeur -- $Email
Expression régulières Regex - RFC822
********************************************************************************************
*/ |
mon avis :
je pense que les requettes via le ports 53 du serveur LWS n'est pas autorisé!
je suis en mutualisé!
avez-vous une idée svp...
question supplémentaire :
quel hébergeur me conseillez-vous pour un serveur dédié.
merci d'avance de vos réponse qui je l'espère trouvera une issue...
Partager