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..