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

Gracias man! Ahora tengo otra duda, esta si no tengo casi idea, ya funciona y todo pero ahoraa lo que quiero hacer es comprobar que los caracteres escritos sean los mismos de la imagen, pero no se como hacerle, estos son mis codigos:

reg.php

Código PHP:
<?php
     
    
include('config.php'); //incluimos el config.php que contiene los datos de la conexión a la db
    
$ip $_SERVER['REMOTE_ADDR'];
     
    
$cadena "";
     
    for (
$i 0$i 10$i++)
        
$cadena .= chr(rand(6590));
     
    if (! isset(
$_SESSION['usuario'])) //comprobamos que no existe la session, es decir, que no se ha logeado, y mostramos el form
    
{
    
?>
    <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>
    Antispam: <br><img src="antispam.php?texto=<?php
        
echo $cadena?>" alt=""> </br> 
Inserta el codigo de arriba:<br>
    <input type="text" name="antispam" size="30"><br>


<input
        type="submit" name="submit" value="Enviar"></form>
    <?php
        
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";
    }
    
?>
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{

//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';
}

}

}
?>