gafguy Posté 5 Novembre 2007 Posté 5 Novembre 2007 (modifié) Bonsoir à toutes et à tous ! Je me trouve confronté à un problème auquel je n'avais jamais pensé mais qu'un ami, avec lequel je travaille sur un site, m'a signalé. Voici ce dont il s'agit : pour réaliser une série d'ebooks, nous avons besoin de l'avis de nos futurs lecteurs. J'ai donc fait une page en html avec des questions précises ; par le biais d'une page en php, ça arrive dans mon client mail puis dans ma base de données. Mon ami m'a signalé ceci : si une personne arrive sur le site (mais j'en ai un autre où il y a le même problème), ne remplit pas l'enquête mais clique sur le bouton "envoyer", elle a accès à une page où il y a un cadeau (et même deux, voire trois). Pour moi, ça n'a aucune importance (de toute manière c'est un cadeau) mais à ses yeux cela a l'air de poser problème. Je lui ai dit que j'allais tenter de me renseigner, mais comment puis-je faire (avis aux spécialistes du php, entre autres) pour éviter qu'une personne qui n'a pas rempli l'enquête (moi j'avais pensé qu'à partir du moment où l'en-tête identitaire est remplie, tout est bon) n'aie pas accès à la page cadeau ? Dur, dur ! Si quelqu'un sait, qu'il n'hésite pas ! Modifié 5 Novembre 2007 par gafguy
Arlette Posté 5 Novembre 2007 Posté 5 Novembre 2007 Bonsoir, Si j'ai bien compris ta problèmatique, tu offres un cadeau aux personnes qui remplissent le questionnaire. Cela sous-entend qu'il faut que la personne remplisse les cases : "Nom, adresse, email"... Bon, si elle rempli pas les cases : Ben c'est normal qu'elle reçoive rien, et donc ne peut se prévaloir de rien non ? Sinon, il faut que dans ton formulaire tu mettes une condition : "Si telle et telle case pas remplie = pas de validation". Mais là, me demande pas comment on fait, j'en sais rien Le risque que tu prends si tu mets pas des conditions pour la validation c'est que tu vas vite être spammé à mort ! Sois patient, un pro va venir à ta rescousse pour te donner la formule magique
cybermad Posté 5 Novembre 2007 Posté 5 Novembre 2007 Bonsoir, Pour ça tu peux (tu dois?) agir à plusieurs niveaux: 1) Tu dois vérifier le formulaire en javascript pour ceux qui l'ont activé: Donc si une personne clique sur valider, il y aura un petit avertissement: "Merci de donner votre nom"... et ce pour tous les champs. 2) Et oui, il y a des gens qui désactive javascript. Tu dois donc faire une vérif au niveau serveur. Tu vérifies chaque variable. Si une est vide, tu renvoie vers le formulaire avec une mention au-dessus "Merci de renseigner le champs blabla". Biensûr tu vérifies que l'adresse mail n'est pas "rjeoiazr", mais qu'elle soit au moins de la forme "jfe_AT_fral.fd" Il y a des regex utilent pour ça. 3) Tu peux pousser le vice jusqu'à envoyer un code d'activation pour valider l'adresse mail. Si la personne ne rentre pas le code d'activation généré aléatoirement avec son adresse mail, alors elle ne pourra pas accéder à l'espace cadeaux. Bonne prog. Si t'a des soucis et que tu veux plus d'aide, MP of course: j'ai fait un tuto détaillé sur un site, je te passerais le lien. Je veux pas faire de pub ici.
captain_torche Posté 5 Novembre 2007 Posté 5 Novembre 2007 Tu peux très bien mettre le lien ici, c'est parfaitement justifié
cybermad Posté 5 Novembre 2007 Posté 5 Novembre 2007 OK, voici le lien d'un tuto: http://www.thewebmaster.fr/forum/viewtopic.php?id=42
gafguy Posté 6 Novembre 2007 Auteur Posté 6 Novembre 2007 D'accord et merci. Mais si j'ai bien compris, tu mets sur la même page le code html et le code php. Personnellement, j'ai fait deux pages distinctes, une pour le html (présentation du questionnaire), l'autre en php pour son envoi dans mon client mail. Est-ce que je dois mettre la partie de code qui va bien, par exemple : --- excuse-moi, je ne mets pas d'exemple, parce qu'à chaque fois que je veux mettre du code en php dans , il me jette (rien ne va plus !) --- Il y a en effet une partie en php, l'autre en javascript. Je dois mettre ça sur ma page en html, non ?
gafguy Posté 6 Novembre 2007 Auteur Posté 6 Novembre 2007 (modifié) M... Merci, voulais-je écrire Je mets le code en question (tout du moins ce qui m'intéresse) : <?php$// Expression Regex qui vérifie la validité d'un mail $verifie_mail = '#^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,5}$#'; if(!preg_match($verifie_mail,$mail)) { $pb_mail = 1; }// Fin de vérification de l'adresse mail } // On verifie si les variables existent, sinon...if ((isset($Submit)) && ( $pb_mail != "1" ) && ($pb_sujet != "1") && ($pb_message != "1")){$message = ereg_replace("\n", "<br/>", $message);?> et pour le javascript : <script type="text/javascript" src="pages/contact_verif.js"></script>function verif_submit(){ var verif = document.contact; //Sujet if(verif.sujet.value == "") {alert("Veuillez mettre un sujet");return(false);} //Mail if(verif.mail.value == "") {alert("Veuillez indiquer votre e-mail");return(false);} if(verif.mail.value.search(/ /)!='-1') {alert('Une adresse e-mail ne peut contenir un espace !');return(false);} if(verif.mail.value.search(';')!='-1') {alert('Une adresse e-mail ne peut contenir un point virgule !');return(false);} s=verif.mail.value.split(/@/); if((s.length != 2) || s[0] == '' || s[1] == '') {alert('Une adresse e-mail doit avoir le format "Utilisateur_AT_Domain.com",\n');return(false);} //Message if(verif.message.value == "") {alert("Veuillez indiquer votre message");return(false);}return(true);}function verif_submit(){ var verif = document.contact; //Sujet if(verif.sujet.value == "") {alert("Veuillez mettre un sujet");return(false);} //Mail if(verif.mail.value == "") {alert("Veuillez indiquer votre e-mail");return(false);} if(verif.mail.value.search(/ /)!='-1') {alert('Une adresse e-mail ne peut contenir un espace !');return(false);} if(verif.mail.value.search(';')!='-1') {alert('Une adresse e-mail ne peut contenir un point virgule !');return(false);} s=verif.mail.value.split(/@/); if((s.length != 2) || s[0] == '' || s[1] == '') {alert('Une adresse e-mail doit avoir le format "Utilisateur_AT_Domain.com",\n');return(false);} //Message if(verif.message.value == "") {alert("Veuillez indiquer votre message");return(false);}return(true);} Bon, là, ça fonctionne ! Incapable de dire pourquoi ! Mais... est-ce suffisant comme code ? Dois-je le mettre sur ma page en html, puisque j'ai une page en html (le questionnaire) et une autre en php (l'envoi du questionnaire) ? Et je ne suis spécialiste ni de l'un ni de l'autre... Modifié 6 Novembre 2007 par gafguy
dragondz Posté 6 Novembre 2007 Posté 6 Novembre 2007 (modifié) Hum idée toute bête et si tu envoyer un mail au souscripteur ou tu met le lien vers ta page cadeau! Comme cela seul ceux qui ont rempli le formulaire et donné un mail valide recevraient le mail qui leur donne le lien vers ta fameuse page cadeau! Enfin ce n'est pas parfait (quiconque connaitrait le lien vers ta page cadeau pourra s'y rendre par la suite) mais cela aidera je pense non? A+ PS: en étant plus tordu tu mettrais un lien avec un id (généré aléatoirement) unique dans le mail que tu stockera dans ta base comme cela celui qui essayer de se connecter à ta fameuse page devra avoir un id valide pour y accéder. Modifié 6 Novembre 2007 par dragondz
cybermad Posté 6 Novembre 2007 Posté 6 Novembre 2007 Salut, En fait: - ou tu mets le javascript complet sur ta page html (peu conseillé en fait, mais ça fonctionne) - ou tu mets un lien qui va chercher ton ficher javascript, mais là aussi dans ta page html. Oui dans mon exemple je n'ai qu'une seule page, car si tu as un gros site avec plein de page, tu es vite perdu.. mieux vaut mettre une page par fonction (dans la mesure du possible of course. Enfin c'est mon avis et c'est disutable ;-) Dragondz rejoint le 3) de mon premier post. Bon et sinon, puisque ça fonctionne c'est le principal non
gafguy Posté 6 Novembre 2007 Auteur Posté 6 Novembre 2007 Merci à vous deux ! Hum idée toute bête et si tu envoyer un mail au souscripteur ou tu met le lien vers ta page cadeau! Comme cela seul ceux qui ont rempli le formulaire et donné un mail valide recevraient le mail qui leur donne le lien vers ta fameuse page cadeau! Bonne idée à laquelle je n'avais pas pensé (il faut dire que dans mon esprit il n'y avait aucun pb). Mais il faut que je fasse quoi ? Au lieu de mettre dans le code la redirection vers la page de cadeau, je la mets vers la page de remerciement. Et là, je fais quoi ? Il faut que je refasse une page en php ? Comment est-ce que je peux extraire automatiquement l'adresse de la personne ? Désolé si je vous parais nul mais j'attrape une grosse tête en ce moment en voulant mettre les résultats dans FileMakerPro. Et c'est justement pour automatiser mes processus, alors je ne vais pas me coltiner ça à la main... Une idée ? Une suggestion ? Un conseil ? En tout cas, merci !
cybermad Posté 6 Novembre 2007 Posté 6 Novembre 2007 Non, 1) Tu génères un code aléatoire un php 2) Si et seulement Si la syntaxe de l'email est bonne, tu envoie un mail avec ton script php. Dans le corps du message tu mets le code d'activation (valable x jour). Le login sera l'email. Bien sûr l'url de la page... 2) Tu insères dans ta base de donnée l'email, le code d'activation et la fonction time(). Ensuite la personne va sur la page, entre son mail et le code d'activation et fait OK. Là un script php récupère le time et vérifie par rapport à la date du jour. Si ça dépasse X jours c'est mort, sinon OK => on a le cadeau. FileMakerPro ? Pourquoi faire ??? Bloc-note oui... bon allez notepad++ Déjà pour la chaîne aléatoire t'a ça: http://www.thewebmaster.fr/forum/viewtopic.php?id=43 Bon si t'a besoin d'un tuto pour un truc OK, mais précise-moi pourquoi. Avec un peu de temps on fait des mirâcles... ;-)
gafguy Posté 6 Novembre 2007 Auteur Posté 6 Novembre 2007 Bonsoir ! 1) Tu génères un code aléatoire un php Je ne sais pas le faire, mais avec ton morceau de code ça devrait aller tout seul. 2) Si et seulement Si la syntaxe de l'email est bonne, tu envoie un mail avec ton script php. Dans le corps du message tu mets le code d'activation (valable x jour). Le login sera l'email. Bien sûr l'url de la page... Il faut que l'email parte automatiquement. Je n'ai pas ton bout de code sous les yeux. Il le fait ? 2) Tu insères dans ta base de donnée l'email, le code d'activation et la fonction time(). Ma base de données, c'est justement FileMakerPro. Que je t'explique : je fais tous mes sites avec Dreamweaver, depuis mon Mac, sur lequel je travaille (ce n'est pas le même...) depuis son arrivée en France, en 1984. Il faut dire que mon boulot de base est l'écriture, donc... Je viens seulement d'acquérir un PC et Bilou ne pourra pas me remercier d'avoir participé à l'élaboration de sa fortune. Ma raison est simple : j'ai des logiciels qui ne fonctionnent QUE sur PC (par exemple Global Keywords Manager, si tu connais - génial) FMPro, je connais par coeur depuis sa version 2 ou 3, je ne me souviens plus. En ce moment, j'utilise ses scripts pour importer dans ma base de données les résultats de l'enquête, que j'ai extraits grâce à AppleScript jusque dans un dossier sur mon disque dur. Et comme je ne suis pas informaticien, dur, dur ! Ensuite la personne va sur la page, entre son mail et le code d'activation et fait OK.Là un script php récupère le time et vérifie par rapport à la date du jour. Si ça dépasse X jours c'est mort, sinon OK => on a le cadeau. Là, tu m'intéresses et pas seulement pour le cadeau. Mais tu fais ça en php ? Comment ? Je dois te dire que ma première page en php (c'était pour un tableau que je regarnissais toutes les semaines, avec des données qui variaient beaucoup), j'ai mis trois mois pour le faire, là où un informaticien moyen aurait certainement passé trois jours au maximum. C'était il y a six ou sept ans mais j'ai parfaitement compris l'utilité de la chose. De là à faire un site entier en php, il y a de la marge. Je vais regarder ton truc et réfléchir un peu, mais si tu peux effectivement me donner un coup de main, il sera bien accueilli, je peux te l'assurer.
cybermad Posté 6 Novembre 2007 Posté 6 Novembre 2007 (modifié) Salut, Pour la génération du code aléatoire, je t'avais mis un lien: http://www.thewebmaster.fr/forum/viewtopic.php?id=43 Pour l'envoi du mail, tu as tout ce qu'il faut dans mon tuto contact. Plus précisément: Dans la partie message tu peux faire: $message = "bonjour,<br/>bienvenue\n";$message = "Voici votre code pour avoir votre cadeau:<br/>$code<br/>\n";$message = "Cliquer sur ce lien:...\n"; Puis tu intègres tout ça: $msg="Je vous informe que ceci est un message au format MIME 1.0 multipart/mixed.\n";$msg.="--$boundary\n";$msg.="Content-Type: text/html; charset=\"iso-8859-1\"\n";$msg .= "Content-Transfer-Encoding: quoted-printable\n\n";$msg.="\n";$msg.="<html><head></head><body bgcolor=3D#FFFFFF>";$msg.="Email envoyé de: $mail<br/>\n";$msg.="Thème: $theme<br/>\n";$msg.="Sujet: $sujet<br/><br/>\n\n";$msg.="<hr>";$msg.="$message"; Euh... sinon moi c 'est php / Mysql... et bloc-note. Je ne connais pas FileMakerPro ni Global Keywords Manager... je travail on line en fait. A+ Modifié 6 Novembre 2007 par cybermad
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant