Enregistré l'adresse IP de tous les visiteurs [Fermé]

Signaler
Messages postés
593
Date d'inscription
mardi 8 avril 2008
Statut
Membre
Dernière intervention
11 mai 2018
-
Messages postés
593
Date d'inscription
mardi 8 avril 2008
Statut
Membre
Dernière intervention
11 mai 2018
-
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.




4 réponses

Messages postés
6342
Date d'inscription
vendredi 15 janvier 2010
Statut
Membre
Dernière intervention
17 mai 2021
1 524
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
Messages postés
593
Date d'inscription
mardi 8 avril 2008
Statut
Membre
Dernière intervention
11 mai 2018
19
Oui mais tout doit être stocké comme ça en cas de problème je ban l'adresse IP.
Messages postés
6342
Date d'inscription
vendredi 15 janvier 2010
Statut
Membre
Dernière intervention
17 mai 2021
1 524
et si l'ip de la box change ?
Messages postés
6342
Date d'inscription
vendredi 15 janvier 2010
Statut
Membre
Dernière intervention
17 mai 2021
1 524
sans cookie avec une table, c'est pas compliqué non plus
tu connais quoi au php et aux bases de données ?
Messages postés
593
Date d'inscription
mardi 8 avril 2008
Statut
Membre
Dernière intervention
11 mai 2018
19
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.
Messages postés
593
Date d'inscription
mardi 8 avril 2008
Statut
Membre
Dernière intervention
11 mai 2018
19
Bonjour, pas d'idée ce matin :/
Je cherche toujours,....
Messages postés
6342
Date d'inscription
vendredi 15 janvier 2010
Statut
Membre
Dernière intervention
17 mai 2021
1 524
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
Messages postés
593
Date d'inscription
mardi 8 avril 2008
Statut
Membre
Dernière intervention
11 mai 2018
19
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.
Messages postés
6342
Date d'inscription
vendredi 15 janvier 2010
Statut
Membre
Dernière intervention
17 mai 2021
1 524
tu en est ou exactement, donne nous ton code ou le morceau de ta galère
Messages postés
593
Date d'inscription
mardi 8 avril 2008
Statut
Membre
Dernière intervention
11 mai 2018
19
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";
?>
Messages postés
593
Date d'inscription
mardi 8 avril 2008
Statut
Membre
Dernière intervention
11 mai 2018
19
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 ;)
Messages postés
6342
Date d'inscription
vendredi 15 janvier 2010
Statut
Membre
Dernière intervention
17 mai 2021
1 524
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
Messages postés
593
Date d'inscription
mardi 8 avril 2008
Statut
Membre
Dernière intervention
11 mai 2018
19
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.
Messages postés
6342
Date d'inscription
vendredi 15 janvier 2010
Statut
Membre
Dernière intervention
17 mai 2021
1 524
si marquer OK 1 c'est que ça rentre bien, vérifies tes noms de variable et de table
Messages postés
6342
Date d'inscription
vendredi 15 janvier 2010
Statut
Membre
Dernière intervention
17 mai 2021
1 524
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 !
Messages postés
593
Date d'inscription
mardi 8 avril 2008
Statut
Membre
Dernière intervention
11 mai 2018
19
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.
Messages postés
593
Date d'inscription
mardi 8 avril 2008
Statut
Membre
Dernière intervention
11 mai 2018
19
Bonjour pu personne ?
Car moi ça avance pas :/