Foros del Web » Programando para Internet » PHP »

comprobar usuario y contraseña en una tabla de mysql con PHP

Estas en el tema de comprobar usuario y contraseña en una tabla de mysql con PHP en el foro de PHP en Foros del Web. Hola buenas tardes, necesito ayuda con mi proyecto de la universidad, tengo el siguiente codigo Código PHP: <?PHP $conexion  =  mysql_connect ( "localhost" ,  "empresas" ...
  #1 (permalink)  
Antiguo 31/07/2009, 12:05
Avatar de phercin  
Fecha de Ingreso: febrero-2009
Ubicación: Pachuca Hidalgo
Mensajes: 150
Antigüedad: 15 años, 9 meses
Puntos: 1
Pregunta comprobar usuario y contraseña en una tabla de mysql con PHP

Hola buenas tardes, necesito ayuda con mi proyecto de la universidad, tengo el siguiente codigo

Código PHP:
<?PHP
$conexion 
mysql_connect("localhost""empresas""empresas");
            
mysql_select_db("dgtv"$conexion);
        
$usuario $_POST["usuario"];
$password $_POST["password"];
        
        
$busquedamysql_query("select usuario, password from empresas where usuario='$usuario' and password='$password'");
$result=mysql_num_rows($busqueda);
        
    if (
$result=1)
    { 
    
    
?>
    <?PHP
    session_start
();
    
$_SESSION[empresas] = true;
    
?>
    
    <script type="text/javascript">
    location.href="form_ingresar_vacantes.php";
    </script>

    <?
    



    else
    {

    
?>
    <script type="text/javascript">
    location.href="msj_error_empresas.php";
    </script>

    <? 
    
    
}        


?>
Ya intente modificar el If como:

Código PHP:
if (mysql_num_rows($result)==1
pero sigue mandando a la pagina de msj de error. o bien, me permite escribir lo que sea en usuario y contraseña y aun asi inicia la sesion. alguien me puede decir que estoy haciendo mal? Gracias,,,,

Última edición por phercin; 31/07/2009 a las 12:06 Razón: error de dedo
  #2 (permalink)  
Antiguo 31/07/2009, 12:09
Avatar de jhonnyfernando  
Fecha de Ingreso: abril-2006
Ubicación: Bogotá - Colombia
Mensajes: 103
Antigüedad: 18 años, 7 meses
Puntos: 1
Respuesta: comprobar usuario y contraseña en una tabla de mysql con PHP

ya, tiene un error en el if

Código PHP:
 if ($result=1//debe ser doble igual para que sea comparación y no asignacion 
seria

Código PHP:
 if ($result==1
__________________
Gracias por los puntos!

Saludes ;-)
  #3 (permalink)  
Antiguo 31/07/2009, 12:14
Avatar de phercin  
Fecha de Ingreso: febrero-2009
Ubicación: Pachuca Hidalgo
Mensajes: 150
Antigüedad: 15 años, 9 meses
Puntos: 1
De acuerdo Respuesta: comprobar usuario y contraseña en una tabla de mysql con PHP

Gracias por responder.
Pues me manda a las paginas que estan en el IF....

Si escribo nombres q no estan dados de alta en la tabla de SQL aun así entra al sistema abriendo sesion,,,, esto cuando dejo el if como:
Código PHP:
if ($result=1
si lo modifico a:
Código PHP:
if (mysql_num_rows($result)==1
me manda a la pagina: msj_error_empresas.php redirigida en el ELSE. aunque si exista el usuario en la tabla de mysql...

Algo que este haciendo mal? ya no le entendi a mi codigo, ya me revolvi,,, muchas gracias...
  #4 (permalink)  
Antiguo 31/07/2009, 12:17
Avatar de phercin  
Fecha de Ingreso: febrero-2009
Ubicación: Pachuca Hidalgo
Mensajes: 150
Antigüedad: 15 años, 9 meses
Puntos: 1
De acuerdo Respuesta: comprobar usuario y contraseña en una tabla de mysql con PHP

Cita:
Iniciado por jhonnyfernando Ver Mensaje
ya, tiene un error en el if

Código PHP:
 if ($result=1//debe ser doble igual para que sea comparación y no asignacion 
seria

Código PHP:
 if ($result==1
Gracias. Ya lo cambie pero me sigue mandando a la pagina: msj_error_empresas.php
  #5 (permalink)  
Antiguo 31/07/2009, 12:34
Avatar de jhonnyfernando  
Fecha de Ingreso: abril-2006
Ubicación: Bogotá - Colombia
Mensajes: 103
Antigüedad: 18 años, 7 meses
Puntos: 1
De acuerdo Respuesta: comprobar usuario y contraseña en una tabla de mysql con PHP

el otro error que veo es que en $_SESSION[empresa] no lleva comillas deberia ser $_SESSION["empresa"] y lo otro es que pone

Código PHP:
if($result == 1
pero en este caso pueden haber más de dos personas en la base de datos identificados en el mismo usuario y contraseña y estar diferenciados por el id, entonces chequea eso


pruebalo de esta forma

Código PHP:
<?php
    $conexion 
mysql_connect("localhost""empresas""empresas");
    
mysql_select_db("dgtv"$conexion);
    
    
$usuario $_POST["usuario"];
    
$password $_POST["password"];
    
    
$busqueda "SELECT usuario, password from empresa WHERE usuario = '%s' AND password = '%s'";
    
$busqueda sprintf($busqueda$usuario$password);
    
$busqueda mysql_query($busqueda$conexion);
    
    
$result mysql_num_rows($busqueda);
    
    if(
$result >= 1){
        
session_start();
        
$_SESSION["empresas"] = true;
        
header("Location: form_ingresar_vacantes.php");
    } 
    else{
        
header("Location: msj_error_empresas.php");
    }
?>
__________________
Gracias por los puntos!

Saludes ;-)
  #6 (permalink)  
Antiguo 31/07/2009, 12:49
Avatar de phercin  
Fecha de Ingreso: febrero-2009
Ubicación: Pachuca Hidalgo
Mensajes: 150
Antigüedad: 15 años, 9 meses
Puntos: 1
De acuerdo Respuesta: comprobar usuario y contraseña en una tabla de mysql con PHP

Cita:
Iniciado por jhonnyfernando Ver Mensaje
el otro error que veo es que en $_SESSION[empresa] no lleva comillas deberia ser $_SESSION["empresa"] y lo otro es que pone

Código PHP:
if($result == 1
pero en este caso pueden haber más de dos personas en la base de datos identificados en el mismo usuario y contraseña y estar diferenciados por el id, entonces chequea eso


pruebalo de esta forma

Código PHP:
<?php
    $conexion 
mysql_connect("localhost""empresas""empresas");
    
mysql_select_db("dgtv"$conexion);
    
    
$usuario $_POST["usuario"];
    
$password $_POST["password"];
    
    
$busqueda "SELECT usuario, password from empresa WHERE usuario = '%s' AND password = '%s'";
    
$busqueda sprintf($busqueda$usuario$password);
    
$busqueda mysql_query($busqueda$conexion);
    
    
$result mysql_num_rows($busqueda);
    
    if(
$result >= 1){
        
session_start();
        
$_SESSION["empresas"] = true;
        
header("Location: form_ingresar_vacantes.php");
    } 
    else{
        
header("Location: msj_error_empresas.php");
    }
?>


Gracias, ya hice las modificaciones pero me sale el siguiente msj:


Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\code_login_empresas.php on line 12

Warning: Cannot modify header information - headers already sent by (output started at C:\AppServ\www\code_login_empresas.php:12) in C:\AppServ\www\code_login_empresas.php on line 20


Gracias por tu ayuda... Saludos.



P.D. esas lineas son

12:
$result = mysql_num_rows($busqueda);


20:
header("Location: msj_error_empresas.php");

Última edición por phercin; 31/07/2009 a las 12:51 Razón: error de numeracion
  #7 (permalink)  
Antiguo 31/07/2009, 14:06
Avatar de phercin  
Fecha de Ingreso: febrero-2009
Ubicación: Pachuca Hidalgo
Mensajes: 150
Antigüedad: 15 años, 9 meses
Puntos: 1
Respuesta: comprobar usuario y contraseña en una tabla de mysql con PHP

Cita:
Iniciado por phercin Ver Mensaje
Gracias, ya hice las modificaciones pero me sale el siguiente msj:


Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\code_login_empresas.php on line 12

Warning: Cannot modify header information - headers already sent by (output started at C:\AppServ\www\code_login_empresas.php:12) in C:\AppServ\www\code_login_empresas.php on line 20


Gracias por tu ayuda... Saludos.



P.D. esas lineas son

12:
$result = mysql_num_rows($busqueda);


20:
header("Location: msj_error_empresas.php");


Alguien puede ayudarme? por favor?
  #8 (permalink)  
Antiguo 31/07/2009, 15:13
Avatar de dobermann71  
Fecha de Ingreso: julio-2009
Ubicación: Caracas Venezuela
Mensajes: 7
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: comprobar usuario y contraseña en una tabla de mysql con PHP

TE REMITO TRES PAGINAS QUE ILUSTRAN ESO DE HACER LOGIN ESPERO QUE TE AYUDE Y PUEDAS ADAPTARLA FACILMENTE:

EL FORMULARIO DE ENTRADA ESTA EN AL PAGINA LLAMADA barrera1.php
Cita:
<head>
<title>barrera1</title>
</head>

<body bgcolor="#FFFFFF">
<p>&nbsp;</p>
<div align="center">
<table border="0" cellpadding="0" cellspacing="0" width="50%" bordercolor="#0000FF" bordercolorlight="#0000FF" bordercolordark="#0000FF" bgcolor="#808080" style="border-collapse: collapse">
<tr>
<td width="100%" align="left">
<b>Introduzca usuario y contraseña</b></td>
</tr>
<tr>
<td width="100%" align="center">
<center>
<div align="center">
<table border="1" cellpadding="0" cellspacing="4" width="90%" bgcolor="#C0C0C0">
<tr>
<td>
<FORM ACTION="barrera2.php" METHOD="post">
<table border="0" width="90%">
<tr>
<td align="right" valign="bottom">
<font size="2"><b>Cédula</b></font>
</td>
<td align="left" valign="bottom">
<font size="2"><INPUT type="text" NAME="cedula" SIZE="10" maxlength="10"></font>
</td>
</tr>
<tr>
<td align="right" valign="bottom">
<font size="2"><b>Clave</b></font>
</td>
<td align="left" valign="bottom">
<font size="2"><INPUT Type="password" NAME="clave" SIZE="20" maxlength="20"></font>
</td>
</tr>
<tr>
<td align="center" colspan="2" valign="bottom">
<font size="1"><INPUT TYPE="Submit" VALUE="Ingresar"></font>
</td>
</tr>
</table>
</FORM>
</td>
</tr>
</table>
</div>
</td>
</tr>
<tr>
<td width="100%" align="center">
<p style="margin-top: 1; margin-bottom: 1">&nbsp;</p>
</td>
</tr>
</table>
</div>
</BODY>
</html>
Aca en barrera2.php se realiza la verificación del usuario y la contraseña. Debes cambiar la consulta adaptada a tus tablas y campos.
Cita:
<?php
session_start();
include("conexion.php");
$cedula=$_POST['cedula'];
$clave=$_POST['clave'];
if(!noEsVacio($cedula))
mensaje2("La cedula no puede estar vacia");
else
if(!noEsVacio($clave))
mensaje2("La clave no puede estar vacia");
else
if(!esEntero($cedula,1))
mensaje2("La cédula debe ser un numero entero");
else
{
$pasaced=0;
$pasacla=0;
$conex=conectar();
$result = seleccionar1("SELECT tu.cedula,tu.nombre,tu.clave,tr.nombre,tu.iddepart amento from tusuarios tu inner join troles tr on tu.idrol = tr.idrol",$conex);
while ($row = mysql_fetch_row($result)){
if ($cedula-$row[0]==0)
{
$pasaced=1;
if (($cedula-$row[0]==0) and ($clave==$row[2]))
{
$pasacla=1;
$nombre=$row[1];
$rol=$row[3];
$iddepartamento=$row[4];
}
}
}
if ($pasaced==0)
mensaje2("La cedula no existe");
else
if ($pasacla==0)
mensaje2("Clave incorrecta");
else
{
$_SESSION["scedula"] = $cedula;
$_SESSION["siddepartamento"] = $iddepartamento;
$_SESSION["snombre"] = $nombre;
$_SESSION["sclave"] = $clave;
$_SESSION["srol"] = $rol;
$_SESSION["slogeado"] = "si";
redireccionar('entrada.php');
}
cerrarconexion();
}
?>
conexion.php ES LA PGINA PARA HACER LA CONEXION. Debes cambiar el valor de la variable de base de datos y apuntar a la tuya.
<?php
function conectar()
{
$base_de_datos = "bdinventario";
$db_usuario = "root";
$db_password = "";
if (!($link = mysql_connect("localhost", $db_usuario, $db_password)))
{
echo "Error conectando a la base de datos.";
exit();
}
if (!mysql_select_db($base_de_datos, $link))
{
echo "Error seleccionando la base de datos.";
exit();
}
return $link;
}
function cerrarconexion()
{
mysql_close();
}
?>
  #9 (permalink)  
Antiguo 02/08/2009, 14:08
Avatar de phercin  
Fecha de Ingreso: febrero-2009
Ubicación: Pachuca Hidalgo
Mensajes: 150
Antigüedad: 15 años, 9 meses
Puntos: 1
Respuesta: comprobar usuario y contraseña en una tabla de mysql con PHP

Cita:
Iniciado por dobermann71 Ver Mensaje
TE REMITO TRES PAGINAS QUE ILUSTRAN ESO DE HACER LOGIN ESPERO QUE TE AYUDE Y PUEDAS ADAPTARLA FACILMENTE:

EL FORMULARIO DE ENTRADA ESTA EN AL PAGINA LLAMADA barrera1.php


Aca en barrera2.php se realiza la verificación del usuario y la contraseña. Debes cambiar la consulta adaptada a tus tablas y campos.


conexion.php ES LA PGINA PARA HACER LA CONEXION. Debes cambiar el valor de la variable de base de datos y apuntar a la tuya.
<?php
function conectar()
{
$base_de_datos = "bdinventario";
$db_usuario = "root";
$db_password = "";
if (!($link = mysql_connect("localhost", $db_usuario, $db_password)))
{
echo "Error conectando a la base de datos.";
exit();
}
if (!mysql_select_db($base_de_datos, $link))
{
echo "Error seleccionando la base de datos.";
exit();
}
return $link;
}
function cerrarconexion()
{
mysql_close();
}
?>


Muchas gracias amigo, espero que si me funcione ahora si,,, te agradezco, saludos...
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 14:10.