Enregistrer IP dans la bdd
Résolu
Gui4671
Messages postés
33
Date d'inscription
Statut
Membre
Dernière intervention
-
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je tente d'enregistré l'Ip des visiteurs de mon site mais je galère un peu...
J'ai réussi à copier l'adresse IP mais comment l'envoyer sur ma BDD?
Voici le code que j'ai utilisé pour récupérer l'adresse IP et l'écrire sur la page (durant les tests):
Merci d'avance pour les éclaircissement :)
Je tente d'enregistré l'Ip des visiteurs de mon site mais je galère un peu...
J'ai réussi à copier l'adresse IP mais comment l'envoyer sur ma BDD?
Voici le code que j'ai utilisé pour récupérer l'adresse IP et l'écrire sur la page (durant les tests):
<?php /** * Récupérer la véritable adresse IP d'un visiteur */ function get_ip() { // IP si internet partagé if (isset($_SERVER['HTTP_CLIENT_IP'])) { return $_SERVER['HTTP_CLIENT_IP']; } // IP derrière un proxy elseif (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { return $_SERVER['HTTP_X_FORWARDED_FOR']; } // Sinon : IP normale else { return (isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : ''); } } ?> <?php // Afficher l'adresse IP echo 'Adresse IP du visiteur : '.get_ip(); ?>
Merci d'avance pour les éclaircissement :)
Configuration: Windows / Firefox 64.0
A voir également:
- Comment enregistrer une ip ?
- Ethernet n'a pas de configuration ip valide - Guide
- Audacity enregistrer son pc - Guide
- Comment connaître son adresse ip - Guide
- Télévision ip - Guide
- Comment enregistrer une conversation - Guide
4 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour, as-tu créé ta base de données et la table pour y enregistrer les adresses?
as-tu de l'expérience dans l'utilisation de bases de données à partir de PHP?
recherche-tu des exercices dans ce domaine?
ne serait-il pas préférable de d'abord finaliser ceci?
as-tu de l'expérience dans l'utilisation de bases de données à partir de PHP?
recherche-tu des exercices dans ce domaine?
ne serait-il pas préférable de d'abord finaliser ceci?
Bonjour,
Tout dépend... soit tu utilises PDO soit mysqli pour établir la connexion entre ton script PHP et la BDD
https://www.commentcamarche.net/faq/44117-connexion-a-une-base-avec-pdo-mysqli
Puis ensuite, une requête SQL de type INSERT si c'est pour ajouter une ligne dans la table .. ou UPDATE si c'est pour la mettre à jour....
Tout dépend... soit tu utilises PDO soit mysqli pour établir la connexion entre ton script PHP et la BDD
https://www.commentcamarche.net/faq/44117-connexion-a-une-base-avec-pdo-mysqli
Puis ensuite, une requête SQL de type INSERT si c'est pour ajouter une ligne dans la table .. ou UPDATE si c'est pour la mettre à jour....
Bonjour,
J'utilise PDO pour le connexion... J'ai déjà une page de connexion, une page qui se connecte à ma bdd (qui sont liées) ainsi que la bdd qui va 'avec'.
Sur ma page de connexion, j'ai réussi à obtenir l'adresse ip et la voir sur ma page (echo). Mais je bloque là.
En effet les autres informations (pseudo et mot de passe) doivent être complétées dans un formulaire et puis envoyées. Est-il possible de mettre un autre champ mais qu'il soit automatiquement rempli avec l'IP de la personne pour que cela soit envoyé en même temps que les autres informations (quand il clique sur le bouton envoyé)?
J'espère avoir été clair sinon je reprendrai :) Sinon je pourrais aussi vous mettre mes codes...
Merci à vous.
J'utilise PDO pour le connexion... J'ai déjà une page de connexion, une page qui se connecte à ma bdd (qui sont liées) ainsi que la bdd qui va 'avec'.
Sur ma page de connexion, j'ai réussi à obtenir l'adresse ip et la voir sur ma page (echo). Mais je bloque là.
En effet les autres informations (pseudo et mot de passe) doivent être complétées dans un formulaire et puis envoyées. Est-il possible de mettre un autre champ mais qu'il soit automatiquement rempli avec l'IP de la personne pour que cela soit envoyé en même temps que les autres informations (quand il clique sur le bouton envoyé)?
J'espère avoir été clair sinon je reprendrai :) Sinon je pourrais aussi vous mettre mes codes...
Merci à vous.
si je comprends bien, ton code php est déjà capable d'enregistrer des informations dans la base de données. il serait alors capable de faire cela pour toutes les informations qu'il connait. le fait que ces informations viennent d'un formulaire ou pas n'a pas d'importance.
à quel moment veux-tu enregistrer l'adresse IP dans la base de données, dans quelle page?
à quel moment veux-tu enregistrer l'adresse IP dans la base de données, dans quelle page?
Vers la ligne 140 où j'ai déjà commencé... Mais qu'est ce que cela change?
J'avais mis l'adresse ip dans add_users pour l'enregistrer quand ils s'inscrivent. Mais avec cela j'aurais peut être pu l'avoir juste lors de la création du compte et non pas à chaque connexion...
Donc je dois créer une nouvelle fonction (update_IP) de ce genre là?
J'avais mis l'adresse ip dans add_users pour l'enregistrer quand ils s'inscrivent. Mais avec cela j'aurais peut être pu l'avoir juste lors de la création du compte et non pas à chaque connexion...
Donc je dois créer une nouvelle fonction (update_IP) de ce genre là?
function update_IP($dbh, $username, $adresse_ip) { try { $stmt = $dbh->prepare("UPDATE users SET adresse_ip=:adresse_ip WHERE username=:username"); $stmt->bindParam(':username', $username); $stmt->bindParam(':adresse_ip', $adresse_ip); $stmt->execute(); return true; } catch(Exception $e) { return false; } } ?>
Y'aurait pas mal de choses à dire sur ton code...
concernant le md5 par exemple .... ( à la place, désormais on utilise password_hash et password_verify )
Mais bon.. concernant ta question actuelle :
concernant le md5 par exemple .... ( à la place, désormais on utilise password_hash et password_verify )
Mais bon.. concernant ta question actuelle :
function update_IP($dbh, $username) { try { $stmt = $dbh->prepare("UPDATE users SET adresse_ip=:adresse_ip WHERE username=:username"); $stmt->bindParam(':username', $username); $stmt->bindParam(':adresse_ip', get_ip()); $stmt->execute(); return true; } catch(Exception $e) { return false; } }
Au lieu de faire un return false dans le exception.. il serait utile de pouvoir savoir qu'il y a une erreur et l'afficher...
Essaye :
montres nous aussi à quel endroit tu as appelé cette fonction...
Essaye :
function update_IP($dbh, $username) { try { $ip = get_ip(); $stmt = $dbh->prepare("UPDATE users SET adresse_ip=:adresse_ip WHERE username=:username"); $stmt->bindParam(':username', $username); $stmt->bindParam(':adresse_ip', $ip); $stmt->execute(); return true; } catch(Exception $e) { echo " <br><b>Erreur !!</b> " .$e->getMessage(); echo " <br>Datas : <br> IP : ". $ip . "<br> username : " . $username ; return false; } }
montres nous aussi à quel endroit tu as appelé cette fonction...
et histoire qu'on se couche moins bêtes... :-)
c'était quoi l'erreur ?
Et bon.. j'insiste...
Pour gérer l'authentification des utilisateurs... vire le md5 et passe par :http://php.net/manual/fr/function.password-hash.php et https://www.php.net/manual/fr/function.password-verify.php
c'était quoi l'erreur ?
Et bon.. j'insiste...
Pour gérer l'authentification des utilisateurs... vire le md5 et passe par :http://php.net/manual/fr/function.password-hash.php et https://www.php.net/manual/fr/function.password-verify.php
Je suis novice mais j'ai déjà crée une ou deux bdd pour les clients. La bdd où je veux enregistrer l'IP a été faites par un professionnel.
Je cherche juste à savoir s'il y a un code à mettre pour enregistrer les adresses ip dans ma bdd. Il y a t'il un code à mettre?
Mon sujet précédent est 'résolu'... En raison du peu de temps que je possède pour réaliser le tout, j'ai du changer d'option et j'ai sécurisé le tout autrement. Je vais donc le mettre ''résolu''.