fonction eregi

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : fonction eregi

Re: fonction eregi

par two3d » 06 avr. 2019, 19:06

Bonjour, en effet, la fonction est obsolète et il faut la remplacer par preg_match, vous devez mettre des ## au début et à la fin de la regex, exemple: ("#[0-9]+#")

ensuite mettre un echo avec SERVER PHP_SELF est une faille de sécurité car on peut rentrer un code dans l'URL qui sera affiché directement dans le code source de votre page, mettre plutôt une URL absolue ou relative, exemple "http mon site/page" ou "mapage.ext" ou même "mondossier/mapage.ext"

pour la vérification d'un email avec preg_match, un code gratuit ici: http://www.c2script.com/scripts/verifie ... hp-s2.html

votre <? if ($erreur_email == 1){echo "class='erreur'";} ?><.. s'affiche dans la page après la balise <form>, il faut le mettre à l'intérieur d'une balise


bref, ce code est à refaire entièrement, un script simple pour envoyer un mail en PHP disponible ici http://www.c2script.com/scripts/formula ... hp-s6.html

fonction eregi

par bb64 » 06 avr. 2019, 09:10

Bonjour
Je sollicite votre aide afin de mettre à jour un ancien formulaire que je souhaite garder car il est très simple et le retour d’envoi est en self.
Il utilise la fonction eregi obsolète depuis quelques années …
Je l’ai remplacé par preg_match en vain, j’ai un message d’erreur
Warning : preg_match (): No ending delimiter '
Et class='erreur’ qui s’affiche au-dessus du message
http://www.chalets-de-pierretoun.com/pip.php

Quelle serait la solution ?
Merci pour votre aide ou vos conseils.
Bon weekend

Code : Tout sélectionner

<h1>Contact<br /> <? if (isset($_POST['f_envoyer'])) { $email = trim($_POST['f_email']); $message = $_POST['f_message']; $erreur_email = 0; $erreur_message = 0; $retour = ""; $destinataire = "[email protected]"; $sujet = "contact"; $merci = "Votre message à bien été envoyé, merci."; if ($email == "") { $retour .= "Entrez votre adresse email.<br />"; $erreur_email = 1; } else { if (! eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\.[a-z]{2,3}$",$email)) { $retour .= "L'adresse email n'est pas correcte.<br />"; $erreur_email = 1; } } if ($message == "") { $retour .= "Vous avez oublié votre message.<br />"; $erreur_message = 1; } if ($retour =="") { $contenu .= $email."\n"; $contenu .= $message; mail($destinataire,$sujet,$contenu,"FROM:[email protected]"); $retour = $merci; $email = ""; $message = ""; } } else { $email = ""; $message = ""; } ?> </h1> <form action="<? echo $_SERVER['PHP_SELF'] ?>" method="post" id="formulaire"> <? if ($erreur_email == 1){echo "class='erreur'";} ?><p>Votre email : </p> <div><input name="f_email" type="text" id="f_email" size="40" maxlength="40" value = "<? echo $email ?>" /> </div> <? if ($erreur_message == 1){echo "class='erreur'";} ?> <p>Votre message : (<span class="rouge">Contact t&eacute;l&eacute;phonique, indiquez votre N&deg; de T&eacute;l </span>) </p> <div><textarea name="f_message" cols="60" rows="5" id="f_message" ><? echo $message ?></textarea> </div> <div id="go"><input type="submit" name="f_envoyer" value="Envoyer" /> </div> </form> <p class='retour'> <? echo $retour; ?> </p> </div>