PHP - No detecta si un usario ya ha sido registrado

   
Vista:

No detecta si un usario ya ha sido registrado

Publicado por mactoni (4 intervenciones) el 30/11/2014 20:21:14
Hola a todos,
Tengo un problema con un formulario de registro en php donde quiero que me avise si un usuario ya ha sido registrado. Tengo este código, y utilizo la función if (mysql_num_rows($resultado)>0) pero no consigo que me vaya a la página de fallo.

Dejo aquí el codigo php para ver si me pueden ayudar. Gracias!!

El programa trabaja bien añadiendo a la base de datos sql, pero lógicamente no detecta los repetidos.
He mirado mucho como hacerlo y siempre coincide con la solución que yo propongo.
Muchas gracias de antemano

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<?php
$db_host="localhost";
$db_user="xxx";
$db_password="xxx";
$db_usuario="usuarios";
$db_table_usuario="registro";
   $db_connection = mysql_connect($db_host, $db_user, $db_password);
 
if (!$db_connection) {
	die('Error de conexion');
}
$subs_usuario = utf8_decode($_POST['usuario']);
$subs_password = utf8_decode($_POST['password']);
$subs_email = utf8_decode($_POST['email']);
 
 
 
$resultado=mysql_query("SELECT * FROM ".$db_table_usuario." WHERE usuario = '".$subs_usuario."'", $db_connection);
 
if (mysql_num_rows($resultado)>0)
{
 
header('Location: Fail.html');
 
} else {
 
	$insert_value = 'INSERT INTO `' . $db_usuario . '`.`'.$db_table_usuario.'` (`usuario` , `password` , `email`) VALUES ("' . $subs_usuario . '", "' . $subs_password . '", "' . $subs_email . '")';
 
 
mysql_select_db($db_usuario, $db_connection);
$retry_value = mysql_query($insert_value, $db_connection);
 
if (!$retry_value) {
   die('Error: ' . mysql_error());
}
 
header('Location: Success.html');
}
 
mysql_close($db_connection);
 
?>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

No detecta si un usario ya ha sido registrado

Publicado por xve (5523 intervenciones) el 30/11/2014 21:42:55
Hola Mactoni, despues de cualquier header("location.... es recomendable poner un return;, ya que el código php se sigue ejecutando después del header...

Tu código, parece estar bien...

Has probado a mostrar el contenido de $resultado?
1
print_r($resultado);

Puede ser que haya un error y te devuelva siempre false?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

No detecta si un usario ya ha sido registrado

Publicado por mactoni (4 intervenciones) el 30/11/2014 22:24:54
Hola xve,
Sigue sin funcionar, pero ahora entra como en error y con la pantalla en blanco. Al menos no me actualiza la base de datos.
Es muy extraño. No se me ocurre nada. He puesto el print despues del if y lo mismo.
Estoy frito con esto..
Gracias por el apoyo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar