Hola estoy siguiendo los ejemplos de un libro pero al parecer
esta lineas no me hacen lo que deberia.
Alguien me podria orientar a donde esta el fallo en la consulta $query
$query = 'SELECT * FROM authorized_users ' ." WHERE name='$userid' " . " and password=sha1 ('$password')";
En el navegador no me da error pero me manda al if no registrado
cuando el user lo tengo registrado.
Un Saludo.
Prueba con:
$query = "SELECT * FROM authorized_users WHERE name='". $userid ."' and password='". sha1 ($password) ."'";
Y sino, sustituye = por LIKE
Gracias por responder JungleBoogie.
Pero sigue sin funcionar
Pongo El Code Completo por si se me pasa algo por alto
Database
create database auth;
use auth;
create table authorized_users (name varchar (20),
password varchar(40),
primary key (name)
);
insert into authorized_users values ('username', 'password');
insert into authorized_users values ('testuser', sha1('password'));
grant select on auth.*
to 'webauth'
identified by 'webauth';
flush privileges;
Code php
<?php
session_start();
if(isset($_POST['userid']) && isset($_POST['password']))
{
// si el usuario acaba de intantar conectarse
$userid = $_POST['userid'];
$password = $_POST['password'];
$db_conn = new mysqli('localhost', 'webauth', 'webauth', 'auth');
if(mysqli_connect_errno()) {
echo 'la conexion a la base de datos:' .mysqli_connect_errno();
exit();
}
$query = 'SELECT * FROM authorized_users ' ." WHERE name='$userid' " . " and password=sha1 ('$password')";
$result = $db_conn->query($query);
if($result->num_rows >0 )
{
//si esta en la base de datos registrar el id de usuario
$_SESSION['valid_user'] = $userid;
}
$db_conn->close();
}
?>
<html>
<body>
<h1>Home page</h1>
<?php
if(isset($_SESSION['valid_user']))
{
echo 'Usted esta registrado como: '.$_SESSION['valid_user'].'<br />';
echo '<a href="logout.php">Log out</a><br />';
}
else
{
if(isset($userid))
{
//si a intentando conectarse y no lo ha consegido
echo 'no se pudo iniciar la session en';
}
else
{
//todavía no han intentado conectarse o se han desconectado
echo 'no se ha logeado.<br />';
}
//proporcionar form para que se conecte
echo '<form method="post" action="authmain.php">';
echo '<table>';
echo '<tr><td>Userid:</td>';
echo '<td><input type="text" name="userid"></td></tr>';
echo '<tr><td>Password:</td>';
echo '<td><input type="password" name="password"></td></tr>';
echo '<tr><td colspan="2" align="center">';
echo '<input type="submit" value="Log in"></td></tr>';
echo '</table></form>';
}
?>
<br>
<a href="menbers_only.php">Menbers section</a>
</body>
</html>
Siempre me salta al if
if(isset($userid))
{
//si a intentando conectarse y no lo ha consegido
echo 'no se pudo iniciar la session en';
}
Un Saludo.
PS a mi me funciona...
User: testuser
Pass: password
CitarHome page
Usted esta registrado como: testuser
Pues Yo Utilizo la version mysql 5.0.67 y no funciona que version usas tu?
No Se si sera eso porque por mas que lo pruebo no rula.
Un Saludo
El problema no puede estar en MYSQL. Fijate si estas haciendo algo mal xD, quizás introduzca el password mal xD. Fíjate que tu navegador cree la cookie que contiene el ID de session.
Bueno Solucionado con el post que me posteo
JungleBoogie
No Se Como lo probe pero no funcionaba y hoy si.
Gracias a tod@s.
Un Saludo.