elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
28 Mayo 2012, 12:34  


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)

+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP
| | | |-+  Ayuda con conexión a base de datos!
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda con conexión a base de datos!  (Leído 481 veces)
kodeone

Desconectado Desconectado

Mensajes: 22



Ver Perfil
Ayuda con conexión a base de datos!
« en: 24 Febrero 2011, 14:38 »

Buenas gente!

Tengo un problema al que no le encuentro solución ya que creo que el código lo tengo bien. Estoy haciendo una mini-página para probar y bueno, he hecho un form para registrarse y otro para iniciar sessión. La cosa está en que el script que mira si el usuario está en la base de datos para iniciar sessión se queda calado y me tira un error...

Este es el código de inicio de sessión:
Código
<html>
<title>Iniciar sessión</title>
<head>
<link rel="STYLESHEET" type="text/css" href="estil.css">
<script>
function validar(){
if ((document.f1.n1.value == "") || (document.f1.p1.value == "")){
alert('Campos vacíos');
ok=false;
}else{
ok=true;
}
return ok;
}
</script>
</head>
<body bgcolor="black">
<form name="f1" method="POST" onsubmit="return validar()" action="validar.php">
<div id="d1" name="d1">
<label for="Usuario">Usuario: </label><br>
<input type="text" name="n1" value=""><br><br>
<label for="cont">Contraseña: </label><br>
<input type="password" name="p1" value=""><br>
</div>
<input type="submit" class="sub" value="iniciar sessión" name="s1"><br>
<?php
echo  "<center style='color:red'>$cont</center>";
?>
</form>
<form name="f2" method="GET" action="registrar.php">
<input type="submit" class="sub" value="Regístrate" name="s2">
</form>
</body>
</html>
 

Este es el de conectar:

Código
<?php
$nom = $_POST['n1'];
$con = $_POST['p1'];
$cont= "";
$ok=false;
 
$connexio = mysql_connect("localhost","root");
mysql_select_db("login",$connexio);
 
$resultat=mysql_query("SELECT * FROM usuaris",$connexio);
if($registre=mysql_fetch_assoc($resultat)){
 
 
do{
if(($nom == $registre['nombre']) && ($con == $registre['pass'])){ //si lo q hemos introducid
$ok=true;  //esta n la bd salimos dl bucle
}else{
$registre=mysql_fetch_assoc($resultat);
}
}while(($registre!=false)||($ok!=true));
 
//Salimos del bucle y miramos si el usuario existe o no.
 
if($ok==true){
header("location:pagina_principal.php");
}else{
$cont = "Usuario incorrecto";
include 'primerap.php';
}
 
}else{
echo "ERROR AL SELECCIONAR BASE DE DATOS";
}
?><?php
$nom = $_POST['n1'];
$con = $_POST['p1'];
$cont= "";
$ok=false;
 
$connexio = mysql_connect("localhost","root");
mysql_select_db("login",$connexio);
 
$resultat=mysql_query("SELECT * FROM usuaris",$connexio);
if($registre=mysql_fetch_assoc($resultat)){
 
 
do{
if(($nom == $registre['nombre']) && ($con == $registre['pass'])){ //si lo q hemos introducid
$ok=true;  //esta n la bd salimos dl bucle
}else{
$registre=mysql_fetch_assoc($resultat);
}
}while(($registre!=false)||($ok!=true));
 
//Salimos del bucle y miramos si el usuario existe o no.
 
if($ok==true){
header("location:pagina_principal.php");
}else{
$cont = "Usuario incorrecto";
include 'primerap.php';
}
 
}else{
echo "ERROR AL SELECCIONAR BASE DE DATOS";
}
?>
 

Ni idea de que pasa -.-. El error que me da es este:

Fatal error: Maximum execution time of 30 seconds exceeded in C:\wamp\www\validar.php on line 16

La linea 16 es donde ok=true, dentro del if. Pero también hay veces que se queda calado nada más empezar el if.

¿Alguien sabe que pasa?

Un saludo y gracias por adelantado!


En línea

bomba1990


Desconectado Desconectado

Mensajes: 383



Ver Perfil WWW
Re: Ayuda con conexión a base de datos!
« Respuesta #1 en: 24 Febrero 2011, 17:13 »

el error que te da se debe a que php tiene un tiempo maximo de ejecucion, y tu script en esa linea a exedido ese tiempo maximo de ejecucion. te recomiendo que en la sentencia sql pongas:

"select * from usuarios where nombre= '".$registre['nombre']."'"

para que haci te de como salida un solo usuario y no vayas comprobando uno a uno. otra cosa ese script asi es vulnerable a que escriba directamente la direccion de la pagina y entra porque no hay ninguna comprobacion


En línea

"Cuando le di de comer a los pobres me llamaron santo, pero cuando pregunte porque los pobres eran pobres me dijeron comunista"

http://sosinformatico.blogspot.com/
http://www.publisnet.com.ve
kodeone

Desconectado Desconectado

Mensajes: 22



Ver Perfil
Re: Ayuda con conexión a base de datos!
« Respuesta #2 en: 24 Febrero 2011, 17:34 »

Con eso no funciona...Me sigue tirando error. Dudo que se colapse buscando porqué solo tengo 2 usuarios en la base de datos.

Un saludo.
En línea

kodeone

Desconectado Desconectado

Mensajes: 22



Ver Perfil
Re: Ayuda con conexión a base de datos!
« Respuesta #3 en: 24 Febrero 2011, 17:38 »

Lo acabo de solucionar!

He quitado el bucle y con el SELECT*FROM usarios WHERE nombre=$nom luego lo compruebo con un if y ya tira xD.

Código
<?php
$nom = $_POST['n1'];
$con = $_POST['p1'];
$cont= "";
$ok=false;
 
$connexio = mysql_connect("localhost","root");
mysql_select_db("login",$connexio);
$resultat = mysql_query("SELECT * FROM usuaris where nombre = '$nom'",$connexio);
 
if($registre=mysql_fetch_assoc($resultat)){//Nos metemos en el array
 
if(($nom == $registre["nombre"]) && ($con == $registre["pass"])){ //Miramos que el nombre coincida con l pass
$ok=true;  
}
 
 
if($ok==true){
header("location:pagina_principal.php");
}else{
$cont = "Contraseña incorrecta";
include 'primerap.php';
}
 
}else{
//Si a la hora de hacer el login el nombre no existe en la base de datos que nos redireccione.
$cont = "Usuario incorrecto";
include 'primerap.php';
}
?>
 



Un saludo y gracias!
« Última modificación: 24 Febrero 2011, 17:43 por kodeone » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda con conexion con Base de datos
Programación Visual Basic
Sakoda 1 434 Último mensaje 13 Septiembre 2005, 00:46
por Slasher-K
conexion base de datos sql con c#
.NET
shin_akuma 9 44,286 Último mensaje 11 Junio 2008, 19:33
por HappyLellow
Conexión a base de datos
PHP
& eDu & 3 561 Último mensaje 11 Agosto 2008, 01:21
por najmuddin
ayuda en conexion a base de datos con access
Java
mojittoo 1 866 Último mensaje 16 Junio 2009, 03:40
por h0oke
Conexion a base de datos
Programación Visual Basic
leliCabello 5 989 Último mensaje 3 Mayo 2010, 20:53
por 43H4FH44H45H4CH49H56H45H
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines