我在使用$ _GET验证其网站所有者时遇到了问题。
我正在使用此代码检查用户ID是否已注册:
<?php
session_start();
include('scripts/db_connect.php');
if(isset($_SESSION['id'])){
$url_auth = $_GET['id'];
}else{
echo "no user found";
exit();
}
$sql = "SELECT * FROM table WHERE id='".$url_auth."'";
$query = $db->query($sql);
if($query->num_rows !=1){
header("Location: index.php");
exit();
我在读出$ _GET id时遇到问题。似乎出现了问题,我不知道为什么。当有人在浏览器中调用任何ID时,是否有其他方法可以检查用户注册?感谢。
答案 0 :(得分:1)
试试这种方式。
<?php
session_start();
include('scripts/db_connect.php');
$id=mysql_escape_string($_GET['id']); //Sanitized the variable to avoid SQL Injection attacks
$sql = "SELECT * FROM table WHERE id='".$id."'";
$query = $db->query($sql);
if($query->num_rows !=1){
header("Location: index.php");
exit();
}
else
{
$_SESSION["loggedIn"]="Success";
header("authenticationSuccess.php");
}
?>
现在在所有其他页面上检查此$_SESSION["loggedIn"]="Success"
以检查用户是否是正版。
评论的更改:
如果您认为$_GET
是问题所在,请尝试此操作。
<?php
session_start();
@extract($_GET);
include('scripts/db_connect.php');
$sql = "SELECT * FROM table WHERE id='".mysql_escape_string($id)."'";
$query = $db->query($sql);
if($query->num_rows !=1){
header("Location: index.php");
exit();
}
else
{
$_SESSION["loggedIn"]="Success";
header("authenticationSuccess.php");
}
?>