Titre: Enregistrer une adresse IP via un formulaire d'inscription
Posté par: suan le le 25-02-2011 a 16:28:39
Bonjour, Je cherche actuellement le moyen, dans mon formulaire d'inscription à mon site internet, d'enregistrer dans ma base de donnée l'adresse IP de l'utilisateur qui s'inscrit, seulement je n'arrive pas du tout à savoir où placer le code $_SERVER['REMOTE_ADDR']; Si je place le code au tout début de mon formulaire, il enregistre l'IP sous un ID autre que celui de l'utilisateur, mais moi je veux qu'il soit enregistré avec le même ID, sinon je ne sais pas savoir à qui appartient telle IP.
Merci, S.
Code:
<?php //On verifie que le formulaire a ete envoye if(isset($_POST['username'], $_POST['password'], $_POST['passverif'], $_POST['email'], $_POST['sexe']) and $_POST['username']!='')
{ //On enleve lechappement si get_magic_quotes_gpc est active if(get_magic_quotes_gpc()) { $_POST['username'] = stripslashes($_POST['username']); $_POST['password'] = stripslashes($_POST['password']); $_POST['passverif'] = stripslashes($_POST['passverif']); $_POST['email'] = stripslashes($_POST['email']); $_POST['sexe'] = stripslashes($_POST['sexe']); } //On verifie si le mot de passe et celui de la verification sont identiques if($_POST['password']==$_POST['passverif']) { //On verifie si le mot de passe a 6 caracteres ou plus if(strlen($_POST['password'])>=6) { //On verifie si lemail est valide if(preg_match('#^(([a-z0-9!\#$%&\\\'*+/=?^_'{|}~-]+\.?)*[a-z0-9!\#$%&\\\'*+/=?^_'{|}~-]+)@(([a-z0-9-_]+\.?)*[a-z0-9-_]+)\.[a-z]{2,}$#i',$_POST['email'])) { //On echape les variables pour pouvoir les mettre dans une requette SQL $username = mysql_real_escape_string($_POST['username']); $password = mysql_real_escape_string($_POST['password']); $email = mysql_real_escape_string($_POST['email']); $sexe = mysql_real_escape_string($_POST['sexe']); //On verifie sil ny a pas deja un utilisateur inscrit avec le pseudo choisis $dn = mysql_num_rows(mysql_query('select id from users where username="'.$username.'"')); if($dn==0) { //On recupere le nombre dutilisateurs pour donner un identifiant a lutilisateur actuel $dn2 = mysql_num_rows(mysql_query('select id from users')); $id = $dn2+1; //On enregistre les informations dans la base de donnee if(mysql_query('insert into users(id, username, password, email, sexe, , signup_date) values ('.$id.',"'.$username.'", "'.$password.'", "'.$email.'", "'.$sexe.'", "'.time().'")')) { //Si ca a fonctionne, on naffiche pas le formulaire $form = false; ?> <div class="message">Vous avez bien été inscrit. Vous pouvez dorénavant vous connecter.<br /> <a href="connexion.php">Se connecter</a></div> <?php } else { //Sinon on dit quil y a eu une erreur $form = true; $message = 'Une erreur est survenue lors de l\'inscription.'; } } else { //Sinon, on dit que le pseudo voulu est deja pris $form = true; $message = 'Un autre utilisateur utilise déjà le nom d\'utilisateur que vous désirez utiliser.'; } } else { //Sinon, on dit que lemail nest pas valide $form = true; $message = 'L\'email que vous avez entré n\'est pas valide.'; } } else { //Sinon, on dit que le mot de passe nest pas assez long $form = true; $message = 'Le mot de passe que vous avez entré contien moins de 6 caractères.'; } } else { //Sinon, on dit que les mots de passes ne sont pas identiques $form = true; $message = 'Les mots de passe que vous avez entré ne sont pas identiques.'; } } else { $form = true; } if($form) { //On affiche un message sil y a lieu if(isset($message)) { echo '<div class="message">'.$message.'</div>'; } //On affiche le formulaire ?> <div class="content"> <form action="sign_up.php" method="post"> Veuillez remplir ce formulaire pour vous inscrire:<br /> <div class="center"> <label for="username">Nom d'utilisateur</label><input type="text" name="username" value="<?php if(isset($_POST['username'])){echo htmlentities($_POST['username'], ENT_QUOTES, 'UTF-8');} ?>" /><br /> <label for="password">Mot de passe<span class="small">(6 caractères min.)</span></label><input type="password" name="password" /><br /> <label for="passverif">Mot de passe<span class="small">(vérification)</span></label><input type="password" name="passverif" /><br /> <label for="email">Email</label><input type="text" name="email" value="<?php if(isset($_POST['email'])){echo htmlentities($_POST['email'], ENT_QUOTES, 'UTF-8');} ?>" /><br /> Sexe: <input type="radio" name="sexe" value="Homme" id="homme" /> <label for="homme">Homme</label> <input type="radio" name="sexe" value="Femme" id="femme" /><label for="femme">Femme</label><br /> <input type="submit" value="Envoyer" /> </div> </form> </div> <?php } ?> <div class="foot"><a href="<?php echo $url_home; ?>">Retour à l'accueil</a></div> <p><br /> </div> </div> |
|
|
Titre: Re:Enregistrer une adresse IP via un formulaire d'inscription
Posté par: Ether Création le le 25-02-2011 a 16:41:55
| Il faut le mettre dans l'insert, donc créer un champ IP dans votre base pour pouvoir insérer l'IP dedans. |
Titre: Re:Enregistrer une adresse IP via un formulaire d'inscription
Posté par: suan le le 25-02-2011 a 17:41:11
Oui je l'avais déjà fait, mais le formulaire n'accepte pas le code. Si je fais un formulaire tout simple sans sécurité, ça marche sans problème, mais ici je pense que ce sont les conditions qui font que l'IP n'est pas acceptée, mais je ne sais pas où insérer le code. |
Forum-webmaster | Actionné par YaBB SE
© 2001-2003, YaBB SE Dev Team. Tous droits réservés.
|