Ver Mensaje Individual
  #5 (permalink)  
Antiguo 10/01/2008, 08:10
Avatar de neodani
neodani
 
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 2 meses
Puntos: 20
Re: No se conecta a la base de datos

Cita:
Iniciado por neodani Ver Mensaje
Al final, desintalé el appserv e instalé una nueva versión, en el directorio por defecto (antes lo tenia en otro) y con la configuración de serie...

Igual era por eso.

Ahora me va, al menos me introduce datos en la base de datos Weee!


Este es mi script de registro a ver que os parece.

Código PHP:
<?php
require ("config_BD.php"); //incluimos el config.php que contiene los datos de la conexión a la db

//recibo las variables y elimino los espacios en blanco con trim
$user trim($_POST['nick']);
$pass trim($_POST['pass']);
$pass1 trim($_POST['pass1']);
$email trim($_POST['email']);

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

    
//Comprobamos que la pass y pass1 son iguales, sino, volvemos a registro.php
    
if($pass != $pass1){
        echo 
"Las passwords no son iguales </br>";
        
Header("Location: registro.php"); //enviamos al form de registro que esta en registro.php
    
}
    else{ 
//Todo bien
        
        //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);

        // Conexión base de datos.
        // si no se puede conectar a la BD salimos del scrip con error 0 y redireccionamos a la pagina de error.
        
$db_conexionmysql_connect("$sql_host""$sql_usuario""$sql_pass") or die(header ("Location:  $redir?error_login=0"));
        
mysql_select_db("$sql_db");

        
//echo "Estamos conectados a = $sql_db </br>";

        //comprobamos que el usuario no existe en la db
        
$usuario_consulta=mysql_query("SELECT nick FROM users WHERE nick='$user'");
        
        if (
mysql_num_rows($usuario_consulta) != 0){ //SI el usuario ESTA en la BD
            
echo "Este usuario ya existe </br>";
            }
        
        else{ 
// si el usuario NO ESTA en la BD continuamos
            
if($user_ok=mysql_fetch_array($usuario_consulta)){
                
mysql_free_result($usuario_consulta); //liberamos la memoria del query a la db
                
}
            else{
                
//quitamos todo el codigo malicioso de las demas variables del form de registro
                
$email stripslashes($email);
                
$email strip_tags($email);
                
                
$rollo stripslashes($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);
                
                
date_default_timezone_set("Europe/Madrid");
                
$fecha date("y/m/d H:i:s");
                
//echo "fecha = $fecha";
                
$level "2"//usaremos level 1 para admins, level 2 para los demas
                
                //introducimos el nuevo registro en la tabla users
                
mysql_query("INSERT INTO users (nick,pass,email,fecha,level,rollo) values ('$user','$pass','$email','$fecha','$level','$rollo') ");
                echo 
"Usuario registrado con éxito </br>";
                }
            
            }    
        }
}
    
?>
Varias preguntas...
1) Qué tal véis la seguridad?

2) Hago bien recibiendo las variables del formulario con un trim al principio de todo?

3) Quiero insertar en mi base de datos la fecha y hora en la que se hizo el registro, pero no lo consigo.
Con que formato tengo que definir el campo en la base de datos? y como llamo a la funcion data en php para que no se me queje la base de datos

4) No me funciona las redirecciones, tipo
Header("Location: registro.php");

No se hace así para que vaya a la pagina de registro? estando esta en el directorio actual del script?


Gracias de antemano!

PD: Gracias a vosotros voy adelantando cada día un poco mas
El problema del header lo he solucionado. Al parecer habia espacios en blanco o saltos de lineas, entre mis codigos php y por eso no iba. ARREGLADO


Añado otra duda más, a la numero 1,2 y 3 xD

Quiero que determinados campos sean obligatorios, en mi formulario y si no se introducen o se introducen campos equivocados, muestre un error al usuario.

Pero que no sea una ventana emergente de error, sino que sea algo dentro del propio formulario como por ejemplo escribir arriba lo que se ha puesto mal, y/o señalar en rojo la caja de texto donde esta el error.

Lo he visto infinidad de veces en muchos formularios de la red, pero no se como se consigue eso. Quizá sean diferentes páginas con diferentes errores?
No se, es la única que se me ocurre que sabría hacer... pero me parece un poco cutre...
Porque si el formulario es muy grande, las combinaciones de campos erroneos pueden ser tremendas...

Asi que supongo que habrá una solución mas viable. Cuál es? xD

Merciii