cs_spoonisback
Messages postés72Date d'inscriptionvendredi 14 mai 2004StatutMembreDernière intervention 5 février 2010
-
2 mars 2009 à 09:37
kleberinho
Messages postés1Date d'inscriptiondimanche 3 août 2008StatutMembreDernière intervention 3 février 2010
-
6 nov. 2009 à 17:12
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
kleberinho
Messages postés1Date d'inscriptiondimanche 3 août 2008StatutMembreDernière intervention 3 février 2010 6 nov. 2009 à 17:12
Bonjour,
Merci pour ce code. Je suis un vrai débutant et je n'arrive pas à créer une bdd dans phpadmin qui corresponde à tous les champs auxquels ton code fait appel. Pourrais-tu la mettre à disposition ta BDD ?
Merci d'avance
griffondorr
Messages postés427Date d'inscriptiondimanche 6 juillet 2008StatutMembreDernière intervention 4 mai 2009 26 mars 2009 à 16:52
oleiade ben corrige le code avec les guillemets autour de la variable et dis moi si c'est bien wamp qui faut utiliser pour lire ta source stp
merci de me répondre
oleiade
Messages postés8Date d'inscriptiondimanche 1 mars 2009StatutMembreDernière intervention26 mars 2009 26 mars 2009 à 15:39
J'ai réfléchis à ton cas. Et en fin de compte, c'est beaucoup plus simple que ce que je pensais... en fait, il semblerait que j'ai oublié de mettre les guillemets autour de la variable relative au paramètre de la fonction mail, à la ligne 186; tente ta chance et donne moi ton retour.
griffondorr
Messages postés427Date d'inscriptiondimanche 6 juillet 2008StatutMembreDernière intervention 4 mai 2009 23 mars 2009 à 16:53
oleiade, j'utilise wamp sous windows vista, pour avoir la fonction mail sous wamp ? faut installer PHP 5.2 ?
où trouver ton ce php 5.2 ? donne moi le lien pour le télécharger merci d'avance ;)
oleiade
Messages postés8Date d'inscriptiondimanche 1 mars 2009StatutMembreDernière intervention26 mars 2009 23 mars 2009 à 16:33
Désolé pour le temps de réponse, j'ai pas mal de boulot ces temps-ci... :) Alors, pour griffondor, je suis désolé de te décevoir, mais ce script est à adapter à chacun des cas particuliers... je n'ai fournit qu'une colone vertébrale. Maintenant, je constate que tu as un environnement windows, assure-toi d'avoir correctement installé toutes les libraires de PHP(5.2 si je ne m'abuse). Ensuite, l'erreur que tu pointes touches à l'envoi des mails; je ne l'ai aps annoté, mais il s'agit d'un script indépendant qu'il s'agit d'activer avec une tache cron sur le serveur. Maintenant je tourne exclusivement sur des plateformes UNIX, et donc avec Apache, donc je ne sais pas comment ca marche de ton côté. Envoi moi tes spécifications que je prospecte :)
Je me penche en ce moment meme sur le javascript pour ouvrir le formulaire d'inscription dans une nouvelle fenetre, afin d'éviter les soucis avec la gestion de l'intégration wordpress; je ferai évoluer le script en conséquence :)
Merci à tous de vos retours. Je prospecte, je prospecte...
griffondorr
Messages postés427Date d'inscriptiondimanche 6 juillet 2008StatutMembreDernière intervention 4 mai 2009 23 mars 2009 à 16:11
je clique sur mail.newletters, la meme :
mail.newsletter.php
Parse error: syntax error, unexpected T_STRING in C:\wamp\www\formulaire php\functions.php on line 186
a revoir a mon avis ;)
griffondorr
Messages postés427Date d'inscriptiondimanche 6 juillet 2008StatutMembreDernière intervention 4 mai 2009 23 mars 2009 à 16:08
je viens a peine sur la page inscription.php
et ya sa déjà :
inscription.php
se désinscrire
Parse error: syntax error, unexpected T_STRING in C:\wamp\www\formulaire php\functions.php on line 186
je sais pas si c normal sa , merci de me répondre
yop236
Messages postés1Date d'inscriptionmercredi 19 octobre 2005StatutMembreDernière intervention19 mars 2009 19 mars 2009 à 16:01
Salut !
Perso, je fais les vérifications des différents champs en javascript mais je rajoute une deuxième vérif en PHP pour certains champs à cause de robots à spam qui envoient n'importe quoi dans les champs du formulaire en outrepassant les contrôles javascript...
cs_Heirem
Messages postés22Date d'inscriptiondimanche 16 juillet 2006StatutMembreDernière intervention25 novembre 2011 17 mars 2009 à 17:23
Sincèrement l'apprentissage de Javascript pour une programmeur habitué à PHP n'est vraiment pas un problème. Je m'y suis moi même attelé il y a quelques mois et je me sens de plus en plus à l'aise, et les résultats sont là. Pour le plugin Wordpress que je réalise actuellement j'ai créé un formulaire multi index bien rempli. Il était totalement inenvisageable d'effectuer les contrôles de certains champs par le côté serveur !! Beaucoup trop lourd pour l'utilisateur et générateur de beaucoup beaucoup de code pour le développeur. Avec du code Javascript intégré au HTML par du PHP, c'est lors de la soumission du formulaire que tout cela se fait instantanément. L'utilisateur a beaucoup moins de temps à attendre la validation et le développeur a pondu bien moins de code. C'est principalement tout cela qui me faisait rejoindre l'avis de satanik_mike.
Mais cela n'est pas tout. En Javascript j'ai également réalisé, entre autre, une classe me permettant d'afficher dans ce mega formulaire, en regard de certains champs, une tootips volante. très pratique pour afficher de l'aide contextuelle, pas encombrante et souple, lors de la saisie ;)
Pour ce qui est de ton code, pour la petite histoire, cela fait longtemps que je cherche un plugin Wordpress qui permette la gestion de newsletters, sans être pour autant une usine à gaz. Finalement je me suis dis qu'un de ces jours je le feras moi-même. Dans un premier temps en resumant la chose à un module d'inscription, alimentant la Bdd, et en utilisant un outil d'envois de mails en nombre. C'est en lorgnant les fonctionalités de ton code que je me suis rendu compte que ce ne serait pas aussi "évident". Aussi je le met de côté pour voir tout cela en profondeur dès que cela me sera possible. Alors ne t'attend pas à recevoir quelque chose dans ta boîte au lettre dans les jours prochains ;) Ma charge de travail (en plus de mon métier de base) est déjà bien bien lourde. Mais quand je dis que je ferais quelque chose c'est que je le ferais. Le problème est de savoir quand ! Si entre temps tu fais évoluer ton code, je serais parmis les premiers à venir y voir de plus prêt. Good work and have fun ;)
oleiade
Messages postés8Date d'inscriptiondimanche 1 mars 2009StatutMembreDernière intervention26 mars 2009 16 mars 2009 à 13:07
A vrai dire, comme je l'avais déjà dit, je ne connais pas grand chose au javascript; et le rapport difficulté du langage/resultat ne me semble pas assez équilibré pour que je m'y mette pour l'instant. Mais ce que je note dans ce petit débat qui nous anime, c'est qu'en fin de compte, c'est exactement ce que vous considérez comme un avantage que je considère comme un handicap: le javascript s'execute chez le client. A mon sens, et pour mon utilisation, le php est beaucoup plus fiable de ce point de vue; certes, c'est de la charge serveur, mais ca s'éxecute de "mon côté", c'est à dire que s'il y a un probleme, il vient de moi; et je n'ai pas pas 8000 serveurs comme Google, j'en ai un ^^. Tandis qu'il y a déjà au moins quatre navigateurs courants, autant de résolutions d'écrans, et une infinités de paramètres définis par l'utilisation des cibles du script que je ne peux prévoir. Donc, je ne sais pas, c'est sans doute un peu candide, mais je préfère alourdir la tâche, tout en étant sûr qu'elle s'éxécte correctement.
Apres, l'ajax, ca m'a l'air effectivement tres bien. Mais de mon point de vue, il est plus sûr, en tout cas pour un script du genre de celui que je viens de faire, de relayer ca à php, et donc à l'activité du serveur plutôt qu'au navigateur de l'internaute. Et je fais d'ailleurs partie des nombreux utilisateurs de firefox qui utilisent noscript. Tout ca pour dire que je suis sur un parti prit^^ mais que ton intégration de javascript m'intéresse grandement, et j'espère la voir arriver bientôt dans ma boite ^^
Ravi qu'il te plaise ce script. Malheuresement il semble impossible à intégrer dans wordpress. va falloir que je code mon site à la main... Toute une histoire ^^
Je prépare sous peu une évolution orienté objet de mon script; à suivre donc si elle t'intéresse. :)
cs_Heirem
Messages postés22Date d'inscriptiondimanche 16 juillet 2006StatutMembreDernière intervention25 novembre 2011 15 mars 2009 à 20:26
Zut j'avais oublié de te mettre une note ! Voilà qui est fait !
cs_Heirem
Messages postés22Date d'inscriptiondimanche 16 juillet 2006StatutMembreDernière intervention25 novembre 2011 15 mars 2009 à 20:25
Bonsoir,
Juste pour rebondir sur le petit échange que vous avez eu satanik_mike et oleiade concernant les principes de vérifications de données telles que l'adresse mail. D'emblée je rejoins totalement les interrogations satanik_mike. J'ajouterai que j'ai été quelque peu choqué par le qualificatif "d'apparat" concernant Javascript par oleiade. Javascript n'est pas un artifice. Il permet d'agir en temps réel sur la page sans communication avec le serveur. Et c'est loin d'être un luxe superficiel avec certains formulaires.
C'est une remarque d'autant plus intéressante que lorsqu'il s'agit de récupérer un travail en PHP qui ignore ce point il faut - pour ma part - reprendre une bonne partie du travail pour palier à ce genre de ce qui m'apparait comme un manque. Et comme ton script là oleiade me plait beaucoup (bravo !) et que je vais certainement le reprendre à mon compte je sens qu'il va y avoir de l'implémentation Javascript. Si c'est le cas je me ferais un plaisir de t'en envoyer le résultat.
cs_spoonisback
Messages postés72Date d'inscriptionvendredi 14 mai 2004StatutMembreDernière intervention 5 février 2010 3 mars 2009 à 22:22
Re moi...
Je crois qu'il manque un "return false" après ton "if (preg_match($syntaxe, $mail)) " dans ta fonction "verif_email"
satanik_mike
Messages postés28Date d'inscriptionmercredi 6 juin 2001StatutMembreDernière intervention 3 mars 2009 3 mars 2009 à 19:10
Salut,
J'ai l'impression que tu as pris mon post comme un reproche mais ce n'est pas le cas.
Pour te donner plus d'explication sur mon "questionnement", je posais la question pour essayer de trouver quelqu'un qui puisse m'expliquer, et me convaincre au besoin, quel est le principal avantage à préférer des vérifications par un script côté serveur plus que par un script côté client. Personnellement, cette méthode n'a pour moi pas d'avantage du fait de l'obligation d'un tranfert du client vers le serveur pour que le serveur vérifie les données (soit-dit en passant, le serveur fait des traitements à la pelle alors que l'ordinateur du client dispose de toutes ses ressources pour faire ce genre de manipulations, me semble-t'il). L'autre point négatif, mais cela ne s'applique pas forcément dans ton cas mais plus sur un formulaire de saisie plus complet, cela implique qu'en cas d'erreur, il faut penser à remettre dans les champs ce qui a été saisi, d'où des tests et des ressources utilisées en supplément du traitement à proprement parler, la tendance étant de plus en plus aux RIA.
Concernant ta remarque sur les CMS (spip, joomla, ...), je pense ne pas trop me tromper en disant que le métalangage qu'il utilise n'est qu'une interprétation différente des instruction du moteur de script utilisé, mais qui de toute façon, de part l'utilisation de PHP ou de .NET pour le moteur de translation, génèrent un langage compréhensible par les navigateurs, donc du (x)html, css et javascript. Les effets dynamiques de menus déroulants et autres effets sont du DHTML, donc du javascript. Du coup, si blocage du javascript il y a, cela entraîne des dysfonctionnements au niveau du site. En plus, de plus en plus de CMS intègrent des bibliothèque AJAX et javascript (graybox, lightbox, Google ToolKit ...).
Enfin, concernant les capacités des navigateurs à bloquer les pubs et autres éléments désagréables, ils ne bloquent pas toutes les instructions Javascript, ils ne bloquent que celles susceptibles de provoquer l'ouverture ou l'affichage d'une pub dans une nouvelle fenêtre (ou un nouvel onglet). Pour preuve, actuellement, peu de sites sur lesquels apparaît une div contenant de la pub sont traités par ces systèmes de blocage, car l'affichage ne se fait pas par un window.open ou un target="_blank".
En tout cas, concernant la mise à jour de ta source, bon travail, elle est intéressante. Je vais m'y pencher un peu et te donner mon avis dessus.
Sur ce, bon courage et peut-être à bientôt
oleiade
Messages postés8Date d'inscriptiondimanche 1 mars 2009StatutMembreDernière intervention26 mars 2009 3 mars 2009 à 10:29
Ben je rebondis sur ta question, "5% des sites ne font pas appel à javascript" euuuhhhhh et qu'est ce que tu fais de tous les sites qui utilisent SPIP par exemple, ou tous les autres CMS basés sur un metalangage? Et où est-ce que tu caches tous les utilisateurs de firefox ou safari qui ajoutent un module pour ne pas avoir de pub ( c'est à dire pour bloquer le javascript).
Apres, personnelement, je fais du pur PHP pour deux raisons un peu concommitantes. Déjà, si je ne connais pas le langage javascript. Et il ne m'attire pas plus que ca, et je ne pense pas qu'ajouter une couche langage sur un script, meme si cela ajoute de l'ergonomie ( en l'occurence une couche d'AJAX ), le rende plus rapide, et de plus tu ne te retrouves pas avec une seule source d'erreur, mais avec deux... Alors certes l'Ajax, oui, pourquoi pas, mais je viens à peine de commencer à m'y mettre, et je suis pas sûr que dans ce cas précis, il soit utile. Celà dit, si tu as un bout de code pratique applicable à ma situation je veux bien tester.
Apres je pense qu'il ne faut pas perdre de vue que php est langage dynamique, pas besoin de compilation, et c'est là toute sa force, donc je suis juste partit du principe qu'on a un outil performant à nu, pourquoi essayer de lui coller des aparats ^^
Et enfin, j'ai une nouvelle version du script que je vais mettre à jour dans la journée, dans laquelle j'ai pris en compte vos considérations, et qui utilise en plus un "echo" direct au sein des fonctions, ce qui permet de ne pas recharger la page ^^
Mais de toutes les manières merci de participer à l'amélioration du script :)
satanik_mike
Messages postés28Date d'inscriptionmercredi 6 juin 2001StatutMembreDernière intervention 3 mars 2009 3 mars 2009 à 06:27
Salut,
Ok, la source semble correcte, juste une chose, au lieu de verif_presence1 == NULL, pourquoi ne pas utiliser (is_null(verif_presence1) ?
Ensuite, dans ta reuquête, j'aurai plutôt fais ça : WHERE UPPER(mail) = UPPER('$email') pour être sûr de ne pas être "corrompu" pour des erreurs de casse.
Mais je ne viens pas pour commenter le code en lui-même mais plutôt la logique.
Est-ce quelqu'un pourrait m'expliquer pourquoi la plupart des développeurs (professionnels ou non) font ce genre de vérification en PHP ?
Personnellement, je me trompe peut-être, comme on dit personne n'est parfait, la vérification des adresses mails, je fais ça en Javascript dans un script .js pour éviter d'avoir à faire un premier envoi du formulaire pour tester. Je parts du principe qu'il vaut mieux limiter les I/O entre les clients et le serveur. L'avantage d'utiliser Javascript pour des chose comme cela est que ça permet de ne pas transmettre le formulaire si il y a erreur. Et pour tester le dns ou savoir si l'adresse existe déjà dans la base, autant mettre un petit appel XmlHttpRequest et le tour est joué en limitant les transferts d'informations. Comme cela, le script PHP ne se charge que d'inscrire dans la base.
Vous me direz : Oui, mais si ton visiteur a désactivé Javascript, il l'a dans l'os. Ok, mais dans ce cas, il n'a rien à faire sur Internet. Donnez moi des sites sur lesquels il n'y a aucun code Javascript qui s'exécute ? Allez, je penche pour 5% des sites, autant dire aucun .... Et rien n'empêche, pour être sûr, de traiter ces vérifications des deux côtés (mais là c'est de la parano...).
Enfin, si quelqu'un peut m'expliquer, j'aimerai apprendre et comprendre.
Merci
oleiade
Messages postés8Date d'inscriptiondimanche 1 mars 2009StatutMembreDernière intervention26 mars 2009 2 mars 2009 à 09:52
Merci de ta réponse, quoi qu'il arrive ^^
Je sais que des scripts assez similaires existent, mais lors de mes recherches sur le net, disons que j'ai trouvé des choses qui cherchaient à peu près à reproduire la même fonction, mais jamais unifié. C'était toujours très ciblé, et souvent trop ciblé. Donc je me suis permis de mettre ici la solution que j'avais trouvé pour le moment à un problème. Utilisateur acharné de Linux, c'est un comportoment courant dans la programation open-source: de mettre à disposition ses découvertes, son travail, pour que les autres puissent aider à améliorer et participer. Or je début complètement en Php/Mysql, donc ca m'a semblé juste de poser, surtout que ta réponse est assez constructive en l'occurence; j'avais pensé effectivement à la vérification de domaine effectivement, je vais tenter de l'intégrer d'ici peu, mais j'avoue que ce qui serait intéressant, ce serait de balancer un ping au nom du serveur lors de cette vérification, mais j'avoue que si tu as une idée pour ca je suis prenneur...
En fait, je préfère la méthode "classique" de fichier source et fichier fonctions, lorsque j'applique du code à du contenu voué à être en ligne, parce que je ne maitrise pas encore toutes les subtilités de la poo. Et c'est surtout que comme mon site tourne sur wordpress, il m'est plus facile d'implémenter des fonctions que des classes dans le système de gestion du site. Penses-tu que dans ce cas créer des fonctions relatives aux requêtes SQL serait plus simple?
Enfin, les or die ne sont là que pour le test du script, je pense qu'avec les évolutions que je voudrais y apporter, ils disparaitront. A terme, je voudrais que le script récupère la date de l'inscription dans l'en tête http de l'internaute, et insérer un système de statut en plus de al vérification de la présence ou non de l'adresse email dans la base... Si tu as des conseils dans ce sens :)
Merci de toute les manières pour ton commentaire :)
cs_spoonisback
Messages postés72Date d'inscriptionvendredi 14 mai 2004StatutMembreDernière intervention 5 février 2010 2 mars 2009 à 09:37
Bonjour,
Je crois que tu vas te faire allumer car il existe (il me semble) déjà de nombreuses sources de ce type sur PHPCS, mais bon...on verra.
Pour ma part j'aurai rajouter la vérification du nom de domaine avec :
$domain = explode('@', $email);
if (checkdnsrr($domain[1]))
echo "Domaine de l'adresse valide";
Sinon je traite toujours mes connexions SQL à travers une classe, et j'utilise les lancer d'exception que je préfère au "die()"...mais bon comme je en sais pas quel est la meilleur méthode...je ne peut pas critiquer...
Bonne continuation en tout cas...
6 nov. 2009 à 17:12
Merci pour ce code. Je suis un vrai débutant et je n'arrive pas à créer une bdd dans phpadmin qui corresponde à tous les champs auxquels ton code fait appel. Pourrais-tu la mettre à disposition ta BDD ?
Merci d'avance
26 mars 2009 à 16:52
merci de me répondre
26 mars 2009 à 15:39
23 mars 2009 à 16:53
où trouver ton ce php 5.2 ? donne moi le lien pour le télécharger merci d'avance ;)
23 mars 2009 à 16:33
Je me penche en ce moment meme sur le javascript pour ouvrir le formulaire d'inscription dans une nouvelle fenetre, afin d'éviter les soucis avec la gestion de l'intégration wordpress; je ferai évoluer le script en conséquence :)
Merci à tous de vos retours. Je prospecte, je prospecte...
23 mars 2009 à 16:11
mail.newsletter.php
Parse error: syntax error, unexpected T_STRING in C:\wamp\www\formulaire php\functions.php on line 186
a revoir a mon avis ;)
23 mars 2009 à 16:08
et ya sa déjà :
inscription.php
se désinscrire
Parse error: syntax error, unexpected T_STRING in C:\wamp\www\formulaire php\functions.php on line 186
je sais pas si c normal sa , merci de me répondre
19 mars 2009 à 16:01
Perso, je fais les vérifications des différents champs en javascript mais je rajoute une deuxième vérif en PHP pour certains champs à cause de robots à spam qui envoient n'importe quoi dans les champs du formulaire en outrepassant les contrôles javascript...
17 mars 2009 à 17:23
Mais cela n'est pas tout. En Javascript j'ai également réalisé, entre autre, une classe me permettant d'afficher dans ce mega formulaire, en regard de certains champs, une tootips volante. très pratique pour afficher de l'aide contextuelle, pas encombrante et souple, lors de la saisie ;)
Pour ce qui est de ton code, pour la petite histoire, cela fait longtemps que je cherche un plugin Wordpress qui permette la gestion de newsletters, sans être pour autant une usine à gaz. Finalement je me suis dis qu'un de ces jours je le feras moi-même. Dans un premier temps en resumant la chose à un module d'inscription, alimentant la Bdd, et en utilisant un outil d'envois de mails en nombre. C'est en lorgnant les fonctionalités de ton code que je me suis rendu compte que ce ne serait pas aussi "évident". Aussi je le met de côté pour voir tout cela en profondeur dès que cela me sera possible. Alors ne t'attend pas à recevoir quelque chose dans ta boîte au lettre dans les jours prochains ;) Ma charge de travail (en plus de mon métier de base) est déjà bien bien lourde. Mais quand je dis que je ferais quelque chose c'est que je le ferais. Le problème est de savoir quand ! Si entre temps tu fais évoluer ton code, je serais parmis les premiers à venir y voir de plus prêt. Good work and have fun ;)
16 mars 2009 à 13:07
Apres, l'ajax, ca m'a l'air effectivement tres bien. Mais de mon point de vue, il est plus sûr, en tout cas pour un script du genre de celui que je viens de faire, de relayer ca à php, et donc à l'activité du serveur plutôt qu'au navigateur de l'internaute. Et je fais d'ailleurs partie des nombreux utilisateurs de firefox qui utilisent noscript. Tout ca pour dire que je suis sur un parti prit^^ mais que ton intégration de javascript m'intéresse grandement, et j'espère la voir arriver bientôt dans ma boite ^^
Ravi qu'il te plaise ce script. Malheuresement il semble impossible à intégrer dans wordpress. va falloir que je code mon site à la main... Toute une histoire ^^
Je prépare sous peu une évolution orienté objet de mon script; à suivre donc si elle t'intéresse. :)
15 mars 2009 à 20:26
15 mars 2009 à 20:25
Juste pour rebondir sur le petit échange que vous avez eu satanik_mike et oleiade concernant les principes de vérifications de données telles que l'adresse mail. D'emblée je rejoins totalement les interrogations satanik_mike. J'ajouterai que j'ai été quelque peu choqué par le qualificatif "d'apparat" concernant Javascript par oleiade. Javascript n'est pas un artifice. Il permet d'agir en temps réel sur la page sans communication avec le serveur. Et c'est loin d'être un luxe superficiel avec certains formulaires.
C'est une remarque d'autant plus intéressante que lorsqu'il s'agit de récupérer un travail en PHP qui ignore ce point il faut - pour ma part - reprendre une bonne partie du travail pour palier à ce genre de ce qui m'apparait comme un manque. Et comme ton script là oleiade me plait beaucoup (bravo !) et que je vais certainement le reprendre à mon compte je sens qu'il va y avoir de l'implémentation Javascript. Si c'est le cas je me ferais un plaisir de t'en envoyer le résultat.
3 mars 2009 à 22:22
Je crois qu'il manque un "return false" après ton "if (preg_match($syntaxe, $mail)) " dans ta fonction "verif_email"
3 mars 2009 à 19:10
J'ai l'impression que tu as pris mon post comme un reproche mais ce n'est pas le cas.
Pour te donner plus d'explication sur mon "questionnement", je posais la question pour essayer de trouver quelqu'un qui puisse m'expliquer, et me convaincre au besoin, quel est le principal avantage à préférer des vérifications par un script côté serveur plus que par un script côté client. Personnellement, cette méthode n'a pour moi pas d'avantage du fait de l'obligation d'un tranfert du client vers le serveur pour que le serveur vérifie les données (soit-dit en passant, le serveur fait des traitements à la pelle alors que l'ordinateur du client dispose de toutes ses ressources pour faire ce genre de manipulations, me semble-t'il). L'autre point négatif, mais cela ne s'applique pas forcément dans ton cas mais plus sur un formulaire de saisie plus complet, cela implique qu'en cas d'erreur, il faut penser à remettre dans les champs ce qui a été saisi, d'où des tests et des ressources utilisées en supplément du traitement à proprement parler, la tendance étant de plus en plus aux RIA.
Concernant ta remarque sur les CMS (spip, joomla, ...), je pense ne pas trop me tromper en disant que le métalangage qu'il utilise n'est qu'une interprétation différente des instruction du moteur de script utilisé, mais qui de toute façon, de part l'utilisation de PHP ou de .NET pour le moteur de translation, génèrent un langage compréhensible par les navigateurs, donc du (x)html, css et javascript. Les effets dynamiques de menus déroulants et autres effets sont du DHTML, donc du javascript. Du coup, si blocage du javascript il y a, cela entraîne des dysfonctionnements au niveau du site. En plus, de plus en plus de CMS intègrent des bibliothèque AJAX et javascript (graybox, lightbox, Google ToolKit ...).
Enfin, concernant les capacités des navigateurs à bloquer les pubs et autres éléments désagréables, ils ne bloquent pas toutes les instructions Javascript, ils ne bloquent que celles susceptibles de provoquer l'ouverture ou l'affichage d'une pub dans une nouvelle fenêtre (ou un nouvel onglet). Pour preuve, actuellement, peu de sites sur lesquels apparaît une div contenant de la pub sont traités par ces systèmes de blocage, car l'affichage ne se fait pas par un window.open ou un target="_blank".
En tout cas, concernant la mise à jour de ta source, bon travail, elle est intéressante. Je vais m'y pencher un peu et te donner mon avis dessus.
Sur ce, bon courage et peut-être à bientôt
3 mars 2009 à 10:29
Apres, personnelement, je fais du pur PHP pour deux raisons un peu concommitantes. Déjà, si je ne connais pas le langage javascript. Et il ne m'attire pas plus que ca, et je ne pense pas qu'ajouter une couche langage sur un script, meme si cela ajoute de l'ergonomie ( en l'occurence une couche d'AJAX ), le rende plus rapide, et de plus tu ne te retrouves pas avec une seule source d'erreur, mais avec deux... Alors certes l'Ajax, oui, pourquoi pas, mais je viens à peine de commencer à m'y mettre, et je suis pas sûr que dans ce cas précis, il soit utile. Celà dit, si tu as un bout de code pratique applicable à ma situation je veux bien tester.
Apres je pense qu'il ne faut pas perdre de vue que php est langage dynamique, pas besoin de compilation, et c'est là toute sa force, donc je suis juste partit du principe qu'on a un outil performant à nu, pourquoi essayer de lui coller des aparats ^^
Et enfin, j'ai une nouvelle version du script que je vais mettre à jour dans la journée, dans laquelle j'ai pris en compte vos considérations, et qui utilise en plus un "echo" direct au sein des fonctions, ce qui permet de ne pas recharger la page ^^
Mais de toutes les manières merci de participer à l'amélioration du script :)
3 mars 2009 à 06:27
Ok, la source semble correcte, juste une chose, au lieu de verif_presence1 == NULL, pourquoi ne pas utiliser (is_null(verif_presence1) ?
Ensuite, dans ta reuquête, j'aurai plutôt fais ça : WHERE UPPER(mail) = UPPER('$email') pour être sûr de ne pas être "corrompu" pour des erreurs de casse.
Mais je ne viens pas pour commenter le code en lui-même mais plutôt la logique.
Est-ce quelqu'un pourrait m'expliquer pourquoi la plupart des développeurs (professionnels ou non) font ce genre de vérification en PHP ?
Personnellement, je me trompe peut-être, comme on dit personne n'est parfait, la vérification des adresses mails, je fais ça en Javascript dans un script .js pour éviter d'avoir à faire un premier envoi du formulaire pour tester. Je parts du principe qu'il vaut mieux limiter les I/O entre les clients et le serveur. L'avantage d'utiliser Javascript pour des chose comme cela est que ça permet de ne pas transmettre le formulaire si il y a erreur. Et pour tester le dns ou savoir si l'adresse existe déjà dans la base, autant mettre un petit appel XmlHttpRequest et le tour est joué en limitant les transferts d'informations. Comme cela, le script PHP ne se charge que d'inscrire dans la base.
Vous me direz : Oui, mais si ton visiteur a désactivé Javascript, il l'a dans l'os. Ok, mais dans ce cas, il n'a rien à faire sur Internet. Donnez moi des sites sur lesquels il n'y a aucun code Javascript qui s'exécute ? Allez, je penche pour 5% des sites, autant dire aucun .... Et rien n'empêche, pour être sûr, de traiter ces vérifications des deux côtés (mais là c'est de la parano...).
Enfin, si quelqu'un peut m'expliquer, j'aimerai apprendre et comprendre.
Merci
2 mars 2009 à 09:52
Je sais que des scripts assez similaires existent, mais lors de mes recherches sur le net, disons que j'ai trouvé des choses qui cherchaient à peu près à reproduire la même fonction, mais jamais unifié. C'était toujours très ciblé, et souvent trop ciblé. Donc je me suis permis de mettre ici la solution que j'avais trouvé pour le moment à un problème. Utilisateur acharné de Linux, c'est un comportoment courant dans la programation open-source: de mettre à disposition ses découvertes, son travail, pour que les autres puissent aider à améliorer et participer. Or je début complètement en Php/Mysql, donc ca m'a semblé juste de poser, surtout que ta réponse est assez constructive en l'occurence; j'avais pensé effectivement à la vérification de domaine effectivement, je vais tenter de l'intégrer d'ici peu, mais j'avoue que ce qui serait intéressant, ce serait de balancer un ping au nom du serveur lors de cette vérification, mais j'avoue que si tu as une idée pour ca je suis prenneur...
En fait, je préfère la méthode "classique" de fichier source et fichier fonctions, lorsque j'applique du code à du contenu voué à être en ligne, parce que je ne maitrise pas encore toutes les subtilités de la poo. Et c'est surtout que comme mon site tourne sur wordpress, il m'est plus facile d'implémenter des fonctions que des classes dans le système de gestion du site. Penses-tu que dans ce cas créer des fonctions relatives aux requêtes SQL serait plus simple?
Enfin, les or die ne sont là que pour le test du script, je pense qu'avec les évolutions que je voudrais y apporter, ils disparaitront. A terme, je voudrais que le script récupère la date de l'inscription dans l'en tête http de l'internaute, et insérer un système de statut en plus de al vérification de la présence ou non de l'adresse email dans la base... Si tu as des conseils dans ce sens :)
Merci de toute les manières pour ton commentaire :)
2 mars 2009 à 09:37
Je crois que tu vas te faire allumer car il existe (il me semble) déjà de nombreuses sources de ce type sur PHPCS, mais bon...on verra.
Pour ma part j'aurai rajouter la vérification du nom de domaine avec :
$domain = explode('@', $email);
if (checkdnsrr($domain[1]))
echo "Domaine de l'adresse valide";
Sinon je traite toujours mes connexions SQL à travers une classe, et j'utilise les lancer d'exception que je préfère au "die()"...mais bon comme je en sais pas quel est la meilleur méthode...je ne peut pas critiquer...
Bonne continuation en tout cas...