powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Прошу помочь с отключением проверки сессии
14 сообщений из 14, страница 1 из 1
Прошу помочь с отключением проверки сессии
    #38834444
антон68_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
файл
session.php
Скачать файл http://www.floomby.ru/s2/4e5KH9/full

<?php
include("database.php"); //This script performs the actions for the database
include("mailer.php"); //This script send emails
include("form.php"); //This script manages form
include("inputcheck.php"); //Control input for safety

//This script manages sessions
class Session
{
var $username;
var $userid;
var $userlevel;
var $time;
var $logged_in;
var $userinfo = array();
var $url;
var $referrer;

function Session()
{
$this->time = time();
$this->startSession();
}
function startSession()
{
global $database;
session_start();

$this->logged_in = $this->checkLogin();


if (!$this->logged_in) {
$this->username = $_SESSION['username'] = GUEST_NAME;
$this->userlevel = GUEST_LEVEL;
$database->addActiveGuest($_SERVER['REMOTE_ADDR'], $this->time);
} else {
$database->addActiveUser($this->username, $this->time);
}

$database->removeInactiveUsers();
$database->removeInactiveGuests();

if (isset($_SESSION['url'])) {
$this->referrer = $_SESSION['url'];
} else {
$this->referrer = "/";
}

$this->url = $_SESSION['url'] = $_SERVER['PHP_SELF'];
}

function checkLogin()
{
global $database;
if (isset($_COOKIE['cookname']) && isset($_COOKIE['cookid'])) {
$this->username = $_SESSION['username'] = $_COOKIE['cookname'];
$this->userid = $_SESSION['userid'] = $_COOKIE['cookid'];
}

if (isset($_SESSION['username']) && isset($_SESSION['userid']) && $_SESSION['username'] != GUEST_NAME) {
if ($database->confirmUserID($_SESSION['username'], $_SESSION['userid']) != 0) {
unset($_SESSION['username']);
unset($_SESSION['userid']);
return false;
}

$this->userinfo = $database->getUserInfo($_SESSION['username']);
$this->username = $this->userinfo['username'];
$this->userid = $this->userinfo['userid'];
$this->userlevel = $this->userinfo['userlevel'];
return true;
} else {
return false;
}
}

function login($subuser, $subpass, $subremember)
{
global $database, $form;

$field = "user";
if (!$subuser || strlen($subuser = trim($subuser)) == 0) {
$form->setError($field, "Username not entered");
} else {

if (!preg_match("/^([0-9a-z])*$/i", $subuser)) {
$form->setError($field, "Username not alphanumeric");
}
}


$field = "pass";
if (!$subpass) {
$form->setError($field, "Password not entered");
}

if ($form->num_errors > 0) {
return false;
}


$subuser = stripslashes($subuser);
$result = $database->confirmUserPass($subuser, md5($subpass));


if ($result == 1) {
$field = "user";
$form->setError($field, "Username not found");
} else if ($result == 2) {
$field = "pass";
$form->setError($field, "Invalid password");
}

if ($form->num_errors > 0) {
return false;
}

$this->userinfo = $database->getUserInfo($subuser);
$this->username = $_SESSION['username'] = $this->userinfo['username'];
$this->userid = $_SESSION['userid'] = $this->generateRandID();
$this->userlevel = $this->userinfo['userlevel'];

$database->updateUserField($this->username, "userid", $this->userid);
$database->addActiveUser($this->username, $this->time);
$database->removeActiveGuest($_SERVER['REMOTE_ADDR']);

if ($subremember) {
setcookie("cookname", $this->username, time() + COOKIE_EXPIRE, COOKIE_PATH);
setcookie("cookid", $this->userid, time() + COOKIE_EXPIRE, COOKIE_PATH);
}

return true;
}

function logout()
{
global $database;

if (isset($_COOKIE['cookname']) && isset($_COOKIE['cookid'])) {
setcookie("cookname", "", time() - COOKIE_EXPIRE, COOKIE_PATH);
setcookie("cookid", "", time() - COOKIE_EXPIRE, COOKIE_PATH);
}

unset($_SESSION['username']);
unset($_SESSION['userid']);

$this->logged_in = false;

$database->removeActiveUser($this->username);
$database->addActiveGuest($_SERVER['REMOTE_ADDR'], $this->time);

$this->username = GUEST_NAME;
$this->userlevel = GUEST_LEVEL;
}

function register($subuser, $subpass, $subemail)
{
global $database, $form, $mailer;

$field = "user";
if (!$subuser || strlen($subuser = trim($subuser)) == 0) {
$form->setError($field, "Username not entered");
} else {
$subuser = stripslashes($subuser);
if (strlen($subuser) < 5) {
$form->setError($field, "Username below 5 characters");
} else if (strlen($subuser) > 30) {
$form->setError($field, "Username above 30 characters");
} else if (!preg_match("/^([0-9a-z])+$/i", $subuser)) {
$form->setError($field, "Username not alphanumeric");
} else if (strcasecmp($subuser, GUEST_NAME) == 0) {
$form->setError($field, "Username reserved word");
} else if ($database->usernameTaken($subuser)) {
$form->setError($field, "Username already in use");
} else if ($database->usernameBanned($subuser)) {
$form->setError($field, "Username banned");
}
}

$field = "pass";
if (!$subpass) {
$form->setError($field, "Password not entered");
} else {
$subpass = stripslashes($subpass);
if (strlen($subpass) < 4) {
$form->setError($field, "Password too short");
} else if (!preg_match("/^([0-9a-z])+$/i", ($subpass = trim($subpass)))) {
$form->setError($field, "Password not alphanumeric");
}
}

$field = "email";
if (!$subemail || strlen($subemail = trim($subemail)) == 0) {
$form->setError($field, "Email not entered");
} else {
$regex = "/^[_+a-z0-9-]+(\.[_+a-z0-9-]+)*" . "@[a-z0-9-]+(\.[a-z0-9-]{1,})*" . "\.([a-z]{2,}){1}$/i";
if (!preg_match($regex, $subemail)) {
$form->setError($field, "Email invalid");
}
$subemail = stripslashes($subemail);
}

if ($form->num_errors > 0) {
return 1;
} else {
if ($database->addNewUser($subuser, md5($subpass), $subemail)) {
if (EMAIL_WELCOME) {
$mailer->sendWelcome($subuser, $subemail, $subpass);
}
return 0;
} else {
return 2;
}
}
}

function editAccount($subcurpass, $subnewpass, $subemail)
{
global $database, $form;

if ($subnewpass) {
$field = "curpass";
if (!$subcurpass) {
$form->setError($field, "Current Password not entered");
} else {
$subcurpass = stripslashes($subcurpass);
if (strlen($subcurpass) < 4 || !preg_match("/^([0-9a-z])+$/i", ($subcurpass = trim($subcurpass)))) {
$form->setError($field, "Current Password incorrect");
}
if ($database->confirmUserPass($this->username, md5($subcurpass)) != 0) {
$form->setError($field, "Current Password incorrect");
}
}

$field = "newpass";
$subpass = stripslashes($subnewpass);
if (strlen($subnewpass) < 4) {
$form->setError($field, "New Password too short");
}

else if (!preg_match("/^([0-9a-z])+$/i", ($subnewpass = trim($subnewpass)))) {
$form->setError($field, "New Password not alphanumeric");
}
} else if ($subcurpass) {
$field = "newpass";
$form->setError($field, "New Password not entered");
}

$field = "email";
if ($subemail && strlen($subemail = trim($subemail)) > 0) {

$regex = "/^[_+a-z0-9-]+(\.[_+a-z0-9-]+)*" . "@[a-z0-9-]+(\.[a-z0-9-]{1,})*" . "\.([a-z]{2,}){1}$/i";
if (!preg_match($regex, $subemail)) {
$form->setError($field, "Email invalid");
}
$subemail = stripslashes($subemail);
}


if ($form->num_errors > 0) {
return false;
}


if ($subcurpass && $subnewpass) {
$database->updateUserField($this->username, "password", md5($subnewpass));
}


if ($subemail) {
$database->updateUserField($this->username, "email", $subemail);
}


return true;
}

function isAdmin()
{
return ($this->userlevel == ADMIN_LEVEL || $this->username == ADMIN_NAME);
}


function generateRandID()
{
return md5($this->generateRandStr(16));
}


function generateRandStr($length)
{
$randstr = "";
for ($i = 0; $i < $length; $i++) {
$randnum = mt_rand(0, 61);
if ($randnum < 10) {
$randstr .= chr($randnum + 48);
} else if ($randnum < 36) {
$randstr .= chr($randnum + 55);
} else {
$randstr .= chr($randnum + 61);
}
}
return $randstr;
}
}
;


/**
Initialize session object - This must be initialized before
* the form object because the form uses session variables,
* which cannot be accessed unless the session has started.
*/
$session = new Session;

/* Initialize form object */
$form = new Form;

?>
проблема заключается в том что 2 человека не могут сидеть под одной учеткой, прошу помочь, какие строчки удалить/закоментить чтобы удалить это ограничение
...
Рейтинг: 0 / 0
Прошу помочь с отключением проверки сессии
    #38834684
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
антон68_проблема заключается в том что 2 человека не могут сидеть под одной учеткойПочему не могут, что не так?
...
Рейтинг: 0 / 0
Прошу помочь с отключением проверки сессии
    #38834987
антон68_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkle, если сидеть под Ником "admin", а другой тоже после зайдет под этим ником, то первого выбрасывает на страницу авторизации, если первый заново авторизуеься то выкинет второго, тоесть двое не могут сидеть под одной учёткой.

Пробовал редактировал, коментил куски кода но лезут ошибки
Прошу помоч
...
Рейтинг: 0 / 0
Прошу помочь с отключением проверки сессии
    #38834989
Фотография r u
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
антон68_,

$database->updateUserField($this->username, "userid", $this->userid);
$database->addActiveUser($this->username, $this->time);
$database->removeActiveGuest($_SERVER['REMOTE_ADDR']);

что происходит тут?
код в студию
...
Рейтинг: 0 / 0
Прошу помочь с отключением проверки сессии
    #38835410
антон68_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
r uантон68_,

$database->updateUserField($this->username, "userid", $this->userid);
$database->addActiveUser($this->username, $this->time);
$database->removeActiveGuest($_SERVER['REMOTE_ADDR']);

что происходит тут?
код в студию

Простите за долгий ответ но я увы незнаю что тут проиходит, php могу подредактировать, "подверстать" но как работает плохо понимаю
Могу дать любой файл из присутствующих в скрипте http://codecanyon.net/item/tequila-file-hosting-script/7604312
http://www.floomby.ru/s2/he5KqJ/full/
...
Рейтинг: 0 / 0
Прошу помочь с отключением проверки сессии
    #38835463
SharuPoNemnogu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возможно в checkLogin();
$database->confirmUserID() - тут что проверяется?
Похоже на проверку залогиненого пользователя и удаление сессии если есть.
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
if (isset($_SESSION['username']) && isset($_SESSION['userid']) && $_SESSION['username'] != GUEST_NAME) {
    if ($database->confirmUserID($_SESSION['username'], $_SESSION['userid']) != 0) {
        unset($_SESSION['username']);
        unset($_SESSION['userid']);
        return false;
    }
...
}
...
Рейтинг: 0 / 0
Прошу помочь с отключением проверки сессии
    #38835577
антон68_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SharuPoNemnoguВозможно в checkLogin();
$database->confirmUserID() - тут что проверяется?
Похоже на проверку залогиненого пользователя и удаление сессии если есть.
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
if (isset($_SESSION['username']) && isset($_SESSION['userid']) && $_SESSION['username'] != GUEST_NAME) {
    if ($database->confirmUserID($_SESSION['username'], $_SESSION['userid']) != 0) {
        unset($_SESSION['username']);
        unset($_SESSION['userid']);
        return false;
    }
...
}



спасибо, помогло закоментирование строчек
Код: php
1.
2.
3.
        unset($_SESSION['username']);
        unset($_SESSION['userid']);
        return false;
...
Рейтинг: 0 / 0
Прошу помочь с отключением проверки сессии
    #38835580
SharuPoNemnogu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
антон68_,

тогда уж комментируйте
Код: php
1.
2.
3.
4.
5.
if ($database->confirmUserID($_SESSION['username'], $_SESSION['userid']) != 0) {
    unset($_SESSION['username']);
    unset($_SESSION['userid']);
    return false;
}
...
Рейтинг: 0 / 0
Прошу помочь с отключением проверки сессии
    #38835584
антон68_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SharuPoNemnoguантон68_,

тогда уж комментируйте
Код: php
1.
2.
3.
4.
5.
if ($database->confirmUserID($_SESSION['username'], $_SESSION['userid']) != 0) {
    unset($_SESSION['username']);
    unset($_SESSION['userid']);
    return false;
}



Так сначала и хотел, но ошибки лезут на сайте с указанием строки с if
...
Рейтинг: 0 / 0
Прошу помочь с отключением проверки сессии
    #38835598
SharuPoNemnogu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторошибки лезут
какие ошибки?
...
Рейтинг: 0 / 0
Прошу помочь с отключением проверки сессии
    #38835600
антон68_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SharuPoNemnoguавторошибки лезут
какие ошибки?

http://data3.floomby.com/files/share/16_12_2014/22/6Um3SVZubUCsBsTzsYHigw.jpg
...
Рейтинг: 0 / 0
Прошу помочь с отключением проверки сессии
    #38835602
SharuPoNemnogu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
антон68_,

а вы сверьте, что вы закомментили, и что я написал
...
Рейтинг: 0 / 0
Прошу помочь с отключением проверки сессии
    #38835612
антон68_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SharuPoNemnoguантон68_,

а вы сверьте, что вы закомментили, и что я написал
ой да сори, но темнеменее http://data3.floomby.com/files/share/16_12_2014/23/5gYdRVNBfEikk3Ybxr2jdQ.jpg
...
Рейтинг: 0 / 0
Прошу помочь с отключением проверки сессии
    #38835614
антон68_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
антон68_SharuPoNemnoguантон68_,

а вы сверьте, что вы закомментили, и что я написал
ой да сори, но темнеменее http://data3.floomby.com/files/share/16_12_2014/23/5gYdRVNBfEikk3Ybxr2jdQ.jpg

пардоне, снова я виноват, всё норм
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Прошу помочь с отключением проверки сессии
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]