Para que m entiendas mejor; tengo 4 enlaces:
index - login - checklogin (esta página lo la ve el usuario) - enlace tras login success - ejercicio 1
En las páginas de "enlace tras login success" y en ejercicio 1, si propago la sesión usando este código:
Código PHP:
<?php session_start();
If isset($_SESSION ['id_usuario'])
{
$id = $_SESSION ['id_usuario'];
}
else
{
echo "no se ha hecho login para entrar."
};
?>
Me da este error: Parse error: syntax error, unexpected 'isset' (T_ISSET), expecting '(' in C:\xampp\htdocs\login_successconestilo.php on line 4 Si por el contrario uso esta otra forma: Código PHP:
<?php
session_start();
$id_usuario = $_SESSION['id_usuario'];
?>
Obtengo este error:
Notice: Undefined index: id_usuario in C:\xampp\htdocs\sesionstar.php on line 2
POR LO TANTO NO SÉ SI MI ERROR ESTA EN LA FORMA DE PROPAGAR EL id_usuario en session_start y/o también en la página de checklogin donde tras enviar el usuario el nombre de usuario y la contraseña, realizo una consulta de manera simultánea a la base de datos para traer el id_usuario y almacenarlo, para propagarlo en todas las páginas; lo adjunto aquí:
Código PHP:
<?php
ob_start();
$host = "localhost"; // Host name
$username = "root"; // Mysql username
$password = ""; // Mysql password
$db_name = "db1"; // 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'";
$id_usuario="SELECT id_usuario 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"];
$contrasena = $_SESSION["contrasena"];
$_SESSION['id_usuario'] = $row['id_usuario'];
header("location:login_successconestilo.php");
}
else {
echo "Wrong Username or Password";
}
ob_end_flush();
?>