Foros del Web » Programando para Internet » PHP »

Insertar consulta en login para traer un dato a la vez que realiza login y propagar

Estas en el tema de Insertar consulta en login para traer un dato a la vez que realiza login y propagar en el foro de PHP en Foros del Web. Hola, he desarrollado este sistema de login: Código PHP: <?php ob_start (); $host  =  "localhost" ;  // Host name  $username  =  "root" ;  // Mysql username  $password  =  "" ...
  #1 (permalink)  
Antiguo 14/08/2015, 14:14
 
Fecha de Ingreso: septiembre-2013
Mensajes: 76
Antigüedad: 11 años, 1 mes
Puntos: 0
Insertar consulta en login para traer un dato a la vez que realiza login y propagar

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,
); 
  #2 (permalink)  
Antiguo 14/08/2015, 15:19
Avatar de chronos682  
Fecha de Ingreso: febrero-2004
Ubicación: Tunja - Boyacá - Colombia
Mensajes: 627
Antigüedad: 20 años, 9 meses
Puntos: 69
Respuesta: Insertar consulta en login para traer un dato a la vez que realiza login y

Utiliza variables de sesión para propagar datos a través de todas las páginas.
__________________
Si te gustó la respuesta dale +1

HERNÁN G. SIABATO M.
[email protected]
  #3 (permalink)  
Antiguo 14/08/2015, 16:00
 
Fecha de Ingreso: septiembre-2013
Mensajes: 76
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: Insertar consulta en login para traer un dato a la vez que realiza login y

Me puedes hacer una propuesta Chronos para que lo vea visualmente, que es como lo entiendo mejor.
  #4 (permalink)  
Antiguo 14/08/2015, 16:11
Avatar de chronos682  
Fecha de Ingreso: febrero-2004
Ubicación: Tunja - Boyacá - Colombia
Mensajes: 627
Antigüedad: 20 años, 9 meses
Puntos: 69
Respuesta: Insertar consulta en login para traer un dato a la vez que realiza login y

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);
$row mysql_fetch_assoc($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"];
$_SESSION['id_usuario'] = $row ['id_usuario'];
header("location:login_success.php");
}
else {
echo 
"Wrong Username or Password";
}
ob_end_flush();
?>
Código PHP:
session_start();
$id   $_SESSION ['id_usuario']; 

Sería algo así. Trata de estudiar el código. Lo hice desde el celular entonces no se si esté bien escrito.

No es necesario estar haciendo consulta en cada página para ver usuario y contraseña, solo debes hacer un if después de session_start asi:

Código PHP:
Ver original
  1. If isset($_SESSION ['id_usuario'])
  2. {
  3. $id   = $_SESSION ['id_usuario'];
  4. //Aqui demas codigo
  5. }
  6. else
  7. {
  8. //No se ha hecho login volver a pagina login
  9. }
__________________
Si te gustó la respuesta dale +1

HERNÁN G. SIABATO M.
[email protected]

Última edición por chronos682; 14/08/2015 a las 16:18

Etiquetas: dato, login, mysql, propagar, select, sql, usuarios, vez
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 11:48.