Enregistré l'adresse IP de tous les visiteurs

Fermé
flo39400 Messages postés 596 Date d'inscription mardi 8 avril 2008 Statut Membre Dernière intervention 9 septembre 2021 - 23 juin 2016 à 23:45
flo39400 Messages postés 596 Date d'inscription mardi 8 avril 2008 Statut Membre Dernière intervention 9 septembre 2021 - 30 juin 2016 à 08:20
Bonjour,

J'aimerai savoir comment faire pour enregistré l'adresse IP d'un visiteur dans une table tel que ID, NAME, DATE, HEUR, IP.
Si le visiteur n'est pas identifier sa met Visiteur en NAME puis les autres valeurs.
Puis si le visiteur ce connecte ça ajoute son pseudo a la place de visiteur.

J'espère que j'ai était clair dans mes explications.




A voir également:

4 réponses

astuces72 Messages postés 7723 Date d'inscription vendredi 15 janvier 2010 Statut Membre Dernière intervention 22 avril 2024 1 637
Modifié par astuces72 le 23/06/2016 à 23:52
slt

Utilise plutôt les cookies, pas besoin de table comme ça.
tu enregistres l'information dans le cookie, et à chaque visite tu le lis.
pour la connexion, rien de compliquer si tu sais programmer php un minimum

:-)Pour un vieux de 47 ans, je peux encore en apprendre et vous en apprendre aussi :-D
0
flo39400 Messages postés 596 Date d'inscription mardi 8 avril 2008 Statut Membre Dernière intervention 9 septembre 2021 21
23 juin 2016 à 23:52
Oui mais tout doit être stocké comme ça en cas de problème je ban l'adresse IP.
0
astuces72 Messages postés 7723 Date d'inscription vendredi 15 janvier 2010 Statut Membre Dernière intervention 22 avril 2024 1 637
23 juin 2016 à 23:53
et si l'ip de la box change ?
0
astuces72 Messages postés 7723 Date d'inscription vendredi 15 janvier 2010 Statut Membre Dernière intervention 22 avril 2024 1 637
23 juin 2016 à 23:54
sans cookie avec une table, c'est pas compliqué non plus
tu connais quoi au php et aux bases de données ?
0
flo39400 Messages postés 596 Date d'inscription mardi 8 avril 2008 Statut Membre Dernière intervention 9 septembre 2021 21
24 juin 2016 à 00:38
Bas je sais enregistré une IP dans une base de données, et tous ce qui vient d'un utilisateur n'est pas fiable donc un cookie sais modifiable donc pas fiable.

Si l'ip change vu que j'aurai la liste des IP que le pseudo X sais connecter il faudra juste bannir toutes les IP et sont pseudo par la même occasion.
0
flo39400 Messages postés 596 Date d'inscription mardi 8 avril 2008 Statut Membre Dernière intervention 9 septembre 2021 21
24 juin 2016 à 10:34
Bonjour, pas d'idée ce matin :/
Je cherche toujours,....
0
astuces72 Messages postés 7723 Date d'inscription vendredi 15 janvier 2010 Statut Membre Dernière intervention 22 avril 2024 1 637
24 juin 2016 à 10:45
Si tu sais enregistrer en bdd les infos, ton problème est ou exactement ?

Il faut utiliser les SESSION pour ce genre de chose.
Une fois connecter, tu place le login dans $_SESSION['login']

http://www.lephpfacile.com/howto/10-comment-faire-un-espace-membre-en-php
0
flo39400 Messages postés 596 Date d'inscription mardi 8 avril 2008 Statut Membre Dernière intervention 9 septembre 2021 21
24 juin 2016 à 10:51
Sais pour faire la vérification si ip et avec un pseudo enregistré si ip est en temps que visiteur enregistré et mettre a jour si besoin sa en raquette SQL avec PDO et condition je galère beaucoup.
0
astuces72 Messages postés 7723 Date d'inscription vendredi 15 janvier 2010 Statut Membre Dernière intervention 22 avril 2024 1 637
24 juin 2016 à 11:09
tu en est ou exactement, donne nous ton code ou le morceau de ta galère
0
flo39400 Messages postés 596 Date d'inscription mardi 8 avril 2008 Statut Membre Dernière intervention 9 septembre 2021 21
24 juin 2016 à 11:35
Le problème sais que déjà la variable $pseudo = $_SESSION['pseudo']; n'est pas récupérer donc code erreur.
Et la mise a jour si une personne ce connecte n'est pas active car j'ai aucune idée de comment faire.



`<?php
//Affichage des erreurs PHP
error_reporting(E_ALL);

//Demarrage des sessions
session_start();

//connexion à la BDD (on inclus le fichier)
require_once "cnxBDD.php";

$ip = $_SERVER['REMOTE_ADDR'];
$date = date("Y-m-d");
$heur = date("H:i:s");
$pseudo = $_SESSION['pseudo'];
$inconnu = "visieur";

if(isset($_SESSION['pseudo']))
{
$insertmbr = $bdd->prepare("INSERT INTO uttilisateurs(name, date, heur, ip) VALUES(?, ?, ?, ?)");
$insertmbr->execute([$pseudo, $date, $heur, $ip]);
$info = "OK 1";
}
else
{
$insertmbr = $bdd->prepare("INSERT INTO uttilisateurs(name, date, heur, ip) VALUES(?, ?, ?, ?)");
$insertmbr->execute([$inconnu, $date, $heur, $ip]);
$info = "OK 2";
}

echo "$info";
?>
0
flo39400 Messages postés 596 Date d'inscription mardi 8 avril 2008 Statut Membre Dernière intervention 9 septembre 2021 21
24 juin 2016 à 11:38
En plus a chaque fois que je navigue ça enregistre une nouvelle ligne a chaque fois que je charge la page.

Donc voila je galère vraiment mais je cherche ;)
0
astuces72 Messages postés 7723 Date d'inscription vendredi 15 janvier 2010 Statut Membre Dernière intervention 22 avril 2024 1 637
Modifié par astuces72 le 24/06/2016 à 12:44
essaye ça, je n'ai pas testé:
A condition que $_SESSION['pseudo'] ne soit pas vide sur ta page de connexion une fois connecté.

je regarde dans la bdd sir l'ip n'est pas déjà présente, si non j'enregistre.
si $_SESSION['pseudo'] est vide, c'est qu'il n'y a pas eu de connexion, alors $pseudo ='Inconnu'


`<?php
//Affichage des erreurs PHP
error_reporting(E_ALL);

//Demarrage des sessions
session_start();
require_once "cnxBDD.php";


$ip = $_SERVER['REMOTE_ADDR'];
$date = date("Y-m-d");
$heure = date("H:i:s");
$pseudo = $_SESSION['pseudo'];
if (empty($pseudo)) { $pseudo='Inconnu' ; }


$req = $bdd->prepare('SELECT id FROM uttilisateurs WHERE ip = :ip ');
$req->execute(array(
'ip' => $ip));
$resultat = $req->fetch();

if (!$resultat)
{
$insertmbr = $bdd->prepare("INSERT INTO uttilisateurs(name, date, heur, ip) VALUES(?, ?, ?, ?)");
$insertmbr->execute($pseudo, $date, $heur, $ip);
$info = "OK 1";
}



echo $info;
?>


Et je ne suis absolument pas un pro php, donc...


:-)Pour un vieux de 47 ans, je peux encore en apprendre et vous en apprendre aussi :-D
0
flo39400 Messages postés 596 Date d'inscription mardi 8 avril 2008 Statut Membre Dernière intervention 9 septembre 2021 21
24 juin 2016 à 16:44
Donc j'ai essayer cela et j'ai rien dans la base de données en temps que visiteur pourtant marquer "OK 1" aucun autre message d'erreur.

Et rien non plus dans la base de données quand je suis connecter.
0
astuces72 Messages postés 7723 Date d'inscription vendredi 15 janvier 2010 Statut Membre Dernière intervention 22 avril 2024 1 637
Modifié par astuces72 le 24/06/2016 à 16:56
si marquer OK 1 c'est que ça rentre bien, vérifies tes noms de variable et de table
0
astuces72 Messages postés 7723 Date d'inscription vendredi 15 janvier 2010 Statut Membre Dernière intervention 22 avril 2024 1 637
24 juin 2016 à 17:05
ah oui, je me basais sur un id que tu n'as pas.
change
$req = $bdd->prepare('SELECT id FROM uttilisateurs WHERE ip = :ip ');
par
$req = $bdd->prepare('SELECT name FROM uttilisateurs WHERE ip = :ip ');

bizarre que tu entres quand même après le test de champ présent !
0
flo39400 Messages postés 596 Date d'inscription mardi 8 avril 2008 Statut Membre Dernière intervention 9 septembre 2021 21
24 juin 2016 à 17:22
Donc la non plus, j'ai que je sois connecter ou pas j'ai mon OK 1 mais rien dans la base de données moi je travail sur ce code que j'ai un peu modifier.


<?php
//Affichage des erreurs PHP
error_reporting(E_ALL);

//Demarrage des sessions
session_start();

//connexion à la BDD (on inclus le fichier)
require_once "cnxBDD.php";

$ip = $_SERVER['REMOTE_ADDR'];
$date = date("Y-m-d");
$heur = date("H:i:s");
$pseudo = $_SESSION['pseudo'];
$inconnu = "visiteur";



$retour = mysql_query('SELECT COUNT(*) AS nbre_entrees FROM uttilisateurs WHERE ip=\'' . $ip . '\'');
$donnees = mysql_fetch_array($retour);
if ($donnees['nbre_entrees'] == 0) // L'IP ne se trouve pas dans la table, ajouter IP.
{
if(isset($_SESSION['pseudo']))
{
$insertmbr = $bdd->prepare("INSERT INTO uttilisateurs(name, date, heur, ip) VALUES(?, ?, ?, ?)");
$insertmbr->execute([$pseudo, $date, $heur, $ip]);
$info = "OK 1";
}
else
{
$insertmbr = $bdd->prepare("INSERT INTO uttilisateurs(name, date, heur, ip) VALUES(?, ?, ?, ?)");
$insertmbr->execute([$inconnu, $date, $heur, $ip]);
$info = "OK 2";
}
}
else
{
mysql_query('UPDATE uttilisateurs SET name= ' . $_SESSION['pseudo'] WHERE ip=\'' . $_SERVER['REMOTE_ADDR'] . '\''). ';
$info = "OK 3";
}

?>
echo "$info";


le problème je crois que mon UPDATE ne passe pas car j'ai pas de mise a jour au niveau de la base de donnée.
0
flo39400 Messages postés 596 Date d'inscription mardi 8 avril 2008 Statut Membre Dernière intervention 9 septembre 2021 21
30 juin 2016 à 08:20
Bonjour pu personne ?
Car moi ça avance pas :/
0