Ayuda con un Login en PHP y MySQL

#1
Que tal comunidad vakuna!!!

Soy un estadiante de Ingenieria y estoy haciendo un sistema de logeo de usuarios en php y mysql, sin mucha ciencia, no marca ningun error pero al parecer no hace bien su funcion.

En la base de datos tengo dado de alta un usuario:
Usuario: alvaro
pass: alvaro123456

Al entrar a la pagina y escribir los datos, no me los reconoce como validos y me manda el error que no se pudo iniciar sesion. Dejo los codigos de mis archivos, ojala me puedan ayudar!!

Formulario del index.php
Código:
<form method="post" action="verificar.php">
  <p>
    <label for="textfield">usuario</label>
    <input type="text" name="usuario" id="usuario" />
  </p>
  <p>
    <label for="textfield2">contraseña</label>
    <input type="password" name="clave" id="clave" />
  </p>
  <p>
    <input type="submit" name="btnentrar" id="button" value="iniciar" />
  </p>
</form>
verificar.php
Código:
<?php 
include("conexion.php");// esta linea hace la conexcion al servidor
$rst_usuarios=mysql_query("SELECT * FROM usuarios WHERE usrlogin='". $_POST["usuario"] ."' and usrclave='". $_POST["clave"] ."'",$conexion);
$num_registro=mysql_num_rows($rst_usuarios);
if ($num_registros>0)
    // mostrar la pagina menu
	header("Location:menu.php");
else
     echo "EL USUARIO O LA CLAVE NO SON VALIDOS";
mysql_close ($conexion);
?>
conexion.php
Código:
<?php
$conexion*mysql_connect("localhost", "USUARIO", "CONTRASEÑA");
mysql_select_db("BASEDEDATOS",$conexion);
?>
El codigo de mi archivo menu.php no lo pego porque es una simple lista html jejeje.

MUCHAS GRACIAS!!!
 

spawn20

Bovino maduro
#2
Qe tal compañero te dejo mi codigo espero que te sirva
<td height="103"><center>
<p>
<input name="ok" type="submit" id="ok" value="Acceder">

<?PHP

if(isset($_POST["ok"]))
{
if($user!='' && $pass!='')
include("php/login.php");

elseif($user==''&& $pass=='')
{
echo "<script> alert('Escriba Usuario y Contraseña')</script>";
}
else{
if($user=='')
echo "<script> alert('Escriba Un Usuario')</script>";
if($pass=='')
echo "<script> alert('Escriba Una Contraseña')</script>";

}


}

?>

</center></td>
<?PHP
include("conectarse/conectar.php");
$consulta = mysql_query("select * from tbl_usuario where nombre_usuario='$user' and contrasena='$pass'",$db);

if($resul=mysql_fetch_array($consulta))
{
$tipo=$resul['tipo'];
$aria=$resul['tbl_areas_id_tbl_areas'];
session_destroy();
session_start();
$_SESSION['aut']="si";

$_SESSION['tipou']="$tipo";
$_SESSION['are']="$aria";




echo "<script language=\"JavaScript\" type=\"text/javascript\">\n";


echo "<!--\n";
if($tipo==1 || $tipo==2)
echo "top.location.href='carrusel.php';\n";


if($tipo==3)

echo "top.location.href= 'carrusel.php';\n";

echo "top.location.href= 'carrusel.php';\n";

echo "//-->\n";


echo "</script>\n";
exit();
break;
}
else
echo "<script> alert ('Intente de Nuevo !');</script>";


?>
el primer codigo es mi index.php y mi segundo es el login.php
 
#3
<?php
$enlace = mysql_connect('127.0.0.1','root','') or die ("No se pudo conectar al servidor: ".mysql_error());
mysql_query('SET NAMES utf8');
mysql_select_db('mantenimiento') or die ("No se pudo conectar/seleccionar la base de datos: ".mysql_error());
$consulta ='select id_usuario, nombre, tipo from usuarios where nick="'.$_POST["nick"].'"and contrasena="'.$_POST["contrasena"].'";';
$resultado = mysql_query($consulta) or die ("Fallo al generar la consulta: ".mysql_error());
$NFilas = mysql_num_rows($resultado);
$linea = mysql_fetch_array($resultado);
if($NFilas == 1)
{
session_start();
session_cache_limiter('private');
$_SESSION["id_usuario"]= $linea["id_usuario"];
$_SESSION["nombre"]= $linea["nombre"];
$_SESSION["tipo"]= $linea["tipo"];

$_SESSION["id_sesion"]= session_id();

if ($linea["tipo"]=="administrador")
header ("Location: menu/index.php");

else

header ("Location: badpass.php");
}
else
{
header ("Location: badpass.php");
}
?>

haber si te sirve esto carnalito
 
#4
yo lo implementaria con un contador y un while osea que estas bien y mal como lo veo yo yo pondria asi esto

<?php
include("conexion.php");// esta linea hace la conexcion al servidor
$consulta=("SELECT * FROM ");
$resultadi=mysql_query($consulta,$conexion);
$cont=0;
while($fil=mysql_fetch_array($resultado)){
//esto me ira buscando registros por registros entonces aplicamos el if else
if($_POST["usuario"]==$fila['usrlogin'] and $_POST["clave"]==$fila['usrclave'])
{cont++;}
}
mysql_close ($conexion);

//se supone que no ahy registros duplicados y si los encuntra el valor sera simpre 1
if ($cont==1)
{
header("Location:menu.php");}
else
{ echo "EL USUARIO O LA CLAVE NO SON VALIDOS";}

?>


saludos yo asi lo implementaria un saludo
 
#6
yo lo implementaria con un contador y un while osea que estas bien y mal como lo veo yo yo pondria asi esto

<?php
include("conexion.php");// esta linea hace la conexcion al servidor
$consulta=("SELECT * FROM ");
$resultadi=mysql_query($consulta,$conexion);
$cont=0;
while($fil=mysql_fetch_array($resultado)){
//esto me ira buscando registros por registros entonces aplicamos el if else
if($_POST["usuario"]==$fila['usrlogin'] and $_POST["clave"]==$fila['usrclave'])
{cont++;}
}
mysql_close ($conexion);

//se supone que no ahy registros duplicados y si los encuntra el valor sera simpre 1
if ($cont==1)
{
header("Location:menu.php");}
else
{ echo "EL USUARIO O LA CLAVE NO SON VALIDOS";}

?>


saludos yo asi lo implementaria un saludo
Esto no es adecuado , debido a que haces una consulta a toda la tabla e imaginate que la tabla tenga miles de registros, supongo no sera el caso pero si ese fuera no es adecuado ya que tendrias que recorrer todos los registros del resultado de la consulta, cuando realmente el SQL lo deberias usar para encontrar las coincidencias en el menor tiempo posible, y para este caso la coincidencia unica,
Para lo cual deberias usar llaves primarias en la tabla de usuario para evitar duplicidades en el nombre de usuario, y asi al realizar la busqueda tengas como resultado un solo registro que correspondes mas o menos exactamente al usuario que estas logueando
digo mas o menos ya que aparte hay que cuidar la seguridad en las consultas sql ya que se podrian filtrar ciertos malandros, pero en fin acerca de esto de seguridad hay mucho por la red.

Pero en fin el tema era ver porque no te reconoce como user y pass validos , y eso es tan simple como que estas comparando variables diferentes
include("conexion.php");// esta linea hace la conexcion al servidor
$rst_usuarios=mysql_query("SELECT * FROM usuarios WHERE usrlogin='". $_POST["usuario"] ."' and usrclave='". $_POST["clave"] ."'",$conexion);
$num_registro=mysql_num_rows($rst_usuarios);
if ($num_registros>0)
// mostrar la pagina menu
header("Location:menu.php");
else
echo "EL USUARIO O LA CLAVE NO SON VALIDOS";
mysql_close ($conexion);
?>
como puedes ver agregaste una s de mas en la variable que comparaste
 
Arriba