Foros del Web » Programando para Internet » PHP »

Agregar Ip en registro de usuarios

Estas en el tema de Agregar Ip en registro de usuarios en el foro de PHP en Foros del Web. Hola denuevo! xD, tengo otro problema, tengo un sistema de usuarios, pero quiero q cuando se registren añada tambien el Ip del usuario, estos son ...
  #1 (permalink)  
Antiguo 03/01/2011, 16:14
 
Fecha de Ingreso: mayo-2010
Mensajes: 185
Antigüedad: 13 años, 11 meses
Puntos: 2
Agregar Ip en registro de usuarios

Hola denuevo! xD, tengo otro problema, tengo un sistema de usuarios, pero quiero q cuando se registren añada tambien el Ip del usuario, estos son mis codigos, el problema es q no tengo idea de como hacer para q se añadan los ip:

reg.php (formulario)
Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Estacion Rap</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="stylesheet" type="text/css" href="style.css" />
<!--[if lte IE 6]>
<link rel="stylesheet" type="text/css" href="ie.css" />
<script type="text/javascript">var clear="images/clear.gif";</script>
<script type="text/javascript" src="unitpngfix.js"></script>
<![endif]-->
</head>
<body>
<?php
$conexion 
mysql_connect("sql201.byethost15.com""user""pass");
mysql_select_db("b15_5229524_estacion"$conexion);

$queEmp "SELECT * FROM Discos ORDER BY id DESC"
$resEmp mysql_query($queEmp$conexion) or die(mysql_error());
$totEmp mysql_num_rows($resEmp);
 if (
$totEmp0) {
    while (
$rowEmp mysql_fetch_assoc($resEmp)) {
 
    }
}
?>
<!-- BEGIN wrapper -->
<div id="wrapper">
  <!-- BEGIN header -->
   <?
include('arriba.php'); ?>
  <!-- END header -->
  <!-- BEGIN body -->
  <div id="body">
    <!-- BEGIN content -->
    <div id="content">
      <!-- begin post -->
      <div class="first post">
        <div align="center">
          <h3>Registrarse</h3>
         <?
include('config.php'); //incluimos el config.php que contiene los datos de la conexión a la db
$ip $REMOTE_ADDR

if(!isset(
$_SESSION[usuario]) )//comprobamos que no existe la session, es decir, que no se ha logeado, y mostramos el form
{

//Creamos el form k irá a registrar.php para comprobar y introducir los datos a la tabla users
echo '<form action="registrar.php" method="POST">
Usuario:<br><input type="text" name="nick" size="30"><br>
Password:<br><input type="password" name="pass" size="30" ><br>
Repite password:<br><input type="password" name="pass1" size="30" ><br>
Email:<br><input type="text" name="email" size="30"><br>
Apellidos:<br><input type="text" name="apellidos" size="30"><br>
Nombre:<br><input type="text" name="nombre" size="30"><br>
Edad:<br><input type="text" name="edad" size="30"><br>
Link de tu imagen(incluyendo http://):<br><input type="text" name="avatar" size="30"><br>
Mensaje personal:<br> <textarea name="rollo" cols="30" rows="10"></textarea><br>
<input type="submit" name="submit" value="Enviar"></form>'
;
   echo       
"Beneficios del registro:<br>";
    echo     
"Podras añadir las letras de tus canciones favoritas<br>";
    echo      
"Podras añadir bases<br>";
    echo      
"Tendras un perfil personalizado<br>";
          
}else{
echo 
"No te puedes registrar si has iniciado sesion";
}
?></p>
        </div>
      </div>
      <!-- end post -->
      <!-- begin post --><!-- end post -->
      <!-- begin post -->
      <!-- end post -->
    </div>
    <!-- END content -->
    <!-- BEGIN sidebar -->
     <?
include('menu.php'); ?>
    <!-- END sidebar -->
    <div class="break"></div>
  </div>
  <!-- END body -->
  <!-- BEGIN footer -->
  <?
include('abajo.php'); ?>
  <!-- END footer -->
</div>
<!-- END  -->
</body>
</html>
registrar.php (procesa los datos de reg.php)
Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Estacion Rap</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="stylesheet" type="text/css" href="style.css" />
<!--[if lte IE 6]>
<link rel="stylesheet" type="text/css" href="ie.css" />
<script type="text/javascript">var clear="images/clear.gif";</script>
<script type="text/javascript" src="unitpngfix.js"></script>
<![endif]-->
</head>
<body>
<?php
$conexion 
mysql_connect("sql201.byethost15.com""user""pass");
mysql_select_db("b15_5229524_estacion"$conexion);

$queEmp "SELECT * FROM Discos ORDER BY id DESC"
$resEmp mysql_query($queEmp$conexion) or die(mysql_error());
$totEmp mysql_num_rows($resEmp);
 if (
$totEmp0) {
    while (
$rowEmp mysql_fetch_assoc($resEmp)) {
 
    }
}
?>
<!-- BEGIN wrapper -->
<div id="wrapper">
  <!-- BEGIN header -->
   <?
include('arriba.php'); ?>
  <!-- END header -->
  <!-- BEGIN body -->
  <div id="body">
    <!-- BEGIN content -->
    <div id="content">
      <!-- begin post -->
      <div class="first post">
        <div align="center">
          <h3>Registrarse</h3>
          <p></a>
<?
include('config.php'); //incluimos el config.php que contiene los datos de la conexión a la db

//Comprobamos que los campos nick, pass y pass1 se han rellenado en el form de reg.php, sino volvemos al form
if(($_POST[nick] == ' ') or ($_POST[pass] == ' ') or ($_POST[pass1] == ' ') )
{
Header("Location: reg.php"); //enviamos al form de registro que esta en reg.php
}else{

//Comprobamos que la pass y pass1 son iguales, sino, volvemos a reg.php
if($_POST[pass] != $_POST[pass1])
{
echo 
'Las passwords no son iguales';
}else{

//quitamos el codigo malicioso de $_POST[nick] y $_POST[pass]
$user stripslashes($_POST["nick"]);
$user strip_tags($user);
$pass stripslashes($_POST["pass"]);
$pass strip_tags($pass);
//comprobamos que el usuario no existe en la db
$usuarios=mysql_query("SELECT nick FROM users WHERE nick='$user' ");
if(
$user_ok=mysql_fetch_array($usuarios))
{
echo 
'El usuario ya esta registrado';
mysql_free_result($usuarios); //liberamos la memoria del query a la db
}else{
//quitamos todo el codigo malicioso de las demas variables del form de registro
$email stripslashes($_POST["email"]);
$email strip_tags($email);

$rollo stripslashes($_POST["rollo"]);
$rollo strip_tags($rollo);
$rollo str_replace("\n\r","<br>",$rollo); //se cambian los saltos de linea por <br>
$rollo str_replace("\r\n","<br>",$rollo);
$rollo str_replace("\n","<br>",$rollo);


$fecha time();
$level "1"//usaremos level 1 para admins, level 2 para los demas (se cambia manualmente desde phpmyadmin)
$ip $REMOTE_ADDR;

//introducimos el nuevo registro en la tabla users
mysql_query("INSERT INTO users (nick,pass,email,fecha,level,rollo,apellidos,nombre,edad, avatar, ip) values ('$user','$pass','$email','$fecha','$level','$rollo', '".$_POST['apellidos']."', '".$_POST['nombre']."', '".$_POST['edad']."', '".$_POST['avatar']."', '$ip') ");
echo 
'Usuario registrado con éxito';
}

}

}
?> 
        </div>
      </div>
      <!-- end post -->
      <!-- begin post --><!-- end post -->
      <!-- begin post -->
      <!-- end post -->
    </div>
    <!-- END content -->
    <!-- BEGIN sidebar -->
     <?
include('menu.php'); ?>
    <!-- END sidebar -->
    <div class="break"></div>
  </div>
  <!-- END body -->
  <!-- BEGIN footer -->
  <?
include('abajo.php'); ?>
  <!-- END footer -->
</div>
<!-- END  -->
</body>
</html>
  #2 (permalink)  
Antiguo 03/01/2011, 16:42
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 2 meses
Puntos: 96
Respuesta: Agregar Ip en registro de usuarios

Saludos

Yo lo realizo mediante la siguiente funcion

Código PHP:
Ver original
  1. function getRealIP() {
  2.  
  3.     if ($_SERVER['HTTP_X_FORWARDED_FOR'] != '') {
  4.         $client_ip =
  5.                 (!empty($_SERVER['REMOTE_ADDR']) ) ?
  6.                 $_SERVER['REMOTE_ADDR'] :
  7.                 ( (!empty($_ENV['REMOTE_ADDR']) ) ?
  8.                         $_ENV['REMOTE_ADDR'] :
  9.                         "unknown" );
  10.  
  11.         $entries = split('[, ]', $_SERVER['HTTP_X_FORWARDED_FOR']);
  12.  
  13.         reset($entries);
  14.         while (list(, $entry) = each($entries)) {
  15.             $entry = trim($entry);
  16.             if (preg_match("/^([0-9]+.[0-9]+.[0-9]+.[0-9]+)/", $entry, $ip_list)) {
  17.  
  18.                 $private_ip = array(
  19.                     '/^0./',
  20.                     '/^127.0.0.1/',
  21.                     '/^192.168..*/',
  22.                     '/^172.((1[6-9])|(2[0-9])|(3[0-1]))..*/',
  23.                     '/^10..*/');
  24.  
  25.                 $found_ip = preg_replace($private_ip, $client_ip, $ip_list[1]);
  26.  
  27.                 if ($client_ip != $found_ip) {
  28.                     $client_ip = $found_ip;
  29.                     break;
  30.                 }
  31.             }
  32.         }
  33.     } else {
  34.         $client_ip =
  35.                 (!empty($_SERVER['REMOTE_ADDR']) ) ?
  36.                 $_SERVER['REMOTE_ADDR'] :
  37.                 ( (!empty($_ENV['REMOTE_ADDR']) ) ?
  38.                         $_ENV['REMOTE_ADDR'] :
  39.                         "unknown" );
  40.     }
  41.  
  42.     return $client_ip;
  43. }
  44. //tomada de desarrolloweb

En tu codigo la asignas a tu variable ip

Código PHP:
Ver original
  1. $ip= getRealIP();
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #3 (permalink)  
Antiguo 03/01/2011, 18:37
 
Fecha de Ingreso: mayo-2010
Mensajes: 185
Antigüedad: 13 años, 11 meses
Puntos: 2
Respuesta: Agregar Ip en registro de usuarios

Men parece q no funciona a todos les agrega este ip 189217, codigo:

Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Estacion Rap</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="stylesheet" type="text/css" href="style.css" />
<!--[if lte IE 6]>
<link rel="stylesheet" type="text/css" href="ie.css" />
<script type="text/javascript">var clear="images/clear.gif";</script>
<script type="text/javascript" src="unitpngfix.js"></script>
<![endif]-->
</head>
<body>
<?php
$conexion 
mysql_connect("sql201.byethost15.com""user""pass");
mysql_select_db("b15_5229524_estacion"$conexion);

$queEmp "SELECT * FROM Discos ORDER BY id DESC"
$resEmp mysql_query($queEmp$conexion) or die(mysql_error());
$totEmp mysql_num_rows($resEmp);
 if (
$totEmp0) {
    while (
$rowEmp mysql_fetch_assoc($resEmp)) {
 
    }
}
?>
<!-- BEGIN wrapper -->
<div id="wrapper">
  <!-- BEGIN header -->
   <?
include('arriba.php'); ?>
  <!-- END header -->
  <!-- BEGIN body -->
  <div id="body">
    <!-- BEGIN content -->
    <div id="content">
      <!-- begin post -->
      <div class="first post">
        <div align="center">
          <h3>Registrarse</h3>
          <p></a>
<?
function getRealIP() {
 
    if (
$_SERVER['HTTP_X_FORWARDED_FOR'] != '') {
        
$client_ip =
                (!empty(
$_SERVER['REMOTE_ADDR']) ) ?
                
$_SERVER['REMOTE_ADDR'] :
                ( (!empty(
$_ENV['REMOTE_ADDR']) ) ?
                        
$_ENV['REMOTE_ADDR'] :
                        
"unknown" );
 
        
$entries split('[, ]'$_SERVER['HTTP_X_FORWARDED_FOR']);
 
        
reset($entries);
        while (list(, 
$entry) = each($entries)) {
            
$entry trim($entry);
            if (
preg_match("/^([0-9]+.[0-9]+.[0-9]+.[0-9]+)/"$entry$ip_list)) {
 
                
$private_ip = array(
                    
'/^0./',
                    
'/^127.0.0.1/',
                    
'/^192.168..*/',
                    
'/^172.((1[6-9])|(2[0-9])|(3[0-1]))..*/',
                    
'/^10..*/');
 
                
$found_ip preg_replace($private_ip$client_ip$ip_list[1]);
 
                if (
$client_ip != $found_ip) {
                    
$client_ip $found_ip;
                    break;
                }
            }
        }
    } else {
        
$client_ip =
                (!empty(
$_SERVER['REMOTE_ADDR']) ) ?
                
$_SERVER['REMOTE_ADDR'] :
                ( (!empty(
$_ENV['REMOTE_ADDR']) ) ?
                        
$_ENV['REMOTE_ADDR'] :
                        
"unknown" );
    }
 
    return 
$client_ip;
}
//tomada de desarrolloweb


include('config.php'); //incluimos el config.php que contiene los datos de la conexión a la db


//Comprobamos que los campos nick, pass y pass1 se han rellenado en el form de reg.php, sino volvemos al form
if(($_POST[nick] == ' ') or ($_POST[pass] == ' ') or ($_POST[pass1] == ' ') )
{
Header("Location: reg.php"); //enviamos al form de registro que esta en reg.php
}else{

//Comprobamos que la pass y pass1 son iguales, sino, volvemos a reg.php
if($_POST[pass] != $_POST[pass1])
{
echo 
'Las passwords no son iguales';
}else{

//quitamos el codigo malicioso de $_POST[nick] y $_POST[pass]
$user stripslashes($_POST["nick"]);
$user strip_tags($user);
$pass stripslashes($_POST["pass"]);
$pass strip_tags($pass);
//comprobamos que el usuario no existe en la db
$usuarios=mysql_query("SELECT nick FROM users WHERE nick='$user' ");
if(
$user_ok=mysql_fetch_array($usuarios))
{
echo 
'El usuario ya esta registrado';
mysql_free_result($usuarios); //liberamos la memoria del query a la db
}else{
//quitamos todo el codigo malicioso de las demas variables del form de registro
$email stripslashes($_POST["email"]);
$email strip_tags($email);

$rollo stripslashes($_POST["rollo"]);
$rollo strip_tags($rollo);
$rollo str_replace("\n\r","<br>",$rollo); //se cambian los saltos de linea por <br>
$rollo str_replace("\r\n","<br>",$rollo);
$rollo str_replace("\n","<br>",$rollo);


$fecha time();
$level "1"//usaremos level 1 para admins, level 2 para los demas (se cambia manualmente desde phpmyadmin)
$ip getRealIP();

//introducimos el nuevo registro en la tabla users
mysql_query("INSERT INTO users (nick,pass,email,fecha,level,rollo,apellidos,nombre,edad, avatar, ip) values ('$user','$pass','$email','$fecha','$level','$rollo', '".$_POST['apellidos']."', '".$_POST['nombre']."', '".$_POST['edad']."', '".$_POST['avatar']."', '$ip') ");
echo 
'Usuario registrado con éxito';
}

}

}
?> 
        </div>
      </div>
      <!-- end post -->
      <!-- begin post --><!-- end post -->
      <!-- begin post -->
      <!-- end post -->
    </div>
    <!-- END content -->
    <!-- BEGIN sidebar -->
     <?
include('menu.php'); ?>
    <!-- END sidebar -->
    <div class="break"></div>
  </div>
  <!-- END body -->
  <!-- BEGIN footer -->
  <?
include('abajo.php'); ?>
  <!-- END footer -->
</div>
<!-- END  -->
</body>
</html>

Etiquetas: ip, registro, usuarios
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:29.