Hola, he desarrollado este sistema de login:
Código PHP:
<?php
ob_start();
$host = "localhost"; // Host name
$username = "root"; // Mysql username
$password = ""; // Mysql password
$db_name = "platform"; // Database name
$tbl_name = "datos_usuarios"; // Table name
// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
// Define $myusername and $mypassword
$nombreusuario=$_POST['nombreusuario'];
$contrasena=$_POST['contrasena'];
// To protect MySQL injection (more detail about MySQL injection)
$nombreusuario = stripslashes($nombreusuario);
$contrasena = stripslashes($contrasena);
$nombreusuario = mysql_real_escape_string($nombreusuario);
$contrasena = mysql_real_escape_string($contrasena);
$sql="SELECT * FROM datos_usuarios WHERE nombreusuario='$nombreusuario'and contrasena='$contrasena'";
$result=mysql_query($sql);
// Mysql_num_row is counting table row
$count = mysql_num_rows ($result);
// If result matched $myusername and $mypassword, table row must be 1 row
if($count==1){
// Register $myusername, $mypassword and redirect to file "login_success.php"
$nombreusuario = $_SESSION["nombreusuario"];
$contraseña = $_SESSION["contrasena"];
header("location:login_success.php");
}
else {
echo "Wrong Username or Password";
}
ob_end_flush();
?>
El caso es que para páginas posteriores necesito traer un dato, que es el id_usario; entonces quiero saber si es posible traerlo al comparar el nombreusuario y la contrasena de usuario, o si por el contrario podría hacer una consulta estándar, tras el código del login, para obtenerlo y propagarlo con el nombre usuario y la contrasena; como esta:
Código PHP:
<?php
//consulta para traer id del usuario.
$connect = mysql_connect("localhost", "root", "") ;
if (!$connect) {
die ("Can not connect: " . mysql_error () ) ;
}
//conectar a la base de datos
mysql_select_db("nombredb", $connect) ;
$sql="SELECT id_usuario FROM datos_usuarios
WHERE nombreusuario='$nombreusuario'and contrasena='$contrasena'";
$num_resultados=mysqli_num_rows($id_usuario)
$id_usuario = $_SESSION["Id_usuario"];
?>
Por otro lado, tengo dudas para propagar la sesión de tal forma que el usuario no tenga que estar continuamente haciendo logs; el código que tengo es ese a ver si me pueden asesorar:
Código PHP:
session_start();
$id = ' ';
$user = '';
$pass = sha1('');
$_SESSION = array(
'id_usuario' => $id_usuario,
'nombreusuario' => $nombreusuario,
'contrasena' => $contrasena,
);