Mettre l'Adresse ip dans ma bdd via un formulaire d'inscription

Ce topic a été résolu
manandroid

manandroid Le 5 février 2017 à 04:44 (Édité le 25 janvier 2019 à 17:53)

Bonjour/Bonsoir à tous,

Voila mon problème rencontré comme vue au titre j'aimerais que l'utilisateur quand il va s'inscrire, j'ai sont adresse ip dans la base de donnée mais je ne sais pas comment l'intégrer au formulaire et aussi à ma bdd.

Le code php que l'utilise pour l'inscription est celui de Primfx(Merci à lui), Ce qui me faudrait c'est qu'on m'explique quel code mettre dans le php pour l'adresse ip et à quel endroit , quel fonction à mettre dans la ligne de la bdd dans le php & aussi le type dans la bdd (exemple si c'est varchar, texte , etc ... ) 

Merci d'avance pour ceux qui me reponderons :D 
Balatharas

Balatharas Le 5 février 2017 à 10:13 (Édité le 5 février 2017 à 10:20)

Salut, pourrais-tu m'envoyer le code du traitement de formulaire à partir des variables que tu définis ?
Ex:
<?php
$pseudo = htmlspecialchars($_POST['pseudo']);
// etc etc..
?>
Il me semble que si tu recueille l'ip de tes utilisateurs, tu dois les prévenir en le précisant dans tes conditions générales d'utilisations.
manandroid

manandroid Le 5 février 2017 à 13:55

Salut pas souci voici le code php plutôt la partie du php, oui C'est sur que je doit précisé dans mon CGU 
<?php
$bdd = new PDO('mysql:host=127.0.0.1;dbname=espace_membre', 'root', '');
if(isset($_POST['forminscription'])) {
   $pseudo = htmlspecialchars($_POST['pseudo']);
   $mail = htmlspecialchars($_POST['mail']);
   $mail2 = htmlspecialchars($_POST['mail2']);
   $mdp = sha1($_POST['mdp']);
   $mdp2 = sha1($_POST['mdp2']);
   if(!empty($_POST['pseudo']) AND !empty($_POST['mail']) AND !empty($_POST['mail2']) AND !empty($_POST['mdp']) AND !empty($_POST['mdp2'])) {
      $pseudolength = strlen($pseudo);
      if($pseudolength <= 255) {
         if($mail == $mail2) {
            if(filter_var($mail, FILTER_VALIDATE_EMAIL)) {
               $reqmail = $bdd->prepare("SELECT * FROM membres WHERE mail = ?");
               $reqmail->execute(array($mail));
               $mailexist = $reqmail->rowCount();
               if($mailexist == 0) {
                  if($mdp == $mdp2) {
                     $insertmbr = $bdd->prepare("INSERT INTO membres(pseudo, mail, motdepasse) VALUES(?, ?, ?)");
                     $insertmbr->execute(array($pseudo, $mail, $mdp));
                     $erreur = "Votre compte a bien été créé ! <a href=\"connexion.php\">Me connecter</a>";
                  } else {
                     $erreur = "Vos mots de passes ne correspondent pas !";
                  }
               } else {
                  $erreur = "Adresse mail déjà utilisée !";
               }
            } else {
               $erreur = "Votre adresse mail n'est pas valide !";
            }
         } else {
            $erreur = "Vos adresses mail ne correspondent pas !";
         }
      } else {
         $erreur = "Votre pseudo ne doit pas dépasser 255 caractères !";
      }
   } else {
      $erreur = "Tous les champs doivent être complétés !";
   }
}
?>
Balatharas

Balatharas Le 5 février 2017 à 14:19

Tu ajoute une varibale qui contiendra l'ip:
$ip = $_SERVER['REMOTE_ADDR'];
Ensuite tu ajoutes une colonne dans ta bdd: ip_user => text
Et dans ta requête d'insertion tu rajoute la colonne et la variable.
manandroid

manandroid Le 5 février 2017 à 19:32 (Édité le 5 février 2017 à 19:36)

Merci beaucoup @Beignet tu ma aider

Pour ceux qui ce demande où mettre tout sa

Je vous met le code juste ici si vous en avais besoin un jour
Ligne 9 : variable :  $ip = $_SERVER['REMOTE_ADDR'];
Ligne 20 & 21 la requête 
<?php
$bdd = new PDO('mysql:host=127.0.0.1;dbname=espace_membre', 'root', '');
if(isset($_POST['forminscription'])) {
   $pseudo = htmlspecialchars($_POST['pseudo']);
   $mail = htmlspecialchars($_POST['mail']);
   $mail2 = htmlspecialchars($_POST['mail2']);
   $mdp = sha1($_POST['mdp']);
   $mdp2 = sha1($_POST['mdp2']);
   $ip = $_SERVER['REMOTE_ADDR'];
   if(!empty($_POST['pseudo']) AND !empty($_POST['mail']) AND !empty($_POST['mail2']) AND !empty($_POST['mdp']) AND !empty($_POST['mdp2'])) {
      $pseudolength = strlen($pseudo);
      if($pseudolength <= 255) {
         if($mail == $mail2) {
            if(filter_var($mail, FILTER_VALIDATE_EMAIL)) {
               $reqmail = $bdd->prepare("SELECT * FROM membres WHERE mail = ?");
               $reqmail->execute(array($mail));
               $mailexist = $reqmail->rowCount();
               if($mailexist == 0) {
                  if($mdp == $mdp2) {
                     $insertmbr = $bdd->prepare("INSERT INTO membres(pseudo, mail, motdepasse, ip_user) VALUES(?, ?, ?, ?)");
                     $insertmbr->execute(array($pseudo, $mail, $mdp, $ip));
                     $erreur = "Votre compte a bien été créé !";
                  } else {
                     $erreur = "Vos mots de passes ne correspondent pas !";
                  }
               } else {
                  $erreur = "Adresse mail déjà utilisée !";
               }
            } else {
               $erreur = "Votre adresse mail n'est pas valide !";
            }
         } else {
            $erreur = "Vos adresses mail ne correspondent pas !";
         }
      } else {
         $erreur = "Votre pseudo ne doit pas dépasser 255 caractères !";
      }
   } else {
      $erreur = "Tous les champs doivent être complétés !";
   }
}
?>
Balatharas

Balatharas Le 5 février 2017 à 19:36

Oui voilà 😀
Plus qu'à mettre en résolu
Vous devez être connecté pour poster une réponse. Se connecter ou Créer un compte