Ver Mensaje Individual
  #7 (permalink)  
Antiguo 24/08/2011, 00:45
Arcana
 
Fecha de Ingreso: mayo-2010
Mensajes: 185
Antigüedad: 14 años, 7 meses
Puntos: 2
Respuesta: Problemas codigo antispam

intente ponerlo asi, pero la pagina se queda en blanco

registrar.php

Código PHP:
<?
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{

if (
md5($POST[antispam]) !! $_SESSION['captcha'])
        echo 
'El codigo es incorrecto';
    } 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,level,rollo,apellidos,nombre,edad, avatar, ip) values ('$user','$pass','$email','$level','$rollo', '".$_POST['apellidos']."', '".$_POST['nombre']."', '".$_POST['edad']."', '".$_POST['avatar']."', '$ip') ");
echo 
'Usuario registrado con éxito';
}

}

}
?>