Перейти к содержимому

Реферальная программа Мегаплана


Помогите найти ошибку в куки!

#11 fedornabilkin

fedornabilkin
  • Пользователь
  • 696 сообщений
  • Репутация: 91
0

Отправлено 05 Август 2014 - 14:54


почему-то печенька постоянно удаляется

Потому что выполняется функция Logout(); при загрузке страницы.

А должна выполняться только, если юзер нажал "Выход".

Вот и весь секрет.

Вспоминается цитата неизвестного автора:

 

Комп выполняет то, что ты пишешь, а не то, что ты хочешь.


  • 0
Как часто в горестной разлуке,В моей блуждающей судьбе, ФО, я думал о тебе.


#12 Ixman

Ixman
  • Пользователь PRO
  • 2 163 сообщений
  • Репутация: 436

Отправлено 05 Август 2014 - 14:58

fedornabilkin, да, а я убирал этот код, и всё равно удаляется. И даже смотрел, может локальное время не правильное, нет, всё в норме

А по существу человек учиться, поэтому ей надо обязательно разобраться почему не работает, а не брать готовое решение. Естественно код совершенно не правильно реализован, но для понятия механизма самое то. Сам написал, сам понял как работает, а как правильно реализовывать это уже потом всё придёт


  • 1

#13 hnerd

hnerd
    Topic Starter
  • Пользователь
  • 284 сообщений
  • Репутация: 18

Отправлено 05 Август 2014 - 15:57

 

Если честно, у тебя в корне не верная концепция.

Юзеры никуда не сохраняются и может так получиться, что с логином fedornabilkin будут одновременно присутствовать несколько пользователей. Логин должен быть уникален и куда-то записан. Обычно в БД.

Помимо этого, зачем тебе вообще нужны эти две функции?

И обычно авторизацию делают на сессиях. Не помню уже почему, но меня убедили. что сессии правильнее использовать в таком случае.

Например так:

session_start();

// если передан пост-запрос с параметром, то сохраняем значение этого параметра в сессию и перенаправляем на страницу
$username = strval($_POST['username']);
if($username){
    $_SESSION['username'] = $username;
    header("Location: a.php");
    exit();
}


// если есть сессия, то юзер авторизован
$username = $_SESSION['username'];
if($username){
    header("Location: a.php");
    exit();
}

// на странице выхода
unset($_SESSION['username']); // разрегистрировали переменную

 

Да! С сессиями лучше! С сессиями код тоже не работает, я поэтому упростила код и написала без сессий, потому что мне кажется, что проблема в куках! Я этот код пишу не для какого-то сайта, а просто для практики, чтобы закрепить тему кук и сессий. И вот я подумала-теоретически код же должен работать даже и без сессий-а он не работает! Конечно буду ждать вашей реализации, может Вы найдете ошибку! Буду очень благодарна! Спасибо!


 

Если честно, у тебя в корне не верная концепция.

Юзеры никуда не сохраняются и может так получиться, что с логином fedornabilkin будут одновременно присутствовать несколько пользователей. Логин должен быть уникален и куда-то записан. Обычно в БД.

Помимо этого, зачем тебе вообще нужны эти две функции?

И обычно авторизацию делают на сессиях. Не помню уже почему, но меня убедили. что сессии правильнее использовать в таком случае.

Например так:

session_start();

// если передан пост-запрос с параметром, то сохраняем значение этого параметра в сессию и перенаправляем на страницу
$username = strval($_POST['username']);
if($username){
    $_SESSION['username'] = $username;
    header("Location: a.php");
    exit();
}


// если есть сессия, то юзер авторизован
$username = $_SESSION['username'];
if($username){
    header("Location: a.php");
    exit();
}

// на странице выхода
unset($_SESSION['username']); // разрегистрировали переменную

Этот код проще для реализации)))


Чуть позже реализую ваш код на локалке и посмотрю что там не так

Спасибо! Буду ждать!


  • 0

#14 fedornabilkin

fedornabilkin
  • Пользователь
  • 696 сообщений
  • Репутация: 91

Отправлено 05 Август 2014 - 16:00


Спасибо! Буду ждать!
Посмотри на предыдущей странице, я файлик залил. Там еще проще реализовано.
  • 0
Как часто в горестной разлуке,В моей блуждающей судьбе, ФО, я думал о тебе.



Оформление форума – IPBSkins.ru