Probléme function checkdnsrr() (formulaire contact)

Eléphanteau du PHP | 36 Messages

16 oct. 2008, 14:26

Bonjour,

Voilà j'ai un souci avec mon formulaire de contact

Voici l'erreur:

Fatal error: Call to undefined function checkdnsrr() in D:\www\rolandchaigne.com\htdocs\contact.php on line 68

Mon hebergeur est "LWS"
<?php 
    // On démarre la session
    session_start();
require_once('admin/includes/connect.inc.php'); 


    // On inclu le fichier de configuration (contactform_config.php)
    if(file_exists('admin/includes/contactform_config.php'))
    {
        include('admin/includes/contactform_config.php');
    }
    else
    {
        die('<div id="boite">Fichier de configuration non trouvé.</div>');
    }

    $son_nom = trim(htmlspecialchars($_POST['son_nom']));
    $son_email = htmlspecialchars($_POST['son_email']);
    $son_sujet = htmlspecialchars($_POST['son_sujet']);
    $son_message = nl2br(htmlspecialchars($_POST['son_message']));
    $auto_mail = htmlspecialchars($_POST['auto_mail']);
    $code = htmlspecialchars($_POST['code']);
    $envoyer = htmlspecialchars($_POST['envoyer']);

    function boite($message)
    {
        die('<div id="boite">'.$message.'</div>');
    }

    if($envoyer)
    {

        if(empty($son_nom) || empty($son_email) || empty($son_sujet) || empty($son_message) || empty($code))
        {
            boite('<center><strong>Vous devez remplir tous les champs.</strong><br /><a href="javascript:history.go(-1)">Retour</a></center>');
        }

        $minimum_long = '3';

        $long_nom = strlen($son_nom);

        if($long_nom < $minimum_long)
        {
            boite('<center><strong>La saisie Nom est trop courte. </strong><br /><a href="javascript:history.go(-1)">Retour</a>');
        }

        $long_sujet = strlen($son_sujet);

        if($long_sujet < $minimum_long)
        {
            boite('<center><strong>La saisie Sujet est trop courte. </strong><br /><a href="javascript:history.go(-1)">Retour</a>');
        }

        $message_long_min = '5';

        $long_msg = strlen($son_message);

        if($long_msg < $message_long_min)
        {
            boite('<center><strong>La saisie Message est trop courte. </strong><br /><a href="javascript:history.go(-1)">Retour</a>');
        }

        if(!preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $son_email))
        {
            boite('<center><strong>L\'adresse e-mail saisie est incorrecte. </strong><br /><a href="javascript:history.go(-1)">Retour</a>');
        }

        list($partie1, $domaine) = split('@', $son_email, 2);
        if(!checkdnsrr($domaine, 'MX'))
        {
            boite('<center><strong>Le domaine de votre adresse e-mail n\'existe pas. </strong><br /><a href="javascript:history.go(-1)">Retour</a>');
        }

        // On récupère l'adresse IP
        $ip = $REMOTE_ADDR;

        // On récupère la date française
        $date = date('d/m/Y à H:i:s');

        if($_SESSION['image'] == $code )
        {
          // Sinon l'état est ok donc on envoie le mail
    $son_nom = $_POST["son_nom"]; // On stocke les variables récupérées du formulaire
    $son_email = $_POST["son_email"];
    $son_sujet = $_POST["son_sujet"];
    $son_message = $_POST["son_message"];

    $mon_email = "[email protected]"; // Mise en forme du message que vous recevrez
    $mon_pseudo = "Ordi-passion";
    $mon_url = "http://www.ordi-passion.com";
    $msg_pour_moi = "- Son pseudo : $son_nom \n
	   Vous venez de recevoir un email de votre site Ordi-passion.\n\n
    - Son E-mail : $son_email \n
    - Objet du message : $son_sujet \n
    - Message : \n $son_message \n\n";

    // Mise en forme de l'accusé réception qu'il recevra
    $accuse_pour_lui = "Bonjour $son_nom,\n
    Votre message nous a bien été envoyé et nous tâcherons de vous répondre le plus rapidement possible.\n\n
    - Votre E-mail : $son_email \n
    - Titre de votre message : $son_sujet \n
    - Votre message : \n $son_message \n\n
    Merci et à bientôt sur http://www.ordi-passion.com !<br><br>";

    // Envoie du mail
    $entete = "From: " . $mon_pseudo . " <" . $mon_email . ">\n"; // On prépare l'entête du message
    $entete .= "MIME-Version: 1.0";

    if (@mail($son_email,$son_sujet,$msg_pour_moi,$entete) && @mail($mon_email,$son_sujet,$accuse_pour_lui,$entete)){ // Si le mail a été envoyé
      echo "<p style=\"text-align:center\">Votre message a &eacute;t&eacute; envoy&eacute;, vous recevrez une confirmation par mail.<br>Merci de vérifier votre courier indésirable !<br>\n"; // On affiche un message de confirmation
    }
    else { // Sinon il y a eu une erreur lors de l'envoi
        echo "<p style=\"text-align:center\">Un problème s'est produit lors de l'envoi du message.\n";
        echo "<a href=\"".$_SERVER["PHP_SELF"]."\">Réessayez...</a></P>\n"; // On propose un lien de retour vers le formulaire
    }

            session_unset();
            session_destroy();
        }
        else if($_SESSION['image'] != $code)
        {
            boite('<center><strong>Le code de validation saisi est incorrect.</strong></center> <br /><a href="javascript:history.go(-1)">Retour</a>');
        }
    }
    
?>

Merci d'avance

Eléphant du PHP | 250 Messages

16 oct. 2008, 17:11

Bonjour
Je ne sais pas trop pourquoi tu souhaites utiliser cette fonction, et je ne connais pas ton hébergeur, mais en allant lire la page du manuel pour cette fonction je lis:
Note: Cette fonction n'est pas disponible sur les machines Windows. Pour la remplacer, essayez la classe » PEAR : » Net_DNS.
Une piste peut être...
"L'histoire, à l'image de toutes choses dans l'univers, semble avoir comme unique règle le côté ondulatoire."