Foros del Web » Programando para Internet » PHP »

Problema Con un Login!

Estas en el tema de Problema Con un Login! en el foro de PHP en Foros del Web. Hola a todos: Mi problema es que estoy haciendo una página de administración de mi Web, antes de entrar a ese página quiero que aparezca ...
  #1 (permalink)  
Antiguo 06/08/2009, 09:38
 
Fecha de Ingreso: agosto-2009
Mensajes: 7
Antigüedad: 14 años, 7 meses
Puntos: 0
Problema Con un Login!

Hola a todos:

Mi problema es que estoy haciendo una página de administración de mi Web, antes de entrar a ese página quiero que aparezca un login. Este login está conectado a la BD y funciona bien porque lo he probado de mil formas y me reconoce el usuario y contraseña que tengo en mi BD.

El problema es que cuando le doy a entrar valida los campos login y contraseña sin darme error pero no entra en la página de administracion.php, he porbado todas las convinaciones posibles en la ocion action del formulario, y nada. O entra directamente a administracion.php sin tener en cuenta el password y usuario o no entra en administracion.php

Ayuda por Favor!

Este es el código de loginadministracion.php

<?php
session_start ();
if (isset ($_POST["usuario"])) {
$usuario=$_POST["usuario"];
$contrasena=$_POST["contrasena"];
include ("conectar.inc.php");
$sql="SELECT usuario,contrasena FROM login WHERE usuario='$usuario';";
$resultado=mysql_query ($sql);
if ($fila=mysql_fetch_row($resultado)){
if ($contrasena==$fila[1]) { //1 es el indice en la base datos del campo cliente (0 es Dnicif y 1 contrasena) idcliente no cuenta
$_SESSION["usuario"]=$usuario;

}
else {
$errores["login"]="Contraseña incorrecta";
}
}
else {
$errores["login"]="Datos Incorrectos";
}
mysql_close(); //Para cerrar sesion
}

?>
<html>
<style type="text/css">

h3 {
font-size:16px;
border-bottom-style:solid;
border-bottom-color:#336633;
width: 550px;
}
.registro{
color:#990000;
font-size:16px;
font-family:Arial, Helvetica, sans-serif;
text-decoration:underline;
}

.error {
color:#FF0000;
font-size:14px;
font-family:Arial, Helvetica, sans-serif;
}
input {
font-size:14px;
font-family:Arial, Helvetica, sans-serif;

}
.style1 {font-family: "Tempus Sans ITC", Baskerville, "Comic Sans MS", Arial, "Times New Roman"}
.style6 {
font-family: "Tempus Sans ITC", Baskerville, "Comic Sans MS", Arial, "Times New Roman";
font-size: 16px;
color: #336633;
font-weight: bold;
}
.style7 {font-family: "Tempus Sans ITC", Baskerville, "Comic Sans MS", Arial, "Times New Roman"; font-size: 14px; font-weight: bold; }
</style>

<head>
<title>Login Administraci&oacute;n</title>
<head/>
<body>
<h3>Identificaci&oacute;n de Usuario.</h3>

<form id="form1" name="form1" method="post" action="<?php echo $_SERVER ["PHP_SELF"]; //HE PROBADO CON TODO PONIENDO LA DIRECCION USANDO VARIABLES ETC.?>?">



<table border=2>
<tr>
<th bgcolor="#CCCC66"><div align="left">Usuario</div></th>
<th bgcolor="#CCCC66"> <div align="left">
<input id="usuario" type="text" name="usuario" <?php if (isset($_POST['usuario'])) echo $_POST['usuario'];?>>
</div></th>
</tr>
<tr>
<th bgcolor="#CCCC66"><div align="left">Password</div></th>
<th bgcolor="#CCCC66"> <div align="left">
<input name="contrasena" type="password" id="contrasena" />
</div></th>
</tr>
<tr>
<th colspan=2 bgcolor="#CCCC66"><input name="Bot" type=submit class="style7" id="entrar" value="Entrar">
</tr>
<tr>
<th height="23" colspan=2 bgcolor="#CCCC66"><div align="left"><p align="center"><?php echo $errores["login"] ?></p>
</div></th>
</tr>
</table>
</form>

<h3></h3>
<p></p>
</body>
</html>
  #2 (permalink)  
Antiguo 06/08/2009, 10:06
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Problema Con un Login!

1. En la consulta a la base de datos no verificas si el password es correcto.
2. Debes verificar si esta enviando informacion con un if

Código PHP:
Ver original
  1. if(!empty($usuario) && !empty($contrasena)){
  2. //aqui va el codigo
  3. }

3. Usa en la variables mysql_real_escape_string, para que verifique y converita todo caracter a string y no te pueda hackear tu pagina

Código PHP:
Ver original
  1. $usuario=mysql_real_escape_string($_POST["usuario"]);
  2. $contrasena=mysql_real_escape_string($_POST["contrasena"]);

o puedes usar htmlentities()

Código PHP:
Ver original
  1. $usuario=htmlentities($_POST["usuario"], ENT_QUOTES);
  2. $contrasena= htmlentities($_POST["contrasena"], ENT_QUOTES);

4. No le digas al usuario cual de las dos esta incorrecta, esto se presta para hackear cuentas. Mejor dile que contraseña o usuario no esta correcto.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 06/08/2009, 12:02
 
Fecha de Ingreso: agosto-2009
Mensajes: 7
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Problema Con un Login!

Muchas Gracias.

Ya he añadido el código que me has dejado en el login.

Pero sigo teniendo el mismo problema, no puedo acceder a la siguiente página estando ya logueado.
  #4 (permalink)  
Antiguo 06/08/2009, 12:17
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Problema Con un Login!

pero coloca el codigo para poder ver que es lo que has hecho
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #5 (permalink)  
Antiguo 06/08/2009, 12:28
 
Fecha de Ingreso: agosto-2009
Mensajes: 7
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Problema Con un Login!

Aquí vaa ver que he liado.

[PHP]<?php
session_start ();
if(!empty($usuario) && !empty($contrasena)) {
$usuario=mysql_real_escape_string($_POST["usuario"]);
$contrasena=mysql_real_escape_string($_POST["contrasena"]);
include ("conectar.inc.php");
$sql="SELECT usuario,contrasena FROM login WHERE usuario='$usuario';";
$resultado=mysql_query ($sql);
if ($fila=mysql_fetch_row($resultado)){
if ($contrasena==$fila[1]) { //1 es el indice en la base datos del campo cliente (0 es Dnicif y 1 contrasena) idcliente no cuenta
$_SESSION["usuario"]=$usuario;
}
else {
$errores["login"]="Contraseña incorrecta";
}
}
else {
$errores["login"]="Datos Incorrectos";
}
mysql_close(); //Para cerrar sesion
}

?>[PHP]

Y el Formulario

<form id="form1" name="form1" method="post" action="<?php echo $_SERVER ["PHP_SELF"];?>">


<table border=2>
<tr>
<th bgcolor="#CCCC66"><div align="left">Usuario</div></th>
<th bgcolor="#CCCC66"> <div align="left">
<input id="usuario" type="text" name="usuario" <?php if (isset($_POST['usuario'])) echo $_POST['usuario'];?>>
</div></th>
</tr>
<tr>
<th bgcolor="#CCCC66"><div align="left">Password</div></th>
<th bgcolor="#CCCC66"> <div align="left">
<input name="contrasena" type="password" id="contrasena" />
</div></th>
</tr>
<tr>
<th colspan=2 bgcolor="#CCCC66"><input name="Bot" type=submit class="style7" id="Bot" value="Entrar"></th>
</tr>
<tr>
<th height="23" colspan=2 bgcolor="#CCCC66"><div align="left"><p align="center"><?php echo $errores["login"] ?></p>
</div></th>
</tr>
</table>
</form>
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:52.