Ver Mensaje Individual
  #5 (permalink)  
Antiguo 11/08/2015, 01:41
jesus_spanishteacher
 
Fecha de Ingreso: septiembre-2013
Mensajes: 76
Antigüedad: 13 años
Puntos: 0
Respuesta: Almacenar información de usuario específico

Hola compañero, creo que te refieres a esto de acuerdo con el manual php:

PÁGINA 1.
Código PHP:

<?php
// pagina1.php

session_start();

echo 
'Bienvenido a la página #1';

$_SESSION['color']  = 'verde';
$_SESSION['animal'] = 'gato';
$_SESSION['time']   = time();

// Trabajar si la cookie de sesión fue aceptada
echo '<br /><a href="pagina2.php">página 2</a>';

// O quizás pasar el id de sesión, si fuera necesario
echo '<br /><a href="pagina2.php?' . SID . '">página 2</a>';
?>
página 2

Código PHP:

<?php
// pagina2.php

session_start();

echo 
'Bienvenido a la página #2<br />';

echo 
$_SESSION['color'];  // verde
echo $_SESSION['animal']; // gato
echo date('Y m d H:i:s', $_SESSION['time']);

// Puede querer usar SID aquí, como hicimos en pagina1.php
echo '<br /><a href="pagina1.php">página 1</a>';
?>

Si aplico eso, en mi código de la página de checklogin cuando entra el usuario deberé añadir sesion_start déspués de ob_start(); el código que tengo de mi página de login de inicio es este:

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();
?>

Y por otro lado para conseguir el id del usuario que está en la tabla nº1 de phpmyadmin pero que no viene de la sesión anterior supongo que haría una consulta a phpmyadmin, tipo:

Código PHP:
<?php

//conectar al servidor


$connect = mysql_connect("localhost", "root", "") ; 

if (!
$connect) {
die (
"Can not connect: " . mysql_error () ) ; 
}


//conectar a la base de datos


mysql_select_db("platform", $connect) ; 

$sql = "SELECT * FROM datos_usuarios";


//query la base de datos
$myData = mysql_query($sql, $connect); 
e
while ($record = mysql_fetch_array ($myData)) {
echo  . 
$record ['idusuario'] .; 

} ;

mysql_close($connect) ; 
//fech de reusultados y convertirlos a través de un array

?>
¿Sería esto correcto o cómo y donde iría la consulta del id_usuario a la base de datos?

Por otro lado, y buscando alternativas a realizarlo así:

He estado indagando cómo ir almacenando los datos para mantener abierta la sesión de un usuario al pasar de una página a otra y he encontrado varias posibilidades, a ver si me aconsejáis si alguna de esas es mejor:

- usar: function.session-set-save-handler.


- Estoy abierto a otras propuestas, dejo el tema abierto para que me propongan alguna alternativa que consideren mejor.


Un saludo y gracias!