Hola tengo esta página para insertar cosas a mi BD, el codigo es este:
Código PHP:
<?PHP
include_once("config.php");
conectadb();
mysql_select_db("rpmsite");
//Comprobamos que el campo nombre no este vacio o contenga errores
if(empty($_POST['nick'])){
header("Location:index.php?modules=register&error=0");
}elseif(!empty($_POST['nick']) && ($_POST['nick']<5)){
header("Location:index.php?modules=register&error=1");
}
//Comprobamos que la contraseña01 y contraseña02 no este vacio o contenga errores
if(empty($_POST['contrasena01']) or empty($_POST['contrasena02'])){
header("Location:index.php?modules=register&error=2");
}elseif(($_POST['contrasena01'] != $_POST['contrasena02']) or (strlen($_POST['contrasena01'])!=strlen($_POST['contrasena02']))){
header("Location:index.php?modules=register&error=3");
}elseif(strlen($_POST['contrasena01'])<5 or strlen($_POST['contrasena02'])<5){
header("Location:index.php?modules=register&error=4");
}
//Comprobamos que el correo01 y el correo02 no este vacio o contenga errores
if(empty($_POST['mail01']) or empty($_POST['mail02'])){
header("Location:index.php?modules=register&error=5");
}elseif(($_POST['mail01'] != $_POST['mail02'])){
header("Location:index.php?modules=register&error=6");
}elseif(!ereg("^([a-zA-Z0-9._]+)@([a-zA-Z0-9.-]+).([a-zA-Z]{2,4})$",$mail01) or (!ereg("^([a-zA-Z0-9._]+)@([a-zA-Z0-9.-]+).([a-zA-Z]{2,4})$",$mail02))){
header("Location:index.php?modules=register&error=7");
}
//Comprobamos que el nombre no este vacio o contenga errores
if(empty($_POST['nombre'])){
header("Location:index.php?modules=register&error=8");
}elseif(strlen($_POST['nombre'])<5){
header("Location:index.php?modules=register&error=9");
}
if ($_POST['contrasena01'] == $_POST['contrasena02']){
$crypt = md5($_POST['contrasena01']);
}
if ($_POST['mail01'] == $_POST['mail02']){
$correook = $_POST['mail01'];
}
if ((!empty($nick)) && (!empty($contrasena01)) && (!empty($contrasena02)) && (!empty($mail01)) && (!empty($mail02)) && (!empty($nombre))){
$result = mysql_query("SELECT id FROM users WHERE nombre='$nick'");
if (mysql_num_rows($result))
{
echo "Ya existe un usuario con ese login<br>";
}else{
$sql = "INSERT INTO users (nombre,login,passwd,email,pais,url,icq,aim,yahoo,dia,mes,ano,fecha,tipo) VALUES ('".$_POST['nick']."','".$crypt."','".$correook."','".$_POST['pais']."','".$_POST['nombre']."','".$_POST['homepage']."','".$_POST['icq']."','".$_POST['aim']."','".$_POST['yahoo']."','".$_POST['dia']."','".$_POST['mes']."','".$_POST['ano']."',NOW(),'3')";
}
if (mysql_query($sql)){
header("Location: index.php?modules=register&action=sucesfully");
}else{
header("Location: index.php?modules=register&error=10");
}
}else{
header("Location: index.php?modules=register&error=unsucesfully");
}
?>
el problema es que cuando dejo todos los campos que debo validar vacios me redirecciona al error que le da la gana y no me los pone todos. ME explico mejor debo validar, el nick, el password, el correo y el nombre. Si los dejo los 4 vacios me debia decir: Debes entrar un nick, Debes entrar un password, Debes entrar una direccion valida, Debes entrar un nombre en el caso de que esten vacios, pero no me pone solo lo que le da la gana por ejemplo me redirecciona para index.php?modules=register&action=sucesfully ¿Por qué?
Ah! se me olvidaba esto otro. La funcion conectadb() esta implementada en el config.php de la sigueinte forma:
Código PHP:
$host = "host";
$user = "user";
$passwd = "pass";
$dbase = "dbase";
function conectadb(){
$identifier = mysql_connect($host,$user,$passwd) or die("Error");
mysql_select_db($dbase,$identifier);
}
el problema es que no se como sacar ese identificador ($identifier) de ahi para despues usarlo en cosas como myqsl_query($resultado,$identifier) y la otra cosa si se dieron cuenta al principio del script tuve que especificar manualmente mysql_select_db("rpmsite"); pues sino lo hago asi me dice que no hay Bases de Datos seleccionada. ¿Que pasa aquí?