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!