Foros del Web » Programando para Internet » PHP »

Autentificación de usuarios

Estas en el tema de Autentificación de usuarios en el foro de PHP en Foros del Web. Hola, queria incluir el código para la autentificación de usuarios, después de haber buscado por todo google lo entiendo casi todo. Spoiler: Cita: <html> <head> ...
  #1 (permalink)  
Antiguo 03/06/2009, 10:13
Avatar de QuezTal  
Fecha de Ingreso: enero-2009
Mensajes: 53
Antigüedad: 15 años, 3 meses
Puntos: 0
Autentificación de usuarios

Hola, queria incluir el código para la autentificación de usuarios, después de haber buscado por todo google lo entiendo casi todo.
Spoiler:
Cita:
<html>
<head>
<style type="text/css">
body {background-color:#000000; color:#FF6600}


</style>
</head>

<body>
<?php
$name=$_POST['name'];
$password=$_POST['password'];
if (!isset($_POST['name']) && !isset ($_POST['password'])) {
?>
<h2> Esta p&aacute;gina es secreta </h2>
<form method="post" action="secretdb.php">
Username:<br>
<input type="text" name="name">
<br>
Password: <br>
<input type="password" name="password">
<br>
<input type="submit" value="Enviar informacion">
</form>
<?php
}else{
$mysql=mysql_connect("localhost","USUARIODB","PASS WORDDB");
if(!$mysql)
{
echo "no es correcta la conexion";
}
$selected=mysql_select_db("BASE_DE_DATOS",$mysql);
if(!$mysql)
{
echo "error base de datos";
}
// query the database to see if there is a record which matches
$query = "select count(*) from MITABLAwhere
name = '$name' and
password = '$password'";

$result = mysqli_query( $mysql, $query );
if(!$result)

{
echo "Por lo visto la cagaste";
exit;
}
$row=mysqli_fetch_row($result);
$count=$row[0];
if ($count > 0) {
echo "Usuario y contraseña CORRECTOS";
}else{
echo "Usuairo o Contraseña INCORRECTOS";
}
}
?>

</body>
</html>
Me da error en la línea 44; osea en esta:
Spoiler:

Cita:
$result = mysqli_query( $mysql, $query );
No entiendo porque......

Lo cierto es que esta parte del código no la entiendo. ¿Podrían decirme que tengo que editar?
También he provado quitando las "i" de mysqli_query

Este código es de un libro que me compre un saludo.
  #2 (permalink)  
Antiguo 03/06/2009, 11:20
Avatar de Avatar810  
Fecha de Ingreso: agosto-2007
Ubicación: Por rumbos Regios
Mensajes: 485
Antigüedad: 16 años, 8 meses
Puntos: 23
Respuesta: Autentificación de usuarios

Primero te sugiero que estructures tu codigo

Aqui te paso una "limpieza" de tu codigo

Código PHP:
<html>
<head>
<style type="text/css">
    body {background-color:#000000; color:#FF6600}
</style>
</head>
<body>
<?php
$name
=$_POST['name'];
$password=$_POST['password'];
if (!isset(
$_POST['name']) && !isset ($_POST['password'])) 
{
    
?>
    <h2> Esta p&aacute;gina es secreta </h2>
    <form method="post" action="secretdb.php">
        Username:<br>
        <input type="text" name="name">
        <br>
        Password: <br>
        <input type="password" name="password">
        <br>
        <input type="submit" value="Enviar informacion">
    </form>
    <?php
}
else
{
    
$mysql=mysql_connect("localhost","USUARIODB","PASS WORDDB");
    
mysql_select_db("BASE_DE_DATOS",$mysql);
    if(
mysql_error($mysql))
    {
        echo 
"error base de datos";
    }
    
// query the database to see if there is a record which matches
    
$query "select 1 from MITABLA where name='$name' and password='$password'";
    
$result mysql_query($query$mysql);
    if(
mysql_num_rows($result)>0)
        echo 
"Usuario y contraseña CORRECTOS";
    else
        echo 
"Usuairo o Contraseña INCORRECTOS";
}
?>
</body>
</html>
Que dudas tienes?
el error es que los parametros estaban al revez...
sin afan de ofender, tira ese libro...
__________________
Una demo siempre funcionará correctamente hasta que toque algo tu (hasta ahora) cliente.
Avatar810
  #3 (permalink)  
Antiguo 03/06/2009, 11:54
 
Fecha de Ingreso: noviembre-2007
Mensajes: 237
Antigüedad: 16 años, 5 meses
Puntos: 4
$result = mysqli_query( $mysql, $query );


creo que tienes una i de mas en mysqli_query

sorry, no lei lo ultimo que decias abajo, sobre la i :(

Última edición por GatorV; 03/06/2009 a las 15:13
  #4 (permalink)  
Antiguo 03/06/2009, 13:40
Avatar de QuezTal  
Fecha de Ingreso: enero-2009
Mensajes: 53
Antigüedad: 15 años, 3 meses
Puntos: 0
Cita:
Iniciado por oscar2h Ver Mensaje
sorry, no lei lo ultimo que decias abajo, sobre la i :(
Vaya, gracias por limpiarme el código!

Ahora si funciona y bien, es básico pero me habia estancado ahí y me estaba deseperando.....

Dios te bendiga amigo, gracias ; )

Perdón, una última cosita.
Me gustaria redirigirme a otro código .php en vez de que me ponga Usuario y contraseña correcto.

He provado :

Cita:
if(mysql_num_rows($result)>0)

echo "Usuario y contrase&ntilde;a CORRECTOS";
header("Location: QuezTal.php");

else
echo "Usuairo o Contrase&ntilde;a INCORRECTOS";
}
Pero me da error de sintaxis, se que esto es muy básico, pero no encuentro nada más que me valga...
¿Podrían orientarme un poco por favor?

saludos ;) y disculpen las molestias

Perdon, edite el post borrenlo si eso disculpas!

Última edición por GatorV; 03/06/2009 a las 15:14
  #5 (permalink)  
Antiguo 03/06/2009, 15:35
 
Fecha de Ingreso: abril-2009
Ubicación: Cuba
Mensajes: 54
Antigüedad: 15 años
Puntos: 2
Respuesta: Autentificación de usuarios

Saludos.

Te quedaría así:

Código PHP:
if(mysql_num_rows($result)>0)
{
header("Location:queztal.php");
exit;
}
else
{
echo 
"Usuario o Contrase&ntilde;a INCORRECTOS";
}

antes del header no puedes poner ningun echo, además no hace falta porque al redireccionarte, no se va a leer nada ya que va para otra página.

Saludos y espero que así te funcione.
  #6 (permalink)  
Antiguo 03/06/2009, 15:44
Avatar de Avatar810  
Fecha de Ingreso: agosto-2007
Ubicación: Por rumbos Regios
Mensajes: 485
Antigüedad: 16 años, 8 meses
Puntos: 23
Respuesta: Autentificación de usuarios

tenias correcta la idea solo se te fue un detalle
La condicion para usar header es no haber enviado nada a pantalla anteriormente (ni las cabeceras de html)

Sugiero este codigo

Código PHP:
<?
if (isset($_POST['enviar'])) 
{
    
$error="";
    
$name=$_POST['name'];
    
$password=$_POST['password'];

    
$connection mysql_connect("localhost""USUARIODB""PASS WORDDB") or die ("Unable to connect to server"); 
    
$db mysql_select_db("BASE_DE_DATOS"$connection) or die ("Unable to select database");  

    
// query the database to see if there is a record which matches
    
$query "select 1 from MITABLA where name='$name' and password='$password'";
    
$result mysql_query($query$connection) or die ("Query error");
    if(
mysql_num_rows($result)>0)
        
header("Location: QuezTal.php");
    else
        
$error="Usuario o Contraseña INCORRECTOS<br /><br />";
}
else
{
    
?>
    <html>
    <head>
    <style type="text/css">
        body {background-color:#000000; color:#FF6600}
    </style>
    </head>
    <body>
        <h2> Esta p&aacute;gina es secreta </h2>
        <?= $error?>
        <form method="post" action="secretdb.php">
            Username:<br>
            <input type="text" name="name">
            <br>
            Password: <br>
            <input type="password" name="password">
            <br>
            <input type="submit" name="enviar" value="Enviar informacion">
        </form>
    </body>
    </html>
    <?
}
?>
__________________
Una demo siempre funcionará correctamente hasta que toque algo tu (hasta ahora) cliente.
Avatar810
  #7 (permalink)  
Antiguo 04/06/2009, 08:44
Avatar de QuezTal  
Fecha de Ingreso: enero-2009
Mensajes: 53
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Autentificación de usuarios

Cita:
Iniciado por Avatar810 Ver Mensaje
tenias correcta la idea solo se te fue un detalle
La condicion para usar header es no haber enviado nada a pantalla anteriormente (ni las cabeceras de html)

Sugiero este codigo

Código PHP:
<?
if (isset($_POST['enviar'])) 
{
    
$error="";
    
$name=$_POST['name'];
    
$password=$_POST['password'];

    
$connection mysql_connect("localhost""USUARIODB""PASS WORDDB") or die ("Unable to connect to server"); 
    
$db mysql_select_db("BASE_DE_DATOS"$connection) or die ("Unable to select database");  

    
// query the database to see if there is a record which matches
    
$query "select 1 from MITABLA where name='$name' and password='$password'";
    
$result mysql_query($query$connection) or die ("Query error");
    if(
mysql_num_rows($result)>0)
        
header("Location: QuezTal.php");
    else
        
$error="Usuario o Contraseña INCORRECTOS<br /><br />";
}
else
{
    
?>
    <html>
    <head>
    <style type="text/css">
        body {background-color:#000000; color:#FF6600}
    </style>
    </head>
    <body>
        <h2> Esta p&aacute;gina es secreta </h2>
        <?= $error?>
        <form method="post" action="secretdb.php">
            Username:<br>
            <input type="text" name="name">
            <br>
            Password: <br>
            <input type="password" name="password">
            <br>
            <input type="submit" name="enviar" value="Enviar informacion">
        </form>
    </body>
    </html>
    <?
}
?>
De acuerdo, solucionado Pues! Muchas gracias Chicos!
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 02:12.