PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 01-01-2012 13:27:38

romumu77
Membre
Inscription : 01-01-2012
Messages : 12

problème

Bonjour j'ai un souci avec mon code php en page de contact il me dit "Function eregi() is deprecated à la ligne 23"

Voici mon code:

<?php
if (isset($_POST["envoyer"])){ // Si le formulaire a été soumis
    $etat = "erreur"; // On initialise notre etat à erreur, il sera changé à "ok" si la vérification du formulaire est un succès, sinon il reste à erreur

    // On récupère les champs du formulaire, et on arrange leur mise en forme
    if (isset($_POST["son_pseudo"])) $_POST["son_pseudo"]=trim(stripslashes($_POST["son_pseudo"])); // trim()  enlève les espaces en début et fin de chaine

    if (isset($_POST["son_email"])) $_POST["son_email"]=trim(stripslashes($_POST["son_email"])); // stripslashes()  retire les backslashes ==> \' devient '

    if (isset($_POST["son_url"])) $_POST["son_url"]=trim(stripslashes($_POST["son_url"]));

    if (isset($_POST["son_objet"])) $_POST["son_objet"]=trim(stripslashes($_POST["son_objet"]));

    if (isset($_POST["son_message"])) $_POST["son_message"]=trim(stripslashes($_POST["son_message"]));

    // Après la mise en forme, on vérifie la validité des champs
    if (empty($_POST["son_pseudo"])) { // L'utilisateur n'a pas rempli le champ pseudo
        $erreur="Vous n'avez pas entré votre pseudo..."; // On met dans erreur le message qui sera affiché
        }
        elseif (empty($_POST["son_email"])) { // L'utilisateur n'a pas rempli le champ email
            $erreur="Nous avons besoin de votre e-mail pour vous répondre...";
        }
        elseif (!eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\.[a-z]{2,4}$",$_POST["son_email"])){ // On vérifie si l'email est bien de la forme messagerie@domaine.tld (cf cours d'expressions régulières)
            $erreur="Votre adresse e-mail n'est pas valide...";
        }
        elseif (empty($_POST["son_objet"])) { // L'utilisateur n'a pas rempli le champ objet
            $erreur="Vous devez entrer l'objet de votre message...";
        }
        elseif (empty($_POST["son_message"])) { // L'utilsateur n'a écrit aucun message
            $erreur="Merci de saisir un message...";
        }
        else { // Si tous les champs sont valides, on change l'état à ok
            $etat="ok";
        }
}
else { // Sinon le formulaire n'a pas été soumis
    $etat="attente"; // On passe donc dans l'état attente
}

if ($etat!="ok"){ // Le formulaire a été soumis mais il y a des erreurs (etat=erreur) OU le formulaire n'a pas été soumis (etat=attente)
    if ($etat=="erreur"){ // Cas où le formulaire a été soumis mais il y a des erreurs
        echo "<span style=\"color:red\">".$erreur."</span><br /><br />\n"; // On affiche le message correspondant à l'erreur
    }
?>

<!-- Formulaire HTML qu'on affiche dans l'état attente ou erreur -->
<form method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>"> <!-- Les données du formulaire seront récupérée avec la méthode POST, et action correspond à la page contenant le formulaire -->
 <body>
<table >
<td>

<table width="736" height="204" border="0">
<?php echo" "?>
     <td width="163" height="200"> <p style="text-align:left">
        <label for="son_pseudo">Pseudo</label><br /> <!-- Intitulé du champ pseudo -->
        <input type="text" size="19" name="son_pseudo" id="son_pseudo" value="<?php
        if (!empty($_POST["son_pseudo"])) {
        // le pseudo de l'expéditeur a été saisi --> le réafficher
        echo htmlspecialchars($_POST["son_pseudo"],ENT_QUOTES); // htmlspecialchars() convertit les caractères spéciaux en leurs code html, exemple : & devient &
        }
        ?>" />

        <br />

        <label for="son_email">E-mail</label><br /> <!-- Intitulé du champ e-mail -->
        <input type="text" size="19" name="son_email" id="son_email" value="<?php
        if (!empty($_POST["son_email"])) {
        // l'e-mail de l'expéditeur a été saisi --> le réafficher
        echo htmlspecialchars($_POST["son_email"],ENT_QUOTES);
        }
        ?>" />

        <br />

       <label for="son_objet">Objet</label><br /> <!-- Intitulé du champ objet -->
        <input type="text" size="19" name="son_objet" id="son_objet" value="<?php
        if (!empty($_POST["son_objet"])) {
        // l'objet du message a été saisi --> le réafficher
        echo htmlspecialchars($_POST["son_objet"],ENT_QUOTES);
        }
        ?>"/> </td>
        <td width="563"><br/><label for="son_message">Message</label><br /> <!-- Intitulé du champ message -->
        <textarea name="son_message" id="son_message" cols="60
        " rows="6"><?php
        if (isset($_POST["son_message"])) {
        // le message a été saisi --> le réafficher
        echo htmlspecialchars($_POST["son_message"],ENT_QUOTES);
        }
        ?>
        </textarea>
<br />
<input type="submit" name="envoyer" value="Envoyer" /><input type="reset" name="reset" value="Effacer" />
    </p>
   
    </form></td>
    </tr>
</table>
</td></tr>
</table>

<!-- FIN du formulaire HTML -->

<?php
}
else { // Sinon l'état est ok donc on envoie le mail
    $son_pseudo = $_POST["son_pseudo"]; // On stocke les variables récupérées du formulaire
    $son_email = $_POST["son_email"];
    $son_url = $_POST["son_url"];
    $son_objet = $_POST["son_objet"];
    $son_message = $_POST["son_message"];

    $mon_email = "exemple@hotmail.com"; // Mise en forme du message que vous recevrez
    $mon_pseudo = "osef";
    $mon_url = "http://domaine@exemple.com/";
    $msg_pour_moi = "- Son pseudo : $son_pseudo \n
    - Son E-mail : $son_email \n
    - Son site : $son_url \n
    - Objet du message : $son_objet \n
    - Message : \n $son_message \n\n"
;

    // Mise en forme de l'accusé réception qu'il recevra
    $accuse_pour_lui = "Bonjour $son_pseudo,\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
    - Votre site : $son_url \n
    - L'objet de votre message : $son_objet \n
    - Votre message : \n $son_message \n\n
    Merci et à bientôt sur "
;

    // 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($mon_email,$son_objet,$msg_pour_moi,$entete) && @mail($son_email,$son_objet,$accuse_pour_lui,$entete)){ // Si le mail a été envoyé
        echo "<p style=\"text-align:center\">Votre message a été envoyé, vous recevrez une confirmation par mail.<br /><br />\n"; // On affiche un message de confirmation
        echo "<a href=\"" . $mon_url . "\">Retour</a></p>\n"; // Avec un lien de retour vers l'accueil du site
    }
    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
    }
}
?>
 

Hors ligne

#2 01-01-2012 17:56:45

mcAllan
Mowdérateur
Lieu : Châteaurenard en Provence
Inscription : 08-05-2009
Messages : 269

Re : problème

Salut,

Suivant la documentation :

Cette fonction est OBSOLETE depuis PHP 5.3.0. Nous vous encourageons vivement à ne plus l'utiliser.

et

À partir de PHP 5.3.0, l'extension regex est obsolète et vous devez utiliser l'extension PCRE à la place. Appeler des fonctions de l'extension regex émettra des alertes de type E_DEPRECATED.

Il n'y a plus qu'a ...

A++


Promotion de PPOO : Programmation Propre Orientée Objet !!
Recommande AAO : Apéritif Avec Olives...
Glop, glop

Hors ligne

#3 01-01-2012 18:36:41

romumu77
Membre
Inscription : 01-01-2012
Messages : 12

Re : problème

merci

Hors ligne

Pied de page des forums