У меня постоянно возникают жалобы на то, что пользователи вошли как друг в друга. Они даже могут редактировать свои профили и публиковать их как это ... это, очевидно, огромная проблема. Люди, которые даже не зарегистрированы, посещают сайт и видят, что они вошли как другие люди.
Это происходит в Safari и Firefox
Мои сеансы устанавливаются, когда люди входят в систему, используя систему $_SESSION['variable'] = name;
, поэтому довольно стандартно. Сеансы являются перекрестными поддоменами с использованием:
ob_start();
session_set_cookie_params(0, '/', '.subverb.net');
session_start();
в заголовке всех моих страниц.
У меня есть iframe
, который содержит часть чата сайта, которая также содержит тот же заголовок
Я не знаю, какую еще информацию я могу дать, поэтому, пожалуйста, спросите. Мне действительно нужно это отсортировать, но я не уверен, в чем проблема!
Спасибо
В ответ на нижеследующее:
Стандартный сценарий входа взят из учебника Ларри Уллмана:
if ($un && $p) { // If everything's OK.
// Query the database.
$query = "SELECT member_id, member_firstname, member_type, username FROM member WHERE (username='$un' AND password=SHA('$p')) AND active IS NULL";
$result = mysqli_query ($dbc, $query) or trigger_error ("query: $query\n<br />MySQL Error: " . mysqli_error($query));
if (@mysqli_num_rows($result) == 1) { // A match was made.
// Register the values & redirect.
$row = mysqli_fetch_array($result, MYSQLI_ASSOC);
mysqli_free_result($result);
$_SESSION['member_id'] = $row['member_id'];
$_SESSION['first_name'] = $row['member_firstname'];
$_SESSION['member_type'] = $row['member_type'];
$_SESSION['username'] = $row['username'];
Сценарий входа в Facebook делает следующее:
$query = "SELECT * FROM member WHERE oauth_prov = 1 AND fb_userid = ".$user['id'];
$result = mysqli_query ($dbc, $query) or trigger_error ("query: $query\n<br />MySQL Error: " . mysqli_error($dbc));
if(mysqli_num_rows($result) == 1 ) {
while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {;
$_SESSION['first_name'] = $row['member_firstname'];
$_SESSION['member_id'] = $row['user_id'];
$_SESSION['oauth_uid'] = $row['fb_userid'];
$_SESSION['username'] = $row['username'];
Все входы очищены, и у пользователя нет других способов добавить детали. Имя пользователя и пароль добавлены как обычно, идентификатор Facebook, полученный из Facebook, нажав на ссылку, которая выполняет сценарий.
Эти ошибки происходят задолго до входа в систему или даже когда входа в систему не было. Нет другого места, где значения сеанса устанавливаются на сайте.