cs_jeanclod13
Messages postés4Date d'inscriptionlundi 20 octobre 2008StatutMembreDernière intervention11 octobre 2009
-
7 oct. 2009 à 15:03
cs_jeanclod13
Messages postés4Date d'inscriptionlundi 20 octobre 2008StatutMembreDernière intervention11 octobre 2009
-
11 oct. 2009 à 20:20
Bonjour à tous,
J'ai créé un site sur ma copropriété avec une zone réservée aux copropriétaires pour y accéder pour ceux qui le souhaitent chacun a un login et mot de passe personnel. Dans cette zone il y a un espace commentaire et il est arrivé d'y avoir des propos inconvenants. Je voulais donc un code pour enregistrer les ip des visiteurs. Comme cela lorsqu'on me demande un mot de passe par la page contact je note l'ip et en cas de message inconvenant je note l'ip du visiteur par un code je lui interdit l'accès à la page en supprimant son mot de passe.
Pour l'instant j'ai trouvé un code pour l'enregistrement par mail de l'ip des visiteurs que j'ai trouvé ici sur phpcs.com
J'ai mis le code source à la racine de mon site dans un fichier log_ip.php, et j'ai ajouté "l'include" dans la page que je veux surveiller et j'ai mis mon adresse email dans le $email= ??.@...fr ? . J'ai également créé un fichier texte vide log_ip.txt
J'ai testé pour voir si mon IP allait m'être envoyée. Mais sans résultat. Pourrais je avoir une aide, sur la marche à suivre afin que cela fonctionne ?
Voici le code source récupéré sur le site
1. // Fichier log_ip.php
2.
3.
4. <?php
5.
6. /************************************/
7.
8. /* ESPION de visite
9.
10. /* Version : 1.3 | 06/01/2002
11.
12. /* http://www.blinckers-groups.com 13.
14. /************************************/
15.
16. /* Source :
17.
18. /* http://www.sivit.fr 19.
20. /* http://www.2037.biz 21.
22. /************************************/
23.
24. // Nom du fichier des logs
25.
26. $fichier="log_ip.txt";
27.
28. $fp=fopen("$fichier","a");
29.
30.
31. // Donne la date et l'heure française
32.
33. $Jour = array("Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi");
34.
35. $Mois = array("","Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Décembre");
36.
37. $date = $Jour[date("w")]." ".date("d")." ".$Mois[date("n")]." ".date("Y");
38.
39. $heure = gmdate("H \h i", mktime(date("H")+1,date("i")));
40.
41.
42. $fsz=filesize("$fichier");
43.
44.
45. // Récupère l'IP et le FAI du visiteur (même si proxy)
46.
47. $ip_visiteur = (getenv("HTTP_X_FORWARDED_FOR") ? getenv("HTTP_X_FORWARDED_FOR") : getenv("REMOTE_ADDR"));
48.
49. $fai_visiteur = gethostbyaddr("$REMOTE_ADDR");
50.
51.
52. fseek($fp,$fsz);
53.
54.
55. // Enregistre les données
56.
57. fputs($fp,"$ip_visiteur | FAI du visiteur : $fai_visiteur | le $date à $heure\n");
58.
59. fclose($fp);
60.
61.
62. // Infos perso
63.
64. $email="webmaster@mon_site.com";
65.
66. $titre="Vient de mon site | Nouveau visiteur | Info";
67.
68. $messag="Un visiteur vient de passer sur votre site.
69.
70. Voici les infos le concernant :
71.
72.
73.
74. - Adresse IP du visiyeur : $ip_visiteur
75.
76. - FAI du visiteur : $fai_visiteur
77.
78. - le $date à $heure
79.
80.
81.
82. Espion interne.";
83.
84.
85. // envoi un mail
86.
87. // pour désactiver, (spam si plus de 50 visites) ajouter
88.
89. // deux slash devant la fonction mail() --> "//"
90.
91. mail($email,$titre,$messag);
92.
93. ?>
94.
95.
96.
97. ////////////////////
98.
99.
100. pour utiliser le script, insérer simplement la ligne suivante dans la page que vous souhaitez surveiller.
101.
102.
103. <?
104.
105. include ("log_ip.php");
106.
107. ?>
syndrael
Messages postés2378Date d'inscriptionlundi 4 février 2002StatutMembreDernière intervention29 décembre 201219 7 oct. 2009 à 15:34
Même si l'idée est cohérente, enregistrer l'IP implique que celle ci ne change pas. Or, c'est dépendant du FAI, ou un malin peut passer par un proxy.
S.
cs_jeanclod13
Messages postés4Date d'inscriptionlundi 20 octobre 2008StatutMembreDernière intervention11 octobre 2009 7 oct. 2009 à 17:19
La copropriété de 300 apparts existe depuis 35 ans, la moyenne d'age plutot élevée, quoiqu'elle a tendance à se rajeunir, mais dans la majorité des cas la ruse n'est pas d'actualité, mais les mauvais coucheurs oui.
Sur ma page d'acceuil j'ai mis un script pour afficher l'IP de celui qui est sur le site et après enquête sur une dizaine de personne, toutes m'ont dit que leur adresse IP est toujours identique malgré qu'il y ait 3 FAI free, neuf et orange.
j'ai su qui était la personne malveillante, elle avait eu le mot de passe par les voisins, je les ai un peu sermoné , supprimé leur ancien mot de passe et donné un nouveau. Ca a l'air de ne plus se reproduire, mais j'aimerai quand même prendre mes précautions, d'ou l'objet de ce code que je n'ai toujours pas réussi à faire fonctionné, je ne comprend pas pourquoi je n'ai pas le retour par mail après avoir visiter le site
neigedhiver
Messages postés2480Date d'inscriptionjeudi 30 novembre 2006StatutMembreDernière intervention14 janvier 201118 10 oct. 2009 à 10:55
Salut,
Pour qu'un mail arrive il faut OBLIGATOIREMENT qu'il y ai un entête FROM (comme spécifié dans la RFC 2822). Or, dans ton script, il n'y en a pas.
C'est pourtant spécifié dans la doc PHP : http://php.net/mail
Note: When sending mail, the mail must contain a From header.
Faute de quoi, le mail peut ne pas arriver (bloqué par un serveur entre ton serveur web et ton serveur mail, ou rangé dans le spam, ou...).
Il faut utiliser l'argument (optionnel...) additional_headers :
$headers = "From: My Server <my.server@domain.tld>\r\n";
mail($email,$titre,$messag, $headers);
Si tu veux que ton message ne fasse pas une seule ligne, n'hésite pas à rajouter des \n à la fin de chaque ligne, sinon PHP ne les ajoutera pas tout seul.
Bon, c'est peut-être pas la solution à ton problème, mais c'est le premier truc que je vois qui colle pas... J'ai pas creusé davantage ton code pour voir si ça vient uniquement de là ou pas.
syndrael
Messages postés2378Date d'inscriptionlundi 4 février 2002StatutMembreDernière intervention29 décembre 201219 11 oct. 2009 à 11:11
Bonjour à tous,
Juste envie de déposer un message sur cette problématique. Donc rien de ce que je vais vous dire ne vous servira.. LOL !!
Perso j'utilise PHPMailer et il me génére bien une erreur au cas ou le From n'est pas renseigné.
C'est pas la RFC 2821 ?? Vieux souvenir de mon passage dans le monde de l'audit d'application.. LOL !!
Bonne journée
S.
kohntark
Messages postés3706Date d'inscriptionlundi 5 juillet 2004StatutMembreDernière intervention27 avril 201230 11 oct. 2009 à 11:54
Salut Syndrael,
Je viens de faire un rapide test pour éviter de dire trop de bêtise :
Aucun pb (avec mail()) lorsque le php.ini est correctement renseigné, PHP ajoute les headers nécessaires. Si il ne l'est pas la fonction mail renvoie une erreur (testé sous Vista64/PHP 5.3 et OVH Linux/PHP 5.2)
@jeanclod13
Je n'ai parcouru que très brièvement le code.
Les enregistrements dans le fichier log_ip.txt sont ils corrects ?
L'affichage des erreurs est il activé ?
Ajoute ces lignes en tout début de fichier et dis nous ce qu'il en est :
neigedhiver
Messages postés2480Date d'inscriptionjeudi 30 novembre 2006StatutMembreDernière intervention14 janvier 201118 11 oct. 2009 à 12:10
Salut,
Ouais, j'avais zappé que PHP se débrouillait avec le php.ini... En même temps, je ne faisais que chercher une explication possible...
Sinon, la RFC 2821, c'est SMTP (je disais pas que c'était la 2822 au hasard, c'est indiqué dans la doc de PHP, et je l'avais sous les yeux au moment de la rédaction du message).
cs_jeanclod13
Messages postés4Date d'inscriptionlundi 20 octobre 2008StatutMembreDernière intervention11 octobre 2009 11 oct. 2009 à 20:20
Bonjour à tous
Kohntark
Je n'ai aucun enregistrement dans le fichier log_ip.txt, il est vierge
J'ai incorporé les 2 lignes dans le haut du fichier mais le résultat est toujours le même rien ne s'affiche dans le fichier texte et je ne reçois rien par mail
La seule chose qui m'intéresse c'est le retour par mail chaque fois qu'il y a un connecté