如何使他的个人资料的用户合法化?

时间:2012-03-15 19:55:40

标签: php authentication get

我在使用$ _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时,是否有其他方法可以检查用户注册?感谢。

1 个答案:

答案 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");
    }
    ?>