大家好,這是我的第一個問題,所以請不要殺我,如果我解釋自己錯了。 我試圖讓一個用戶帳戶系統與數據庫,問題是,如果另一個用戶登錄,當有人登錄,並從他的帳戶ID更改網址:我們的index.php = 7 的index.php?我們= 270他/她可以進入其他用戶的VIP頁面。 這是登錄控制代碼。用戶帳戶系統PHP
<?
//incluir librerias
include_once "funciones/funciones_BD.php";
include_once "constantes/constantes.php";
//abrir BD
Abrir_BD($link,$Servidor,$Usuario,$Clave,$BD);
$id = mysql_query("SELECT xidusuario FROM tblreferidos_usuarios WHERE xemail='".htmlentities($_REQUEST["email"])."'",$link);
$xid = mysql_fetch_row($id);
$usuario = mysql_query("SELECT xemail FROM tblreferidos_usuarios WHERE xemail='".htmlentities($_REQUEST["email"])."'",$link);
$Nusuario = mysql_num_rows($usuario);
//Si existe el usuario, validamos también la contraseña ingresada y el estado del usuario…
if($Nusuario != 0){
$clave = mysql_query("SELECT xpass FROM tblreferidos_usuarios WHERE xestado=1 AND xemail='".htmlentities($_REQUEST["email"])."' AND xpass='".htmlentities($_REQUEST["clave"])."'",$link);
$Nclave = mysql_num_rows($clave);
//Si el usuario y clave ingresado son correctos (y el usuario está activo en la BD), creamos la sesión del mismo.
if($Nclave != 0){
session_start();
//Guardamos dos variables de sesión que nos auxiliará para saber si se está o no "logueado" un usuario
$_SESSION["autentica"] = "SI";
$_SESSION["usuarioactual"] = $usuario; //nombre del usuario logueado.
//Direccionamos a nuestra página principal del sistema.
$us=$_REQUEST["email"];
header ("Location: referidos_index.php?us=$xid[0]");
}
else{
echo"<script>alert('La contrase\u00f1a del usuario no es correcta.')
window.location.href=\"referidos_login.php?\"</script>";
}
}else{
echo"<script>alert('El usuario no existe.');window.location.href=\"referidos_login.php\" </script>";
}
mysql_close($link);
?>
,這就是我把所有其他網頁,查看會議
if(!isset($_SESSION["usuarioactual"]))
{
header("Location:referidos_login.php");
die();
}
如果有人能指出我哪裏出了問題是生病是最感激的代碼! 謝謝。
*旁註:*停止使用不推薦的'mysql_ *'函數。改用MySQLi或PDO。 – Raptor
您還必須在檢查$ _SESSION數組之前在其他每個文件中啓動會話! –
和您的代碼受SQL注入。首先清理你的輸入! – Raptor