[RESOLU] Erreur sur page php

Petit nouveau ! | 4 Messages

11 nov. 2013, 12:57

Bonjour

J'ai utilisé le gestionnaire de contacts Ge-Net,
mais, après l'avoir installé, il me laisse sur la page du site une erreur
"Deprecated: Function ereg() is deprecated in /htdocs/public/www/Pages/contact.php on line 44".

J'ai vérifié sur le site en question, et j'ai même re-créé un nouveau gestionnaire, mais les codes sont corrects...
J'ai laissé un message à Ge-Net, mais n'ayant pas de réponse, je m'en remets à vos connaissance.

Le site en question est Fil-etoffe.fr, et la page "contact".

Voila le code de la partie php :
<?php
// Couleur du texte des champs si erreur saisie utilisateur
$color_font_warn="#FF0000";
// Couleur de fond des champs si erreur saisie utilisateur
$color_form_warn="#FFCC66";
// Ne rien modifier ci-dessous si vous n’êtes pas certain de ce que vous faites !
if(isset($_POST['submit'])){
$erreur="";
// Nettoyage des entrées
while(list($var,$val)=each($_POST)){
if(!is_array($val)){
$$var=strip_tags($val);
}else{
while(list($arvar,$arval)=each($val)){
$$var[$arvar]=strip_tags($arval);
}
}
}
// Formatage des entrées
$f_1=strip_tags(trim($f_1));
$f_2=strip_tags(trim($f_2));
$f_3=strip_tags(trim($f_3));
$f_4=strip_tags(trim($f_4));
// Verification des champs
if(strlen($f_1)<2){
$erreur.="<li><span class='txterror'>Le champ &laquo; Nom, Prénom &raquo; est vide ou incomplet.</span>";
$errf_1=1;
}
if(strlen($f_2)<2){
$erreur.="<li><span class='txterror'>Le champ &laquo; Code Postal, Ville &raquo; est vide ou incomplet.</span>";
$errf_2=1;
}

if(strlen($f_4)<2){
$erreur.="<li><span class='txterror'>Le champ &laquo; E-mail &raquo; est vide ou incomplet.</span>";
$errf_4=1;
}else{
if(!ereg('^[-!#$%&\'*+\./0-9=?A-Z^_`a-z{|}~]+'.
'@'.
'[-!#$%&\'*+\/0-9=?A-Z^_`a-z{|}~]+\.'.
'[-!#$%&\'*+\./0-9=?A-Z^_`a-z{|}~]+$',
$f_4)){
$erreur.="<li><span class='txterror'>La syntaxe de votre adresse e-mail n'est pas correcte.</span>";
$errf_4=1;
}

}
if(strlen($f_5)<2){
$erreur.="<li><span class='txterror'>Le champ &laquo; Votre demande &raquo; est vide ou incomplet.</span>";
$errf_5=1;
}
if($erreur==""){
// Création du message
$titre="Message de votre site";
$tete="From:[email protected]\n";
$corps.="Nom, Prénom : ".$f_1."\n";
$corps.="Code Postal, Ville : ".$f_2."\n";
$corps.="Téléphone : ".$f_3."\n";
$corps.="Votre E-mail : ".$f_4."\n";
$corps.="Votre demande : ".$f_5."\n";
if(mail("[email protected]", $titre, stripslashes($corps), $tete)){
$ok_mail="true";
}else{
$erreur.="<li><span class='txterror'>Une erreur est survenue lors de l'envoi du message, veuillez refaire une tentative.</span>";
}
}
}
?>
Merci de m'aider à résoudre ce petit souci.
Modifié en dernier par moogli le 11 nov. 2013, 13:44, modifié 1 fois.
Raison : bbcode php

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

11 nov. 2013, 13:49

salut,

utilise preg_match à la place de la fonction ereg.

je t'invite a lire les tutos de base de base de php pour faire cela toi même ce script étant trop complexe pour le besoin et obsolète ;)


@+
Il en faut peu pour être heureux ......

Petit nouveau ! | 4 Messages

12 nov. 2013, 14:54

Bonjour et merci,
mais n'étant pas spécialiste du php,
est-ce que je dois juste changer ereg() par la preg_match(),
avec ce qu'il y a entre parenthèses,
ou il faut aussi changer d'autres termes qui se rapportent à preg--match ?

Merci

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

12 nov. 2013, 15:29

le masque doit avoir un délimiteur (par exemple la backquote `)

des exemples d'utilisation de preg_match sont indiqué dans la doc que j'a fournit dans mon 1er message ;)


@+
Il en faut peu pour être heureux ......

Petit nouveau ! | 4 Messages

12 nov. 2013, 19:13

Merci de ta réponse,
mais pour moi, "délimiteur, backquote,...), tout ça c'est de l'hébreu....
J'ai bien regardé la page que tu m'as indiqué, mais je ne comprends pas tout...
Peux-tu me dire ce que je dois modifier exactement dans le code php... Merci

Une chose qui me surprend quand même,
c'est que malgré le message d'erreur qui s'affiche,
je reçois bien les infos de contact sur mon mail

Petit nouveau ! | 4 Messages

12 nov. 2013, 20:19

Avec ton aide et celle de tryan44 de "Comment ça marche", je viens de faire la modif :

if(strlen($f_4)<2){
$erreur.="<li><span class='txterror'>Le champ « E-mail » est vide ou incomplet.</span>";
$errf_4=1;
}else{
if (!preg_match("#^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*.[a-z]{2,4}$#",$f_4)){
$erreur.="<li><span class='txterror'>La syntaxe de votre adresse e-mail n'est pas correcte.</span>";
$errf_4=1;
}

Et là, tout a l'air de fonctionner....

Merci à toi....