Ver Mensaje Individual
  #6 (permalink)  
Antiguo 13/11/2006, 13:18
glayvin
 
Fecha de Ingreso: mayo-2005
Mensajes: 109
Antigüedad: 19 años
Puntos: 0
Muchas gracias por la respuesta.. en cuanto al form en html es este:
Aqui envias tu usuario i se te envia una contraseña aleatoria automàtica y también queda registrada la ip.

Código PHP:
<form id="form1" name="form1" method="post" action="crea_user.php">
  <input name="login" id="login" type="text" />
   <input name="pass" type="hidden" id="pass" value="<? 
$str 
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890";
$cad "";
for(
$i=0;$i<12;$i++) {
$cad .= substr($str,rand(0,62),1);
}
print 
$cad;
?>"/> 
<input name="ip" type="hidden" id="pass" value="<?
error_reporting
(0);

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" );
   
      
// los proxys van añadiendo al final de esta cabecera
      // las direcciones ip que van "ocultando". Para localizar la ip real
      // del usuario se comienza a mirar por el principio hasta encontrar
      // una dirección ip que no sea del rango privado. En caso de no
      // encontrarse ninguna se toma como valor el REMOTE_ADDR
   
      
$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) )
         {
            
// http://www.faqs.org/rfcs/rfc1918.html
            
$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;
   
}

$ips getRealIP();

echo 
"$ips"

?>"/>
</form>

I login si que toma su valor correcto, antes de esas lineas he omitido estas que tambien estan en el script: (para cojer el valor de login, de ips i de pass.

Código PHP:
$ips$_POST["ip"];
$pass$_POST["pass"];
$login$_POST["login"]; 
Lo que queria conseguir era comprobar que no existia ningun login con ese nombre. A parte de eso si que deberia utilizar mysql_real_escape_string, para prevenir injecciones sql. Ahora cuando consiga que funcione pulire el codigo. I de todas maneras lo que no entiendo es porque en mi servidor local me funciona perfectamente i al subirlo no..

Última edición por glayvin; 13/11/2006 a las 13:30