как узаконить пользователя своего профиля? - PullRequest
0 голосов
/ 15 марта 2012

У меня проблема с $ _GET для аутентификации владельца его сайта.

я использую этот код, чтобы проверить, зарегистрирован ли идентификатор пользователя или нет:

<?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. Кажется, что-то идет не так, и я не знаю почему. есть ли другой способ проверить регистрацию пользователей, когда кто-то вызывает какой-либо идентификатор в браузере? спасибо.

1 Ответ

1 голос
/ 16 марта 2012

Попробуйте так.

<?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");
    }
    ?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...