jordane45
Messages postés38144Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention21 avril 2024344 2 nov. 2018 à 16:28
Bonjour,
Si tu as un souci... le mieux c'est d'ouvrir directement une question sur le forum.
Quoi qu'il en soit, si tu es en "local" sur ton ordi (et non sur un serveur...) la fonction "mail" ne fonctionnera qu'a condition d'avoir installé un logiciel tel que fakeSendmail et configuré le serveur SMTP.
Dans le cas contraire, tu peux aussi utiliser la class PHP : PhpMailer et utiliser ton compte de messagerie (comme gmail par exemple) pour générer l'envoi des messages.
Bonjour,
je vous remercie pour ce code source que vous avez partagé avec nous.
je suis débutant sur php, j'ai un problème je voulais tester l'envoi d'email, donc j'ai remplacé ce qu'il faut, mais malheureusement ça ne marche pas.
j'envoi le formulaire, j'ai le message de confirmation que c'est ok, mais sur ma boite émail, je ne reçois rien, je ne sais pas ce qui cloche??..
Merci de m'aider
cs_rollano
Messages postés1Date d'inscriptionlundi 31 décembre 2012StatutMembreDernière intervention14 mai 2013 14 mai 2013 à 04:00
franchement je mets un 10 / 10.
ce code est magnifique, après a chacun de l'adapté a ces besoins
joone
Messages postés1Date d'inscriptionmercredi 2 février 2005StatutMembreDernière intervention12 janvier 2012 12 janv. 2012 à 02:14
Franchement, merci pour ce super code, moi j'ai enlevé tout les champs qui m'arrangeaient pas sans problème et j'ai apporté quelques modifs, par exemple dans le $msg_ok jai ajouté les balises html pour que cette page ressemble aux autres pages de mon site et que le sujet entré dans le formulaire soit l'objet de mon mail et ça fonctionne très bien. Et merci aux autres aussi j'ai tenu compte des remarques et modifié le code en conséquence. Enfin je suis ni programmeuse ni développeuse mais j'ai vraiment pu me débrouillé facilement alors encore merci mille fois.
sof34
Messages postés16Date d'inscriptionvendredi 6 décembre 2002StatutMembreDernière intervention 2 septembre 20101 29 nov. 2008 à 13:47
OOps ... allez 2 étoiles
sof34
Messages postés16Date d'inscriptionvendredi 6 décembre 2002StatutMembreDernière intervention 2 septembre 20101 29 nov. 2008 à 13:46
Dsl mais j'ai pas pu m'empêcher :
En conclusion vous dites : "En conclusion, je dirais qu'on peut vraiment faire des choses étonnantes avec les languages html, javascript et php quand on les combinne (et qu'on arrive à les faire vivre ensemble... :-)."
Youpiii
Merci pour cette découverte illuminée. Heureusement que des gens comme vous parcourent le web et remarquent le travail des autres, pour constater des choses aussi... évidentes ! et sur Javascript.fr qui plus est...
Moi hier j'ai découvert qu'en pétant dans l'eau ça faisait des bulles...
Mais en faisant qq recherches j'ai vu que Archimède l'avais déjà fait connaitre. Oui "La poussée"...
Donc, moi je dirait, en conclusion, que péter dans l'eau, ça fait des bulles et c'est rigolo.
Bon je me reprend : En conclusion, il faut pas hésiter à se renseigner pour essayer de pousser vers le haut cette communauté plutôt que de rebalancer des sources vues, vues, vues, et revues. Sinon, préférez poster sur jedebuteenprogrammationetjepensequeoutlemondestcommemoi.com. Au moins les gens qui pomperons vos sources, vos dangereuses sources, ne pourrons s'en prendre qu'a eux même. "Supositoire" a pompée la source sans corriger quoique ce soit.
La source PHP je l'ai trouvée ici il y a plus de 3 ans...Donc, svp, citez vos sources, sinon au moins là ou vous l'avez pompée.
Et enfin, si ça n'est juste que pour voir votre nom dans un forum, faites comme moi, préférez faire des remarques peu constructives ! c'est pareil, ça sert à rien.
h405
Messages postés7Date d'inscriptionvendredi 27 juin 2008StatutMembreDernière intervention28 février 2011 28 juil. 2008 à 21:07
simple
T3cHn0_93
Messages postés3Date d'inscriptionjeudi 10 mars 2005StatutMembreDernière intervention 9 mars 2008 9 mars 2008 à 01:27
Merci beaucoup ce code m'a beaucoup servit !
Arto_8000
Messages postés1044Date d'inscriptionlundi 7 mars 2005StatutMembreDernière intervention13 juillet 20107 17 janv. 2008 à 15:09
Si tu veux faire ton code vraiment pour qu'il y a le moins de problèmes possible, il faut que tu testes tous tes valeurs avec isset et non empty.
if (!isset($_POST['val1']) || !isset($_POST['val2']) || ...)
{
die("Les valeurs n'ont pas tous été envoyé au serveur."); //OU header("Location: formulaire.php");
}
Ensuite tu poursuits avec ton code et tes autres vérifications. Sinon quelqu'un qui fait juste charger la page sans faire de post se voit afficher une tonne d'erreur et c'est pas très invitant.
Côté sécurité ton code permet de modifier n'importe quelle variable dans le code au moment où ils sont traité. Si j'envoie une autre valeur POST à ton formulaire qui s'appele msg_ok et que je mets la valeur "<script>alert('XSS')</script>", le contenu va être afficher plus loin dans la page créant une attaque XSS.
Pour le contrer ? Ne pas l'utiliser, tes valeurs sont déjà dans le array POST.
fifiriri123
Messages postés4Date d'inscriptionvendredi 17 décembre 2004StatutMembreDernière intervention17 janvier 2008 17 janv. 2008 à 14:03
Merci pour vos observations. J'ai modifié le code pour le rendre plus lisible et correct au niveau des balises.
Arto_8000 a écrit :
Côté serveur tu ne testes pas toutes les valeurs et ceux que tu testes sont mal testé. Il faut toujours faire un isset sur tes valeurs POST avant de les utiliser, sinon je peux remplir tes fichiers de logs de ton serveur en quelques minutes.
Côté sécurité il y a un truc qui m'a fait vraiment peur (anciennes lignes 470 à 472), pour ton script tout seul il n'y a pas trop de problème, mais si je l'intègre dans un site, c'est pas super côté sécurité et ça ouvre des portes que l'on n'aimerait pas trop ouvrir.
Côté serveur : je peux ajouter les autres valeurs pour les tester mais tu dis qu'elles sont mal testées, que je dois faire un isset sur mes valeurs POST. Peux-tu me dire comment procéder sur une ou deux valeurs et je ferais le reste.
Côté sécurité: tu parles d'une partie de code qui se trouvaient lignes 470à472 qui t'as fait peur. Quelles modif je pourrais faire pour vraiment protéger mon site.
Merci d'avance.
fifiriri123
Messages postés4Date d'inscriptionvendredi 17 décembre 2004StatutMembreDernière intervention17 janvier 2008 16 janv. 2008 à 10:00
j'aprécie des précisions arto_8000. Je suis développeur mais pas programmeur pur. Je me suis mal exprimé. Le code est certes pas tiré de nul par ...il résulte de multiples adaptations quej'ai fait pour le rendre viable avec l'ensemble. Ayant comme je l'ai dit passé du temps et obtenu des renseignements précieux gràce au tutoriel ou forum sur internet, je souhaite en faire profité d'autre qui comme moi ne sont pas programmeur.
Merci Nickadelle pour l'explication simple sur les balise er les quotes, je vais adapter le code en conséquence.
nickadele
Messages postés1251Date d'inscriptionmercredi 7 août 2002StatutModérateurDernière intervention10 avril 2013 15 janv. 2008 à 14:20
Pour la fermeture des balises via "/" :
Simple balise ex input :
Double balise ex p : mon texte
Pour les quotes, tu fais ceci :
<table width="597" border=0 cellpadding=0 cellspacing=0>...
Ceci est mieux :
<table width="597" border="0" cellpadding="0" cellspacing="0">...
Ou ceci :
<table width='597' border='0' cellpadding='0' cellspacing='0'>...
Pour le reste je rejoind l'avis d'Arto_8000 et de XtremDuke !
Arto_8000
Messages postés1044Date d'inscriptionlundi 7 mars 2005StatutMembreDernière intervention13 juillet 20107 15 janv. 2008 à 03:16
Le code que je te montres ce n'est qu'une idée de structure qui ne fonctionnera pas si tu fais seulement du copié-collé. C'était seulement pour que tu l'adaptes pour ton code. Si tu ne fais pas de dévellopement, recoder modulaire te dis probablement rien, donc ne change rien à tout ça. D'ailleurs si tu ne fais pas de dévellopement, d'où ce code sort-il ? D'un chapeau ?
fifiriri123
Messages postés4Date d'inscriptionvendredi 17 décembre 2004StatutMembreDernière intervention17 janvier 2008 14 janv. 2008 à 16:13
Comme je l'ai dit dans la 1ere phrase de ma source, je ne suis malheureusement pas développeur.
Merci arto_8000 et xtremduke pour vos remarques.
J'aimerais qu'elles servent... c'est à dire :
- arto_8000 : vous me conseillez de remplacer ma fonction valider par votre code et d'ajouter la funtion (id) pour plus de simpliciter dans la lecture des champs. Si tu voulais dire cela, je vais rééditer le code pour que cela serve à d'autres.
- xtremduke : dans la partie html/java, je n'ai pas fermé toutes les balises. tu parles desquelles ? ] ou ) ou // ou }
Merci à tous.
XtremDuke
Messages postés626Date d'inscriptionsamedi 28 septembre 2002StatutMembreDernière intervention18 mai 20094 14 janv. 2008 à 15:39
Hélas j'approuve le commentaire de Arto_8000. Ta source ressemble à une serie de copié/collé de scripts trouvés à droite et à gauche. C'est très uniforme et on a l'impression que rien en vient de toi.
Même si la partie PHP n'est pas parfaite, ce n'est pas cette couche qui m'a choqués le plus mais plutôt la partie html/javascript : tu fermes tes balises une fois sur deux. Il en va de même pour les valeurs de tes attributs qui sont entourées par des quotes de manière aléatoire.
Et quitte à re-créer la roue, autant le faire au goût du jour : aucune CSS, 90% des attributs sont dépréciés tout comme le mode d'accès aux éléments de ta page (js).
J'espère que tu prendras ces remarques du point de vue constructif et non comme une attaque personnelle.
cs_supositoire
Messages postés5Date d'inscriptionmercredi 30 août 2006StatutMembreDernière intervention19 février 2008 13 janv. 2008 à 13:47
Trop cool je l'ai adopté pour mon site! www.sectionhp.com/contact/
Arto_8000
Messages postés1044Date d'inscriptionlundi 7 mars 2005StatutMembreDernière intervention13 juillet 20107 12 janv. 2008 à 17:29
C'est peut-être bien pour ton cas en particulier, mais si je veux rajouter un champs, en modifier ou enlever c'est plus long à modifier parce que le code est éparpiller un peu partout et aucunement divisé en couche. Idéalement ce serait de recoder ta source beaucoup plus modulaire et faire tes fonctions plus générique. Aussi ton traitement des valeurs côté client est inutile s'il y a en a aucun côté serveur. Je désactive Javascript et je peux envoyer n'importe quoi au serveur. Faut pas se fier qu'à Javascript. Côté serveur tu ne testes pas toutes les valeurs et ceux que tu testes sont mal testé. Il faut toujours faire un isset sur tes valeurs POST avant de les utiliser, sinon je peux remplir tes fichiers de logs de ton serveur en quelques minutes. Côté sécurité il y a un truc qui m'a fait vraiment peur (ligne 470 à 472), pour ton script tout seul il n'y a pas trop de problème, mais si je l'intègre dans un site, c'est pas super côté sécurité et ça ouvre des portes que l'on n'aimerait pas trop ouvrir. Oublie pas que l'on peut envoyer n'importe quoi à ce script. Aussi comme j'en parlais plus haut pour tes fonctions qui ne sont pas générique, ta fonction valider est un bon exemple. Avec quelque chose de codé plus modulaire tu aurais pu tout simplement parcourir la liste des champs et faire les tests necéssaires. Ça donnerait quelque chose comme ceci qui est beaucoup plus facilement modifiable et portable :
function $(id)
{
return document.getElementById(id);
}
function testDate(txt)
{
//on test pour savoir si la date est valide
}
function testText(txt)
{
//on test pour savoir si le texte est valide
}
function valider ()
{
var listeChamp = [{id : "champ1", type : "Date"}, {id : "champ2", type : "Text"];
var erreurFound = false;
2 nov. 2018 à 16:28
Si tu as un souci... le mieux c'est d'ouvrir directement une question sur le forum.
Quoi qu'il en soit, si tu es en "local" sur ton ordi (et non sur un serveur...) la fonction "mail" ne fonctionnera qu'a condition d'avoir installé un logiciel tel que fakeSendmail et configuré le serveur SMTP.
Dans le cas contraire, tu peux aussi utiliser la class PHP : PhpMailer et utiliser ton compte de messagerie (comme gmail par exemple) pour générer l'envoi des messages.
2 nov. 2018 à 16:10
je vous remercie pour ce code source que vous avez partagé avec nous.
je suis débutant sur php, j'ai un problème je voulais tester l'envoi d'email, donc j'ai remplacé ce qu'il faut, mais malheureusement ça ne marche pas.
j'envoi le formulaire, j'ai le message de confirmation que c'est ok, mais sur ma boite émail, je ne reçois rien, je ne sais pas ce qui cloche??..
Merci de m'aider
14 mai 2013 à 04:00
ce code est magnifique, après a chacun de l'adapté a ces besoins
12 janv. 2012 à 02:14
29 nov. 2008 à 13:47
29 nov. 2008 à 13:46
En conclusion vous dites : "En conclusion, je dirais qu'on peut vraiment faire des choses étonnantes avec les languages html, javascript et php quand on les combinne (et qu'on arrive à les faire vivre ensemble... :-)."
Youpiii
Merci pour cette découverte illuminée. Heureusement que des gens comme vous parcourent le web et remarquent le travail des autres, pour constater des choses aussi... évidentes ! et sur Javascript.fr qui plus est...
Moi hier j'ai découvert qu'en pétant dans l'eau ça faisait des bulles...
Mais en faisant qq recherches j'ai vu que Archimède l'avais déjà fait connaitre. Oui "La poussée"...
Donc, moi je dirait, en conclusion, que péter dans l'eau, ça fait des bulles et c'est rigolo.
Bon je me reprend : En conclusion, il faut pas hésiter à se renseigner pour essayer de pousser vers le haut cette communauté plutôt que de rebalancer des sources vues, vues, vues, et revues. Sinon, préférez poster sur jedebuteenprogrammationetjepensequeoutlemondestcommemoi.com. Au moins les gens qui pomperons vos sources, vos dangereuses sources, ne pourrons s'en prendre qu'a eux même. "Supositoire" a pompée la source sans corriger quoique ce soit.
La source PHP je l'ai trouvée ici il y a plus de 3 ans...Donc, svp, citez vos sources, sinon au moins là ou vous l'avez pompée.
Et enfin, si ça n'est juste que pour voir votre nom dans un forum, faites comme moi, préférez faire des remarques peu constructives ! c'est pareil, ça sert à rien.
PS : Je me permet pour la forme de vous rappeler la charte de bonne conduite, que j'en suis sur vous n'avez pas lue : http://www.javascriptfr.com/reglement.aspx
Ça soulage...
28 juil. 2008 à 21:07
9 mars 2008 à 01:27
17 janv. 2008 à 15:09
if (!isset($_POST['val1']) || !isset($_POST['val2']) || ...)
{
die("Les valeurs n'ont pas tous été envoyé au serveur."); //OU header("Location: formulaire.php");
}
Ensuite tu poursuits avec ton code et tes autres vérifications. Sinon quelqu'un qui fait juste charger la page sans faire de post se voit afficher une tonne d'erreur et c'est pas très invitant.
Côté sécurité ton code permet de modifier n'importe quelle variable dans le code au moment où ils sont traité. Si j'envoie une autre valeur POST à ton formulaire qui s'appele msg_ok et que je mets la valeur "<script>alert('XSS')</script>", le contenu va être afficher plus loin dans la page créant une attaque XSS.
Pour le contrer ? Ne pas l'utiliser, tes valeurs sont déjà dans le array POST.
17 janv. 2008 à 14:03
Arto_8000 a écrit :
Côté serveur tu ne testes pas toutes les valeurs et ceux que tu testes sont mal testé. Il faut toujours faire un isset sur tes valeurs POST avant de les utiliser, sinon je peux remplir tes fichiers de logs de ton serveur en quelques minutes.
Côté sécurité il y a un truc qui m'a fait vraiment peur (anciennes lignes 470 à 472), pour ton script tout seul il n'y a pas trop de problème, mais si je l'intègre dans un site, c'est pas super côté sécurité et ça ouvre des portes que l'on n'aimerait pas trop ouvrir.
Côté serveur : je peux ajouter les autres valeurs pour les tester mais tu dis qu'elles sont mal testées, que je dois faire un isset sur mes valeurs POST. Peux-tu me dire comment procéder sur une ou deux valeurs et je ferais le reste.
Côté sécurité: tu parles d'une partie de code qui se trouvaient lignes 470à472 qui t'as fait peur. Quelles modif je pourrais faire pour vraiment protéger mon site.
Merci d'avance.
16 janv. 2008 à 10:00
Merci Nickadelle pour l'explication simple sur les balise er les quotes, je vais adapter le code en conséquence.
15 janv. 2008 à 14:20
Simple balise ex input :
Double balise ex p : mon texte
Pour les quotes, tu fais ceci :
<table width="597" border=0 cellpadding=0 cellspacing=0>...
Ceci est mieux :
<table width="597" border="0" cellpadding="0" cellspacing="0">...
Ou ceci :
<table width='597' border='0' cellpadding='0' cellspacing='0'>...
Pour le reste je rejoind l'avis d'Arto_8000 et de XtremDuke !
15 janv. 2008 à 03:16
14 janv. 2008 à 16:13
Merci arto_8000 et xtremduke pour vos remarques.
J'aimerais qu'elles servent... c'est à dire :
- arto_8000 : vous me conseillez de remplacer ma fonction valider par votre code et d'ajouter la funtion (id) pour plus de simpliciter dans la lecture des champs. Si tu voulais dire cela, je vais rééditer le code pour que cela serve à d'autres.
- xtremduke : dans la partie html/java, je n'ai pas fermé toutes les balises. tu parles desquelles ? ] ou ) ou // ou }
Merci à tous.
14 janv. 2008 à 15:39
Même si la partie PHP n'est pas parfaite, ce n'est pas cette couche qui m'a choqués le plus mais plutôt la partie html/javascript : tu fermes tes balises une fois sur deux. Il en va de même pour les valeurs de tes attributs qui sont entourées par des quotes de manière aléatoire.
Et quitte à re-créer la roue, autant le faire au goût du jour : aucune CSS, 90% des attributs sont dépréciés tout comme le mode d'accès aux éléments de ta page (js).
J'espère que tu prendras ces remarques du point de vue constructif et non comme une attaque personnelle.
13 janv. 2008 à 13:47
12 janv. 2008 à 17:29
function $(id)
{
return document.getElementById(id);
}
function testDate(txt)
{
//on test pour savoir si la date est valide
}
function testText(txt)
{
//on test pour savoir si le texte est valide
}
function valider ()
{
var listeChamp = [{id : "champ1", type : "Date"}, {id : "champ2", type : "Text"];
var erreurFound = false;
for (i=0; i<listeChamp.length; i++)
{
if (eval("test" + listeChamp[i].type + "(" + $(listeChamp[i].id) + ");"))
{
$(listeChamp[i].id).style.backgroundColor = "#ff0000";
erreurFound = true;
}
}
if (erreurFound)
{
alert("Des erreurs ont été trouvé, les champs ont été mis en rouge.");
}
}
11 janv. 2008 à 17:13
PS : crois(s)ement ?