안녕하세요 여러분, 제 첫 질문입니다. 잘못 설명하면 나를 죽이지 마시기 바랍니다. 데이터베이스가있는 사용자 계정 시스템을 만들려고합니다. 다른 사용자가 로그인하여 자신의 계정 ID에서 URL을 변경하면 다른 사람이 로그인 할 때 문제가 발생합니다. index.php? us = 7 to 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);
?>
는이 내가 문제가 병이 가장 greatful 할 위치를 누군가가 저를 지적 할 수있는 경우 세션
if(!isset($_SESSION["usuarioactual"]))
{
header("Location:referidos_login.php");
die();
}
을 확인하는 다른 모든 페이지에 넣어 코드입니다! 감사합니다. .
* sidenote : * 더 이상 사용되지 않는'mysql_ * '함수 사용을 중단하십시오. 대신에 MySQLi 또는 PDO를 사용하십시오. – Raptor
$ _SESSION-array를 확인하기 전에 다른 모든 파일에서 세션을 시작해야합니다! –
및 코드는 SQL 주입이 적용됩니다. 먼저 입력을 정리하십시오! – Raptor