PHP - error con catch en codigo

 
Vista:
sin imagen de perfil

error con catch en codigo

Publicado por javier (7 intervenciones) el 13/03/2015 16:39:00
Buenos dias amigos, este codigo me esta dando un error en catch... alguien puede por favor decirme que he hecho mal...???

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
<?php
ini_set('display_errors', 'off');
ini_set('display_startups_errors', 'off');
error_reporting (0);
$usuario=$_POST['email'];
$contrasena=$_POST['contrasena'];
function Conectarse()
{
	if(!($link=mysql_connect("localhost","root"))){
	echo "error conectando a la base de datos.";
	exit;
}
if (!mysql_select_db("siesintla",$link)){
	echo "Error selccionando la base de datos";
	exit;
}
return $link;
}
$con=Conectare();
$query= "SELECT * FROM log WHERE email='".$email."' AND contrasena='".$contrasena."'";
$q = mysql_query($query,$con);
try{
if(mysql_result($q,0)){
$result=(mysql_result($q,0));
//echo $result;
echo "Usuario validado correctamente.";
 
}
else
{echo "Usuario o Clave incorrectos.";
}
catch(exception $error){}
mysql_close($con);
 
?>
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
sin imagen de perfil

error con catch en codigo

Publicado por Manuel Emilio (154 intervenciones) el 13/03/2015 16:49:48
A primera vista veo que pusiste:
1
$con=Conectare();
en vez de
1
$con=Conectarse();
Además de que te faltó el corchete de cierre del try. Así:
1
} catch(exception $error){}

Además, aquí comparto contigo el siguiente enlace: http://php.net/manual/es/language.exceptions.php
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

error con catch en codigo

Publicado por javier (7 intervenciones) el 13/03/2015 17:07:40
Upss..!! Muchas gracias Manuel Emilio se me pasaron..., pero aun depues de corregir los errores, envio la pagina al explorador y antes del formulario me aparece Usuario o clave incorrecto y se repite el mismo error cuando intento validar la clave
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
sin imagen de perfil

error con catch en codigo

Publicado por Manuel Emilio (154 intervenciones) el 13/03/2015 17:22:50
Escribe
1
echo $query;
después de
1
$query= "SELECT * FROM log WHERE email='".$email."' AND contrasena='".$contrasena."'";
y lo que te despliega lo consultas en la base de datos para saber qué te retorna. También el problema se puede deber a que el primer dato retornado por el select es una cadena vacía o un 0, por ejemplo. Además aquí comparto contigo el siguiente enlace, que te puede ser de utilidad: http://php.net/manual/es/function.mysql-num-rows.php
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

error con catch en codigo

Publicado por javier (7 intervenciones) el 13/03/2015 17:27:52
Listo..!!! muchas gracias por tan certera explicacion Manuel Emilio, tenia un error en la variable... no era $email sino $usiario... ahora si me funciona correctamente... gracias por compartar tu tiempo y tus conocimientos...!!!
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
sin imagen de perfil

error con catch en codigo

Publicado por Manuel Emilio (154 intervenciones) el 13/03/2015 17:40:34
El siguiente código fuente te puede servir para saber si se presionó un botón y además, cuál de ellos. Con él puedes hacer que se valide el usuario y la contraseña hasta que se presione el botón que quieras.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
if (isset($_POST["boton1"]))
    echo "Se presionó el botón 1";
else
    echo "No se presionó el botón 1";
 
echo "<br>";
 
if (isset($_POST["boton2"]))
    echo "Se presionó el botón 2";
else
    echo "No se presionó el botón 2";
?>
<form method=post>
<input type=submit value="Boton 1" name="boton1">
<input type=submit value="Boton 2" name="boton2">
</form>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

error con catch en codigo

Publicado por javier (7 intervenciones) el 13/03/2015 22:46:28
Gacias.. Manuel, tengo una duda... estoy enviando datos de un formulario que esta en una pagina html a una pagina php,, los envio asi:

<form action="UsRegist1.php" method="post" id="form">

en la pagina php tengo el siguiente scritp:

<?php
if(!$nombre || !$apellido || !$cargo || !$cedula || !$email || !$contrasena || !$repetir){
echo "No has introducido los valores necesarios." . "Por favor vuelava a intentarlo.";}
exit;

$nombre=addslashes ($nombre);
$apellido=addslashes ($apellido);
$cargo=addslashes ($cargo);
$cedula=addslashes ($cedula);
$email=addslashes ($email);
$contrasena=addslashes ($contrasena);
$repetir=addslashes ($repetir);
@ $db = mysql_pconnect ("localhost","root","");
if (!$db){
echo "Error, no se puede conectar a la base de datos.". "Por favor intentelo de nuevo";
exit;
}
mysql_select_db("siesintla");
$query = "insert into log values ('".$nombre."', '".$apellido."', '".$cargo."','".$cedula."','".$email."','".$contrasena."','".repetir."')";
$resutl= mysql_query($query);
if(result){
echo mysql_affected_rows(). "Informacion introducida en la base de datos.";


}
?>

pero al ejecutar la accion recibo el mensaje de que las variables que estan en el primer if estan indefinidas o vacias y por eeso no se ejecuta ("No has introducido los valores necesarios." . "Por favor vuelava a intentarlo.").... mi pregunta es hay que declararlas para que funcionen? o cual es el metodo para que pasen sin problemas del html al php
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
sin imagen de perfil

error con catch en codigo

Publicado por Manuel Emilio (154 intervenciones) el 13/03/2015 23:35:21
Debes poner algo así como:
1
2
3
4
$nombre = NULL;
 
if (isset($_POST["nombre"]))
    $nombre = $_POST["nombre"];
en cada una de ellas, antes del if.
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