X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Скрипт для проверки реф.ссылки и авторизации
MLMaster
MLMaster
Topic Starter сообщение 17.1.2010, 19:57; Ответить: MLMaster
Сообщение #1


Всем доброе время суток :):beer:
Я к вам снова с вопросом типа "где собака порылась?".
На главной странице index.php (да и на других тоже) вот такая конструкция:
[PHP]<?php
session_start();
include ("including/sessionmaster.php");
?>[/PHP]
Сценарий sessionmaster.php должен делать вот что:
1. Первым делом проверить значение переменной $unload ("разлогиниться"), и если $unload==1, то стереть все данные массива $_SESSION, после чего уничтожить также переменную $unload
2. Проверить значение переменной $_SESSION['authr'] (тип сессии: 1 - "гостевая", 2 - "пользовательская") и исходя из этого сделать одно из двух:
2.1. если $_SESSION['authr'] равно 1 или 2, то не делать ничего;
2.2. если $_SESSION['authr'] не задан, то опять же одно из двух:
2.2.1. если переменная $r задана, то извлечь соответствующие значения из БД и сохранить их в $_SESSION.
2.2.2. если переменная $r не задана, то присвоить ей значение по умолчанию (4704831) и опять же извлечь значения из БД и сохранить в $_SESSION.
3. Вывести "шапку" сайта, html-код которой сохранён как shapka.txt

Переменная $r по идее должна передаваться в адресной строке (реферальная ссылка). $unload - там же. Специально для тестирования этого безобразия в БД была создана строка с логином 4704838. И вот, переходя по ссылке типа index.php?r=4704838, я вижу, что переменной $r присвоено значение по умолчанию - 4704831. Причём с самого начала, ещё до проверки данных сессии (что показывает переменная $r1). И все данные в сессии соответствующие. Так быть однозначно не должно. Так где я ошибнулся-то? Несколько часов пытался найти ошибку, да так и не нашёл:wacko: Гиде она? Вот собственно sessionmaster (версия для тестирования, с выводом переменных на свет божий):
[PHP]<?php
if ($unload == 1)
{
session_destroy();
unset ($_SESSION);
unset ($unload);
}
$r1=$r;
switch ($_SESSION['authr'])
{
case 1:
break;
case 2:
break;
default:
$_SESSION['authr'] = 1;
if (isset($r))
{
$connect = mysql_connect ("******", "*******", "*****");
$db = mysql_select_db("*****", $connect);
$query_result = mysql_query ('SELECT * FROM users');
while ($row = mysql_fetch_array ($query_result))
{
if ($row['login'] == ($r))
{
$_SESSION['r_name'] = $row['name'];
$_SESSION['r'] = $row['login'];
$_SESSION['r_password'] = $row['password'];
$_SESSION['r_email'] = $row['email'];
$_SESSION['r_icq'] = $row['icq'];
$_SESSION['r_lbb'] = $row['lbb'];
$_SESSION['r_gbb'] = $row['gbb'];
$_SESSION['r_city'] = $row['city'];
$_SESSION['r_date'] = $row['date'];
$_SESSION['r_last_date'] = $row['last_date'];
$_SESSION['r_avatar'] = $row['avatar'];
$_SESSION['r_uniq_id'] = $row['uniq_id'];
$_SESSION['r_blog'] = $row['blog'];
$_SESSION['r_trigger'] = $row['trigger'];
$_SESSION['r_training_lvl'] = $row['training_lvl'];
$_SESSION['r_lvl'] = $row['lvl'];
mysql_free_result ($query_result);
mysql_close();
}
}
}
else
{
$r=4704831;
$connect = mysql_connect ("*****", "*****", "*****");
$db = mysql_select_db("*****", $connect);
$query_result = mysql_query ('SELECT * FROM users');
while ($row = mysql_fetch_array ($query_result))
{
if ($row['login'] == ($r))
{
$_SESSION['r_name'] = $row['name'];
$_SESSION['r'] = $row['login'];
$_SESSION['r_password'] = $row['password'];
$_SESSION['r_email'] = $row['email'];
$_SESSION['r_icq'] = $row['icq'];
$_SESSION['r_lbb'] = $row['lbb'];
$_SESSION['r_gbb'] = $row['gbb'];
$_SESSION['r_city'] = $row['city'];
$_SESSION['r_date'] = $row['date'];
$_SESSION['r_last_date'] = $row['last_date'];
$_SESSION['r_avatar'] = $row['avatar'];
$_SESSION['r_uniq_id'] = $row['uniq_id'];
$_SESSION['r_blog'] = $row['blog'];
$_SESSION['r_trigger'] = $row['trigger'];
$_SESSION['r_training_lvl'] = $row['training_lvl'];
$_SESSION['r_lvl'] = $row['lvl'];
mysql_free_result ($query_result);
mysql_close();
}
}
};
break;
}
$fh = fopen("graphics/shapka.txt", "r");
while(!feof($fh))
{
$line = fgets($fh);
echo "$line";
}
fclose ($fh);

foreach ($_SESSION as $key => $value)
{
echo $key," = ",$value,"<br>";
}
echo '$r1 = ',$r1,'<br>$r = ',$r;
?>[/PHP]

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Партнерская программа для Эзотерики, Магии, Таро
партнерка для эзотерики
0 LiveExpert 317 Сегодня, 15:13
автор: LiveExpert
Открытая тема (нет новых ответов) Партнерская программа для Эзотерики, Магии, Таро
партнерка для эзотерики
0 LiveExpert 293 Сегодня, 15:13
автор: LiveExpert
Горячая тема (нет новых ответов) Вечные ссылки с 300+ СДЛов, тиц до 750, ЯКи, DMOZ, от 1$/ссылка
вечные ссылки
258 SeoUaSales 128401 Вчера, 23:39
автор: FantAlexis
Горячая тема (нет новых ответов) Тема имеет прикрепленные файлыAzinomoney.com - гемблинг-партнерка с 65%RS для каждого
Гарантированный заработок на гемблинг-трафике
65 AzinoMoney 29171 Вчера, 19:10
автор: AzinoMoney
Открытая тема (нет новых ответов) Куплю ссылки тематика steam игры eng
0 c4p1t4l15t 527 26.3.2024, 21:57
автор: c4p1t4l15t


 



RSS Текстовая версия Сейчас: 28.3.2024, 22:01
Дизайн