dorjee Posté 20 Mars 2007 Partager Posté 20 Mars 2007 Comme "promis" à OBIT voici finalement le site sur lequel j'ai travaillé ces derniers temps et qui comporte 3 formulaires avec captcha : http://www.wikispot.fr/ Les formulaires sont visibles à partir de : http://www.wikispot.fr/pages/contact.html http://www.wikispot.fr/pages/registration.html http://www.wikispot.fr/pages/announcing.html à bientôt Lien vers le commentaire Partager sur d’autres sites More sharing options...
Adrien54 Posté 5 Juin 2007 Partager Posté 5 Juin 2007 (modifié) Bonjour à tous, J'ai un problème similaire : Fatal error: Call to undefined function dsp_crypt() in /var/www/Site1/contact4.php on line 97 C'est la seule erreur que j'ai pas d'erreur d'include... Savez vous d'ou celà peut venir ? (erreur config apache ?) Je suis sur un serveur perso Apache 2 + PHP 5 + Mysql Edit : J'ai testé sur un serveur Free et cela fait la même chose ! Merci d'avance Cordialement Adrien54 Modifié 5 Juin 2007 par Adrien54 Lien vers le commentaire Partager sur d’autres sites More sharing options...
belaadel Posté 25 Juin 2007 Partager Posté 25 Juin 2007 (modifié) Salut, Après avoir fait des recherches sur la toile, me voilà sur cet excellent forum. Alors je m'y suis abonné. Si je poste maintenant, c'est pour répondre à ce message de adn Salut au passage J'ai visité la page "http://www.sortiratousprix.net/contact.php" où j'ai trouvé ton formulaire avec la question de demander le résultat au visiteur/robot. Je dois dire que j'aime bien l'idée de protéger son formulaire mais ja'i une remarque: Si le robot est programmé à lire ton champs "asb" val1_op_val2, il n'a qu'a faire une opération de "+, -,*, /" et stoquer tes "op" dans une table pour les reconnaitre dans le futur. Puis ca serait très simple de connaitre la réponse/résultat demandé(e). Je ne trouve pas encore une meilleure idée que celle que t'as mis (sauf avec d'autres questions, genre couleurs,...), mais je pensais au: stoquage de l'ip qui permettra de programmer ou masquer l'affichage de la captcha suivant le nombre de tentatives d'envoi, tout en gardant le champs de la réponse ce qui va nettement faire diminuer le nombre de spams (Si le captcha n'est pas affiché on pourras pas renseigner le champs de la réponse ) Qu'en pensez-vous??? puis orienter le visiteur vers une autre page Mon idée est simple, mais elle reste à creuser, je ne sais pas si elle pourrait être améliorée, facile à gérer, mais je reste ouvert à toutes remarques, suggéstions, .... Voilà messieurs, dames. Peace to you all. <? $operateur = array("+", "-"); $alpha = rand(1, 10); $op = rand(0, 0); $beta = rand(1, 10); $res = md5($alpha + $beta); // pour compliquer on peut ajouter une constante au calcul?>(Contre le spam) <? echo $alpha." ".$operateur[$op]." ".$beta." = "; ?><input name="asa" type="text" size="10" value="" /><input type="hidden" name="asb" value="<? echo $res; ?>" /> A la reception du formulaire, tester: md5($asa) != $asb Modifié 25 Juin 2007 par belaadel Lien vers le commentaire Partager sur d’autres sites More sharing options...
Yoav Posté 2 Juillet 2007 Partager Posté 2 Juillet 2007 Comment proposer ce service pour plusieurs rédacteurs avec des mails différends ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
loulou74 Posté 9 Juillet 2007 Partager Posté 9 Juillet 2007 (modifié) Bonjour,Je viens de parcourir ce post avec beaucoup d'intéret, et j'ai suivi les indications de alphega et dorjee pour mettre en place le script et rajouter des champs de saisie.J'ai uploadé antispam.php au meme endroit que mon formulaire, mais malheureusement j'obtiens un message d'erreur: Un problème s'est produit lors de l'envoi du message. Réessayez...Ou est le binz dans mon code?????? [edit modérateur]Code supprimé : illisible[/edit] oups,ça y est, mon mail n'était pas valide..... désolé, je Modifié 9 Juillet 2007 par NorSeb Lien vers le commentaire Partager sur d’autres sites More sharing options...
mika_do Posté 15 Juillet 2007 Partager Posté 15 Juillet 2007 Merci du script il fonctionne à merveille Lien vers le commentaire Partager sur d’autres sites More sharing options...
alphega Posté 22 Juillet 2007 Auteur Partager Posté 22 Juillet 2007 (modifié) Comme il y a eu quelques améliorations au fur et à mesure des discussions, que 2 méthodes sont maintenant disponibles (captcha visuel ou addition-soustraction), que cryptographp a changé de version et n'est plus compatible avec le script que j'avais adapté, je redonne ici les explications avec les 2 méthodes. Formulaire de contact avec captcha visuel (cryptographp) 1 - Télécharger cryptographp (version 1.4) 2 - Dézipper, puis envoyer le dossier crypt et son contenu sur votre serveur 3 - Créer le fichier contact.php avec le code ci-dessous (ne pas oublier d'éditer la ligne: $email_webmaster = "webmaster_AT_domaine.tld"; pour y mettre votre email et la ligne $titre_cache = "Depuis le site example.com: "; pour personnaliser le titre de l'email) nb: ne pas laisser d'espace ou de saut de ligne en haut de ce fichier pour éviter l'erreur "Cannot send session cookie - headers already sent by" <?php $cryptinstall="./crypt/cryptographp.fct.php"; include $cryptinstall; ?> <?php// Dans la ligne qui suit, remplacer webmaster_AT_domaine.tld par l'adresse email du webmaster, à laquelle les messages devront être envoyés$email_webmaster = "webmaster_AT_domaine.tld";// Rajout alphega: Dans cette ligne remplacez "example.com" par le nom de votre site. Utile si vous avez plusieurs formulaires.$titre_cache = "Depuis le site example.com: ";// === traitement des données du formulaire ============================================================if (isset($_POST["envoyer"])){// le formulaire a été soumis$etat = "erreur";// Valeur par défaut. Prendra la valeur "ok" s'il n'y a pas d'erreur// --- mise en forme des champs saisis dans le formulaire lors de sa soumission ---if (isset($_POST["email_expediteur"])) {$_POST["email_expediteur"]=trim(stripslashes($_POST["email_expediteur"]));}if (isset($_POST["titre"])) {$_POST["titre"]=trim(stripslashes($_POST["titre"]));}if (isset($_POST["message"])) {$_POST["message"]=trim(stripslashes($_POST["message"]));}// --- test de la validité des champs saisis ---if (empty($_POST["email_expediteur"])) {// il manque l'email de l'expéditeur$erreur="Saisissez votre adresse email...";}elseif (!eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\.[a-z]{2,4}$",$_POST["email_expediteur"])){// l'adresse e-mail n'est pas valide$erreur="Votre adresse e-mail n'est pas valide...";}elseif (empty($_POST["message"])) {// le message est vide$erreur="Saisissez un message...";}elseif (empty($_POST["code"])) {// le code n'est pas saisi$erreur="Saisissez le code de verification...";}else {// --- Vérification de la validité du code captcha ---if (chk_crypt($_POST['code']))// --- tous les champs sont correctement remplis: on pourra envoyer le mail ---$etat="ok";// --- Le code captcha n'est pas valide ---else $erreur="Code de verification non valide ...";}}else {// --- le formulaire n'a pas été soumis ---$etat="attente";}// === fin de traitement des données du formulaire =======================================================?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xml:lang="fr" lang="fr" xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /><title>Formulaire de contact</title></head><body><h1>Contacter le webmaster</h1><?phpif ($etat!="ok"){// le formulaire n'a pas été soumis, ou soumis avec une erreurif ($etat=="erreur"){//le formulaire a été soumis avec une erreurecho "<p><strong>".$erreur."</strong></p>\n";// afficher le message d'erreur}?><form method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>?<?php echo SID; ?>"><p><label for="email_expediteur">Votre adresse e-mail (obligatoire):</label><br /><input type="text" size="40" name="email_expediteur" id="email_expediteur" value="<?phpif (!empty($_POST["email_expediteur"])) {// l'adresse email de l'expéditeur a été saisie: la réafficherecho htmlspecialchars($_POST["email_expediteur"],ENT_QUOTES);}?>" /></p><p><label for="titre">Titre de message (facultatif):</label><br /><input type="text" size="40" name="titre" id="titre" value="<?phpif (!empty($_POST["titre"])) {// le titre du message a été saisi: le réafficherecho htmlspecialchars($_POST["titre"],ENT_QUOTES);}?>" /></p><p><label for="message">Message (obligatoire):</label><br /><textarea name="message" id="message" cols="40" rows="5"><?phpif (isset($_POST["message"])) {// le message a été saisi: le réafficherecho htmlspecialchars($_POST["message"],ENT_QUOTES);}?></textarea></p><?php dsp_crypt(0,1); ?><p><input type="text" name="code" /></p><p><input type="submit" name="envoyer" value="Envoyer" /></p></form><?php}else {// le formulaire a été soumis sans erreur, on envoie le mail$entete = "From: ".$_POST["email_expediteur"]." <".$_POST["email_expediteur"].">\n";$entete .= "Return-Path: ". $email_webmaster . "\n";$entete .= "MIME-Version: 1.0";$ip.="Adresse IP: ". $_SERVER['REMOTE_ADDR'] . "\n";$nav.="Navigateur: ". $_SERVER['HTTP_USER_AGENT'] . "\n\n";if (@mail($email_webmaster,$titre_cache.$_POST["titre"],$ip.$nav.$_POST["message"],$entete)){// mail envoyéecho "Votre message a été envoyé.<br />\n";echo "<a href=\"".$_SERVER["PHP_SELF"]."\">Envoyer un autre message...</a>\n";}else {// erreur lors de l'envoi du mailecho "Un problème s'est produit lors de l'envoi du message.\n";echo "<a href=\"".$_SERVER["PHP_SELF"]."\">Réessayez...</a>\n";}}?></body></html> Uploadez le fichier contact.php ... et c'est tout! Tester le formulaire de contact avec captcha visuel Formulaire de contact avec captcha addition soustraction de Byc 1 - Télécharger le script antispam de byc 2 - Dézipper, puis envoyer le fichier antispam.php sur votre serveur 3 - Créer le fichier contact.php avec le code ci-dessous (ne pas oublier d'éditer la ligne: $email_webmaster = "webmaster_AT_domaine.tld"; pour y mettre votre email et la ligne $titre_cache = "Depuis le site example.com: "; pour personnaliser le titre de l'email) <?phpinclude_once("antispam.php");?> <?php// Dans la ligne qui suit, remplacer webmaster_AT_domaine.tld par l'adresse email du webmaster, à laquelle les messages devront être envoyés$email_webmaster = "webmaster_AT_domaine.tld";// Rajout alphega: Dans cette ligne remplacez "example.com" par le nom de votre site. Utile si vous avez plusieurs formulaires.$titre_cache = "Depuis le site example.com: ";// === traitement des données du formulaire ============================================================if (isset($_POST["envoyer"])){// le formulaire a été soumis$etat = "erreur";// Valeur par défaut. Prendra la valeur "ok" s'il n'y a pas d'erreur// --- mise en forme des champs saisis dans le formulaire lors de sa soumission ---if (isset($_POST["email_expediteur"])) {$_POST["email_expediteur"]=trim(stripslashes($_POST["email_expediteur"]));}if (isset($_POST["titre"])) {$_POST["titre"]=trim(stripslashes($_POST["titre"]));}if (isset($_POST["message"])) {$_POST["message"]=trim(stripslashes($_POST["message"]));}// --- test de la validité des champs saisis ---if (empty($_POST["email_expediteur"])) {// il manque l'email de l'expéditeur$erreur="Saisissez votre adresse email...";}elseif (!eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\.[a-z]{2,4}$",$_POST["email_expediteur"])){// l'adresse e-mail n'est pas valide$erreur="Votre adresse e-mail n'est pas valide...";}elseif (empty($_POST["message"])) {// le message est vide$erreur="Saisissez un message...";}elseif (antispam_check() == false) {// l'addition est fausse$erreur="Résultat du calcul incorrect, veuillez réessayer svp !";}else {// --- tous les champs sont correctement remplis: on pourra envoyer le mail ---$etat="ok";}}else {// --- le formulaire n'a pas été soumis ---$etat="attente";}// === fin de traitement des données du formulaire =======================================================?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xml:lang="fr" lang="fr" xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /><title>Formulaire de contact</title></head><body><h1>Contacter le webmaster</h1><?phpif ($etat!="ok"){// le formulaire n'a pas été soumis, ou soumis avec une erreurif ($etat=="erreur"){//le formulaire a été soumis avec une erreurecho "<p><strong>".$erreur."</strong></p>\n";// afficher le message d'erreur}?><form method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>?<?php echo SID; ?>"><p><label for="email_expediteur">Votre adresse e-mail (obligatoire):</label><br /><input type="text" size="40" name="email_expediteur" id="email_expediteur" value="<?phpif (!empty($_POST["email_expediteur"])) {// l'adresse email de l'expéditeur a été saisie: la réafficherecho htmlspecialchars($_POST["email_expediteur"],ENT_QUOTES);}?>" /></p><p><label for="titre">Titre de message (facultatif):</label><br /><input type="text" size="40" name="titre" id="titre" value="<?phpif (!empty($_POST["titre"])) {// le titre du message a été saisi: le réafficherecho htmlspecialchars($_POST["titre"],ENT_QUOTES);}?>" /></p><p><label for="message">Message (obligatoire):</label><br /><textarea name="message" id="message" cols="40" rows="5"><?phpif (isset($_POST["message"])) {// le message a été saisi: le réafficherecho htmlspecialchars($_POST["message"],ENT_QUOTES);}?></textarea></p><p>Résultat du calcul ci-dessous: addition ou soustraction, le résultat peut-etre négatif.<br />Ex: 1-4 taper: -3 (Ceci est une sécurité anti-spam)</p><?php antispam_ins(); ?><p><input type="submit" name="envoyer" value="Envoyer" /></p></form><?php}else {// le formulaire a été soumis sans erreur, on envoie le mail$entete = "From: ".$_POST["email_expediteur"]." <".$_POST["email_expediteur"].">\n";$entete .= "Return-Path: ". $email_webmaster . "\n";$entete .= "MIME-Version: 1.0";$ip.="Adresse IP: ". $_SERVER['REMOTE_ADDR'] . "\n";$nav.="Navigateur: ". $_SERVER['HTTP_USER_AGENT'] . "\n\n";if (@mail($email_webmaster,$titre_cache.$_POST["titre"],$ip.$nav.$_POST["message"],$entete)){// mail envoyéecho "Votre message a été envoyé.<br />\n";echo "<a href=\"".$_SERVER["PHP_SELF"]."\">Envoyer un autre message...</a>\n";}else {// erreur lors de l'envoi du mailecho "Un problème s'est produit lors de l'envoi du message.\n";echo "<a href=\"".$_SERVER["PHP_SELF"]."\">Réessayez...</a>\n";}}?></body></html> Uploadez le fichier contact.php ... et c'est tout! Tester le formulaire de contact avec addition soustraction ---------- ps: Ne me contactez pas par mp pour avoir de l'aide sur ce script, meme si j'ai pu adapter le formulaire aux captcha, je ne suis pas expert en php, utilisez plutot ce sujet pour obtenir en plus de l'aide de toute la communauté Modifié 22 Juillet 2007 par alphega Lien vers le commentaire Partager sur d’autres sites More sharing options...
mika_do Posté 4 Août 2007 Partager Posté 4 Août 2007 (modifié) J'ai un petit souci de rien du tout J'ai rajouté une liste déroulante qui fonctionne comme sur des roulettes et j'aimerais lorsque je recois mes mails que la rubrique sélectionnée apparaisse en gras et sur une autre ligne que mon texte de base. En en-tête par exemple... Voici le code que j'utilise pour recevoir mon truc. if (@mail($email_webmaster,$titre_cache.$_POST["titre"],$ip.$nav.$_POST["message"].$_POST["choix"],$entete)){ Merci edit: ah ben sa ne joue plus ma liste déroulante Un petit coup de pouce. J'ai fait un simple select... <p><select name="choix " id="choix "> <option value="<?php echo htmlspecialchars("choix: Suggestions") ?>" />Suggestions</option> <option value="<?php echo htmlspecialchars("choix : Annonceurs") ?>"/>Annonceurs</option> <option value="<?php echo htmlspecialchars("choix : Partenariat") ?>"/>Partenariat</option> <option value="<?php echo htmlspecialchars("choix : Recrutement") ?>"/>Recrutement</option> <option value="<?php echo htmlspecialchars("choix : Autres") ?>"/>Autres</option></select></p> Hormis ses modifications rien n'a été touché. Modifié 4 Août 2007 par mika_do Lien vers le commentaire Partager sur d’autres sites More sharing options...
buh Posté 4 Août 2007 Partager Posté 4 Août 2007 Bonjour à tous Alors moi je suis nouveau, une bille en php, j'ai mal à la tête mais je suis content Content en effet car ça fait une bonne semaine que je hante les forums, blogs et autres sites d'experts pour essayer de faire fonctionner un formulaire de contact avec captcha. J'en ai essayé pas mal et parfois il me manquait un petit rien (enfin c'est ce que je me dis) je rappelle que je suis une bille en php. Mais voilà qu'hier un lien m'amène ici sur le site Webmaster Hub (que je connaissais déjà) et là tout à coup j'ai l'impression d'être un peu moins couillon car ça a marché du premier coup. Alors précision tout de même, ça a marché pour la version (opérations) et pour la version image tout s'affiche sauf l'image du captcha et le commentaire qui va avec. Pas grave car je préfère la version avec opérations mais faudra que je trouve d'où ça vient. Donc depuis hier soir, j'améliore le look du formulaire via le css (là ça va!) , c'est impeccable. Impeccable .... allez il y a bien 2 ou 3 trucs qui ne vont pas. 1/ Parfois après l'envoi d'un mail, il me répond que celui-ci a rencontré un problème et me demande si je veux re-essayer. Je ré-essaye et là ça part. J'ai eu le coup 2 ou 3 fois cet après-midi et à chaque fois le 2eme envoi est bon. Là je viens de faire un essai à l'instant et c'est parti du premier coup. 2/ Lorsque je reçois les informations dans ma messagerie, je n'ai que les renseignements de l'adresse IP, du navigateur et le texte du message. Rien en ce qui concerne l'adresse e-mail et le titre du sujet. Je suppose que ça se passe dans cette partie de code (code qui est d'origine donc je n'y ai pas touché) mais où peut bien se trouver le truc ??? // le formulaire a été soumis sans erreur, on envoie le mail$entete = "From: ".$_POST["email_expediteur"]." <".$_POST["email_expediteur"].">\n";$entete .= "Return-Path: ". $email_webmaster . "\n";$entete .= "MIME-Version: 1.0";$ip.="Adresse IP: ". $_SERVER['REMOTE_ADDR'] . "\n";$nav.="Navigateur: ". $_SERVER['HTTP_USER_AGENT'] . "\n\n";if (@mail($email_webmaster,$titre_cache.$_POST["titre"],$ip.$nav.$_POST["message"],$entete)){// mail envoyéecho "Votre message a été envoyé.<br />\n";echo "<a href=\"".$_SERVER["PHP_SELF"]."\">Envoyer un autre message...</a>\n";}else {// erreur lors de l'envoi du mailecho "Un problème s'est produit lors de l'envoi du message.\n";echo "<a href=\"".$_SERVER["PHP_SELF"]."\">Réessayez...</a>\n"; 3/ Et dernière question, comment faire pour que les opérations ne soient que des additions. J'ai vu que quelqu'un en parlait mais autant le dire de suite je n'ai rien compris. Enfin voilà où j'en suis après une bonne semaine de galère mais comme déjà dit plus haut je suis bien content d'être arrivé là. Si vous avez des réponses surtout pour les 2 dernières questions, d'avance un grand merci. Avec tout ça j'ai même pas vu les essais du grand prix et je connais même pas la grille. Bonne soirée Lien vers le commentaire Partager sur d’autres sites More sharing options...
iNCiTE Web Posté 6 Août 2007 Partager Posté 6 Août 2007 1/ les essais sont en local ou sur un serveur ? 2/ en remplacant if (@mail($email_webmaster,$titre_cache.$_POST["titre"] par if (@mail($_POST["email_webmaster"],$_POST["titre_cache"].$_POST["titre"] 3/ j'ai juste téléchargé et regardé le script (je ne l'utilise pas), je dirais ligne 43, $operateur = array("+"); (en supprimant la soustraction de la liste des symboles) Lien vers le commentaire Partager sur d’autres sites More sharing options...
buh Posté 7 Août 2007 Partager Posté 7 Août 2007 Bonjour et merci de ton intervention 1/ les essais sont en local ou sur un serveur ?1/ le site est chez Free 2/ en remplacant if (@mail($email_webmaster,$titre_cache.$_POST["titre"] par if (@mail($_POST["email_webmaster"],$_POST["titre_cache"].$_POST["titre"] 2/ Une fois ce remplacement effectué, ça part mais je ne reçois plus rien. 3/ j'ai juste téléchargé et regardé le script (je ne l'utilise pas), je dirais ligne 43, $operateur = array("+"); (en supprimant la soustraction de la liste des symboles)3/ Ici maintenant apparemment je n'ai bien que des additions mais lorsqu'il s'agit de soustraction aucun signe n'apparaît entre les 2 nombres ce qui donne par exemple 8 2. Là je pense que ça doit se passer dans le fichier antispam.php où il me semble qu'il reste un signe - mais quoi supprimer exactement. Lien vers le commentaire Partager sur d’autres sites More sharing options...
iNCiTE Web Posté 7 Août 2007 Partager Posté 7 Août 2007 Bon j'ai lu le script rapidement, donc voici mes corrections 1/ chez Free la fonction mail() n'est-elle pas bridée ? 2/ normal en fait, enlèves les 2 $_POST (et le @ devant la fonction mail, ça cache une éventuelle erreur, tu remettras après). Par contre pour les valeurs vides il faudrait voir le formulaire d'origine complet, avec les noms des champs. Tu as ça en ligne ? 3) mettre $op = "0"; au lieu de $op = rand(0, 1); et tu peux remettre le premier élément comme il était... Lien vers le commentaire Partager sur d’autres sites More sharing options...
buh Posté 7 Août 2007 Partager Posté 7 Août 2007 (modifié) Bonsoir Aie aie ça coince. J'ai bien essayé de faire les modifications que tu dis mais je ne dois pas faire ce qu'il faut. En fait après ces 2 réponses je ne sais plus trop quoi enlever ou remettre. Donc le formulaire ne voulant plus rien dire, je suis reparti sur celui du départ dont je parle dans mon 1er post un peu plus haut et là tu verras qu'il est dit que ça marche. 1/ Donc Free a-t-il la fonction mail bridée, je t'avoue ne pas le savoir mais vu que par moment ça marche, j'en déduis que la fonction mail est OK 2/ C'est là que ça s'est compliqué aussi j'ai tout supprimé pour revenir au modèle qui fonctionne (enfin presque voir mon premier message). Il est en ligne ici Voir la page 3/ Là j'allais essayer de faire ce que tu dis mais j'ai laissé tomber quand j'ai lu : et tu peux remettre le premier élément commeil était... Je connaissais le 6eme élément mais le premier élément c'est quoi ?Non on rigole pas surtout que j'avais affiché la couleur d'entrée en disant que j'étais une bille en php Enfin pour rappeler ce qui est mon principal problème dans cette histoire c'est que je ne récupère pas les informations des 2 premiers champs (Adresse mail et titre message). Par contre j'ai l'adresse IP, les rgts sur le navigateur et le texte du message. Enfin pour être complet voici un lien pour voir le code sous forme .txt des 2 fichiers composant ce formulaire. Voir ici le code Dur dur le php. J'ai la tête comme un tambour aussi j'espère n'avoir rien oublié Merci encore une fois. Modifié 7 Août 2007 par buh Lien vers le commentaire Partager sur d’autres sites More sharing options...
iNCiTE Web Posté 7 Août 2007 Partager Posté 7 Août 2007 Bon alors si tu as remis le script d'origine, tu remplaces $op = rand(0, 1); par $op = "0"; pour n'avoir que des additions. Sinon j'ai fait un pur copier/coller de tes 2 fichers, ça fonctionne partfaitement. L'adresse e-mail de l'expéditeur est bien celle que je reçois le titre saisi se rajoute en sujet avec le "titre caché" (il manque un espace entre les 2 pour faire bien). J'espère que tu ne cherchais pas l'adresse et le sujet dans le mail, car ce n'est pas ce que fait le script... Lien vers le commentaire Partager sur d’autres sites More sharing options...
buh Posté 7 Août 2007 Partager Posté 7 Août 2007 Sinon j'ai fait un pur copier/coller de tes 2 fichers, ça fonctionne partfaitement.Ah bon ? et bien c'est déjà ça quoique ce n'est que le code origine auquel je n'ai rien touché (c'est pour ça ). J'espère que tu ne cherchais pas l'adresse et le sujet dans le mail, car ce n'est pas ce que fait le script... Bon alors moi j'ai rien compris à la musique car bien sûr que oui que je m'attendais à avoir l'adresse mail et et le titre du sujet dans le courrier que je reçois sinon à quoi ça sert ? Il y a là un truc qui m'échappe --> Si j'ai pas son adresse email comment je fais pour lui répondre ? A quoi sert de mettre le champ Adresse e-mail comme étant obligatoire si je ne le récupère pas ? En fait à quoi sert exactement ce formulaire alors ? Et y-a-t-il moyen de modifier le code pour arriver à récupérer ces 2 premiers champs. Merci Lien vers le commentaire Partager sur d’autres sites More sharing options...
Arlette Posté 8 Août 2007 Partager Posté 8 Août 2007 J'espère que tu ne cherchais pas l'adresse et le sujet dans le mail, car ce n'est pas ce que fait le script... Bon alors moi j'ai rien compris à la musique car bien sûr que oui que je m'attendais à avoir l'adresse mail et et le titre du sujet dans le courrier que je reçois sinon à quoi ça sert ?Il y a là un truc qui m'échappe --> Si j'ai pas son adresse email comment je fais pour lui répondre ? Allez je tente ma chance parce que j'y connais encore bien moins que toi en code. Je pense qu'iNCITE Web veut te dire que dans ton code tu as oublié de mettre ce qu'il faut pour récupérer l'adresse mail et le sujet. Donc j'ai bien compris que c'est ce que tu veux faire... Donc il doit falloir que tu rajoutes des lignes dans ton code pour récupérer ces deux paramètres. En toute logique, un code qui doit être similaire à celui qui te permet de récupérer le texte du message (puisque ça tu y arrives) . Lien vers le commentaire Partager sur d’autres sites More sharing options...
iNCiTE Web Posté 8 Août 2007 Partager Posté 8 Août 2007 (modifié) Merci Arlette, j'ai compris seulement hier qu'il voulait récupérer l'adresse e-mail dans le corps du message, et que le script ne l'inclut pas. Bon alors moi j'ai rien compris à la musique car bien sûr que oui que je m'attendais à avoir l'adresse mail et et le titre du sujet dans le courrier que je reçois sinon à quoi ça sert ? Le titre du sujet dans un mail, c'est en général le sujet du mail !! Et l'adresse e-mail, c'est l'expéditeur Il y a là un truc qui m'échappe --> Si j'ai pas son adresse email comment je fais pour lui répondre ? Avec le bouton "répondre" puisque c'est l'expéditeur du mail ; si tu as testé le formulaire en mettant ta propre adresse tu n'as pas du voir... A quoi sert de mettre le champ Adresse e-mail comme étant obligatoire si je ne le récupère pas ? cd plus haut En fait à quoi sert exactement ce formulaire alors ? Euh... Et y-a-t-il moyen de modifier le code pour arriver à récupérer ces 2 premiers champs. Bon allez c'est le matin... Remplace if (@mail($email_webmaster,$titre_cache.$_POST["titre"],$ip.$nav.$_POST["message"],$entete)){ par if (@mail($email_webmaster,$titre_cache.$_POST["titre"],$ip.$nav.$_POST["email_expediteur"]."\n".$_POST["message"],$entete)){ Le sujet tu l'as déjà, c'est l'objet du mail que tu reçois... Modifié 8 Août 2007 par iNCiTE Web Lien vers le commentaire Partager sur d’autres sites More sharing options...
buh Posté 8 Août 2007 Partager Posté 8 Août 2007 Oh le con (excusez moi) mais je viens de comprendre et franchement je dois passer pour un nul (que je suis je le reconnais). Heu pardon Bonjour à tous Et dans tout ça le plus fort, c'est qu'après chaque envoi j'avais la réponse sous les yeux dans ma messagerie avec l'adresse et bien sûr le sujet. Je suis vraiment confus d'avoir monopolisé ainsi ce post pendant ces quelques jours mais d'un autre côté je suis très satisfait d'y être arrivé. En tout cas un grand merci à iNCiTE Web pour sa patience et ses conseils, c'est très sympa et surtout ça fait vraiment plaisir de recevoir ce genre d'aide lorsqu'on a un niveau comme le mien. En tout cas j'ai beaucoup appris. Un petit bisou à Arlette aussi (ha tiens Rognes ) Bon maintenant va falloir habiller tout ça mais là je peux m'en sortir seul. Encore une fois merci A la prochaine Lien vers le commentaire Partager sur d’autres sites More sharing options...
Stook Posté 21 Août 2007 Partager Posté 21 Août 2007 (modifié) Bonjour , je voudrais savoir à quoi est du cette erreur....( Les étoiles sont là pour cacher quelques infos , J'ai essayer , j'ai bien tout modifier comme il le faut ...[ Formulaire de contact avec captcha visuel (cryptographp) ] ) Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home/****/www/*****/contact.php:7) in /home/****/www/******/crypt/cryptographp.fct.php on line 14Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/****/www/*****/contact.php:7) in /home/****/www/******/crypt/cryptographp.fct.php on line 14 Merci d'avance ! Modifié 21 Août 2007 par Stook Lien vers le commentaire Partager sur d’autres sites More sharing options...
captain_torche Posté 21 Août 2007 Partager Posté 21 Août 2007 Cette erreur est dûe au fait qu'une information a déjà été envoyée au navigateur avant la déclaration du header. ca peut être dû à un affichage avant la fonction (un simple echo, par exemple), ou même d'un espace ou un retour chariot avant l'ouverture de ton code PHP. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Stook Posté 21 Août 2007 Partager Posté 21 Août 2007 Merci ...j'viens de reparer ca c'est niquel Lien vers le commentaire Partager sur d’autres sites More sharing options...
iNCiTE Web Posté 3 Septembre 2007 Partager Posté 3 Septembre 2007 Un champ de type file dans le formulaire, puis le traitement qui va bien en PHP ensuite. Toutes les explications sont là : http://phpcodeur.net/articles/php/upload Lien vers le commentaire Partager sur d’autres sites More sharing options...
t671 Posté 2 Mars 2008 Partager Posté 2 Mars 2008 Bonjour, Je souhaite installer le Formulaire de contact avec captcha visuel (cryptographp). Je suis les conseils de alphega du dimanche 22 juillet 2007, mais ça ne fonctionne pas !!!! J'ai installer cryptograph 1.4, et voici mon message d'erreur : Warning: main(antispam.php): failed to open stream: No such file or directory in D:\www\php\Val-ville\test_crypt\contact2.php on line 1 Warning: main(): Failed opening 'antispam.php' for inclusion (include_path='.;c:\php4\pear') in D:\www\php\Val-ville\test_crypt\contact2.php on line 1 Fatal error: Call to undefined function: antispam_ins() in D:\www\php\Val-ville\test_crypt\contact2.php on line 74 Le scripts antispam.php, je le trouve où ???? Il est pas dans le zip !!!!!??? Voici le script que j'ai tenté de rendre plus lisible (si je fais un copir-coller du script de alphega, j'ai pas mal de Parse-Error .... ) : <?php include_once("antispam.php"); ?><?php// Dans la ligne qui suit, remplacer webmaster_AT_domaine.tld par l'adresse email du webmaster, à laquelle les messages devront être envoyés$email_webmaster = "t14_AT_libertysurf.fr";// Rajout alphega: Dans cette ligne remplacez "example.com" par le nom de votre site. Utile si vous avez plusieurs formulaires.$titre_cache = "Depuis le site example.com: ";// === traitement des données du formulaire // ============================================================if (isset($_POST["envoyer"])){// le formulaire a été soumis$etat = "erreur";// Valeur par défaut. Prendra la valeur "ok" s'il n'y a pas d'erreur// --- mise en forme des champs saisis dans le formulaire lors de sa soumission ---if (isset($_POST["email_expediteur"])) {$_POST["email_expediteur"]=trim(stripslashes($_POST["email_expediteur"]));}if (isset($_POST["titre"])) {$_POST["titre"]=trim(stripslashes($_POST["titre"]));}if (isset($_POST["message"])) {$_POST["message"]=trim(stripslashes($_POST["message"]));}// --- test de la validité des champs saisis ---if (empty($_POST["email_expediteur"])) {// il manque l'email de l'expéditeur$erreur="Saisissez votre adresse email...";}elseif (!eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\.[a-z]{2,4}$",$_POST["email_expediteur"])){// l'adresse e-mail n'est pas valide$erreur="Votre adresse e-mail n'est pas valide...";}elseif (empty($_POST["message"])) {// le message est vide$erreur="Saisissez un message...";}elseif (antispam_check() == false) {// l'addition est fausse$erreur="Résultat du calcul incorrect, veuillez réessayer svp !";}else {// --- tous les champs sont correctement remplis: on pourra envoyer le mail ---$etat="ok";}}else {// --- le formulaire n'a pas été soumis ---$etat="attente";}// === fin de traitement des données du formulaire ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xml:lang="fr" lang="fr" xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /><title>Formulaire de contact</title></head><body><h1>Contacter le webmaster</h1><?php if ($etat!="ok"){// le formulaire n'a pas été soumis, ou soumis avec une erreurif($etat=="erreur"){//le formulaire a été soumis avec une erreurecho "<p><strong>".$erreur."</strong></p>\n";// afficher le message d'erreur}?><form method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>?<?php echo SID; ?>"><p> <label for="email_expediteur">Votre adresse e-mail (obligatoire):</label><br /> <input type="text" size="40" name="email_expediteur" id="email_expediteur" value="<?php if (!empty($_POST["email_expediteur"])) {// l'adresse email de l'expéditeur a été saisie: la réafficher echo htmlspecialchars($_POST["email_expediteur"],ENT_QUOTES);}?>" /></p><p><label for="titre">Titre de message (facultatif):</label><br /> <input type="text" size="40" name="titre" id="titre" value="<?php if (!empty($_POST["titre"])) // le titre du message a été saisi: le réafficher echo htmlspecialchars($_POST["titre"],ENT_QUOTES);}?>" /></p><p><label for="message">Message(obligatoire):</label><br /> <textarea name="message" id="message" cols="40" rows="5"><?php if (isset($_POST["message"])) {// le message a été saisi: le réafficher echo htmlspecialchars($_POST["message"],ENT_QUOTES);}?></textarea></p><p>Résultat du calcul ci-dessous: addition ou soustraction, le résultat peut-etre négatif.<br />Ex: 1-4 taper: -3 (Ceci est une sécurité anti-spam)</p><?php antispam_ins(); ?><p><input type="submit" name="envoyer" value="Envoyer" /></p></form><?php}else {// le formulaire a été soumis sans erreur, on envoie le mail$entete = "From: ".$_POST["email_expediteur"]." <".$_POST["email_expediteur"].">\n";$entete .= "Return-Path: ". $email_webmaster . "\n";$entete .= "MIME-Version: 1.0";$ip.="Adresse IP: ". $_SERVER['REMOTE_ADDR'] . "\n";$nav.="Navigateur: ". $_SERVER['HTTP_USER_AGENT'] . "\n\n";if (@mail($email_webmaster,$titre_cache.$_POST["titre"],$ip.$nav.$_POST["message"],$entete)){// mail envoyéecho "Votre message a été envoyé.<br />\n";echo "<a href=\"".$_SERVER["PHP_SELF"]."\">Envoyer un autre message...</a>\n";}else {// erreur lors de l'envoi du mailecho "Un problème s'est produit lors de l'envoi du message.\n";echo "<a href=\"".$_SERVER["PHP_SELF"]."\">Réessayez...</a>\n";}}?></body></html> Merci pour votre aide .... Lien vers le commentaire Partager sur d’autres sites More sharing options...
t671 Posté 3 Mars 2008 Partager Posté 3 Mars 2008 Bonjour alphega, Je veux utiliser ton Formulaire de contact avec captcha addition soustraction de Byc. Mais le lien pour Télécharger le script antispam de byc ne fonctionne pas ! Pourrais-tu me le transférer ? Merci Lien vers le commentaire Partager sur d’autres sites More sharing options...
alphega Posté 7 Mars 2008 Auteur Partager Posté 7 Mars 2008 Bonjour, Dans l'exemple que je donne plus haut pour créer un formulaire antispam, les liens vers cryptographp et le script de byc sont brisés. Voici le nouveau lien vers Cryptographp: Télécharger le script Cryptographp Avec l'accord de byc, (merci) voici le script antispam: Télécharger le script antispam addition/soustraction Je ne peux malheureusement plus éditer le message pour mettre les liens à jour dans le post explicatif (message #82). Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant