Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Cookies or Sessions? Просветите просто! 
:(
    Опции темы
Рейкин
Дата 4.6.2004, 10:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 198
Регистрация: 23.11.2003
Где: Баку, Азербайджан

Репутация: 1
Всего: 1



Опять, как водится, сначала поискал по форуму. Ответа на искомую задачу не нашёл sad.gif

Я пишу онлайн-игру. Необходимо, чтоб вошедший в систему участник (логин, пароль) мог передвигаться по сайту (игре) и чтоб игра его узнавала.

Если это куки, то они должны "умереть" с покиданием участником сайта - знаю - что это случится в установках cookies по умолчанию.

Если это куки (моё решение), а я думаю, что да, то...
1) Как мне прописать их.
2) Как отслеживать/сравнивать/узнавать игрока по ходу "пьесы" (и надо ли в этом случае запоминать пароль в куках, или просто - вошёл правильно, записываем только логин и от него пляшем)?


Буду благодарен за помощь. Надеюсь задачу изложил полно.
PM WWW   Вверх
Master
Дата 4.6.2004, 11:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1530
Регистрация: 13.5.2003
Где: Mother Russia

Репутация: 8
Всего: 10



http://faq.phpclub.ru/practice.sessions.html

Думаю что там содержиться полный ответ на вопрос.

Это сообщение отредактировал(а) IZ@TOP - 4.6.2004, 13:21


--------------------
Вавилон, Вавилон
Что ты построил, что разрушил?
Вавилон, Вавилон
Плавятся души дьявольским огнем.
PM WWW ICQ   Вверх
Рейкин
Дата 4.6.2004, 14:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 198
Регистрация: 23.11.2003
Где: Баку, Азербайджан

Репутация: 1
Всего: 1



Так пытаюсь прописать Куки.
Код
<?

if($HTTP_COOKIE_VARS["loginname"] == "zorro") {
header("Location: go.php");
} else {

$file = file("text.txt");
$num = count($file);
for ($i=0; $i<=$num-1;$i++)
list($name,$pass,$email,$end) = split("*|*", $file[$i]);
{
if ((strcmp($loginname, $name)==0) and (strcmp($parol, $pass)==0))
 {
 $access = "ok";
 }

}

if ($access == "ok")
{
setcookie("loginname", $loginname, time(), "/", ".mysite.com", 0);
setcookie("parol", $parol, time(), "/", ".mysite.com", 0);
print "
  Поздравляем, вы удачно вошли в систему! <a href=\"go.php\">Вам сюда!</a>
  ";
}
else
{
print "
Введите верный логин и пароль:<br>
<form action=\"set.php\" method=post>
Логин: <input type=text name=loginname size=25 maxlength=25>
<br> Пароль: <input type=password name=parol size=25 maxlength=25>
<input type=\"submit\" value=\"войти в админ-модуль\">
</form>

  ";
}
}
?>


Залогиниваюсь - header не срабатывает, но пишет -
Поздравляем, вы удачно вошли в систему! <a href=\"go.php\">Вам сюда!</a>

Оки, на всякий случай дам go.php
Код
<?
$user = $_COOKIE["loginname"];

print $user;
?>


ничо не печатает...

Вопрос первый - чо я не так прописал? Как надо?
Второй - как "иметь постоянно" то, что прописал в куки (логин)?

Жду ответа.

Насчёт ссылки...

Громоздко и непонятно...

Это сообщение отредактировал(а) Рейкин - 4.6.2004, 14:40
PM WWW   Вверх
Master
Дата 4.6.2004, 14:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1530
Регистрация: 13.5.2003
Где: Mother Russia

Репутация: 8
Всего: 10



Код
setcookie("loginname", $loginname, time(), "/", ".mysite.com", 0);
setcookie("parol", $parol, time(), "/", ".mysite.com", 0);

я щас умру... дружок... срок жизни твоих куков устанавливается до времени их установления.


--------------------
Вавилон, Вавилон
Что ты построил, что разрушил?
Вавилон, Вавилон
Плавятся души дьявольским огнем.
PM WWW ICQ   Вверх
Chuck
Дата 4.6.2004, 15:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Сушня
**


Профиль
Группа: Эксперт
Сообщений: 442
Регистрация: 12.12.2003
Где: Узбекистан, Ташке нт

Репутация: нет
Всего: 9



А не проще ли просто использовать сессию???
Запись: $_SESSION['password'] = 'pass'; $_SESSION['login'] = 'user';
Чтение: $pass = $SESSION['password']; $user = $SESSION['login'];
Сессия умрет, как только юзер покинет сайт! Ты просто проверяй, пароль и логин в каждом скрипте!!!
Может я и ошибаюсь, или что-то не правильно понял, но сессии тут как раз годятся!!! (кто знает, работают у юзера куки???)

PM MAIL WWW GTalk   Вверх
Рейкин
Дата 4.6.2004, 15:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 198
Регистрация: 23.11.2003
Где: Баку, Азербайджан

Репутация: 1
Всего: 1



Цитата
А не проще ли просто использовать сессию???
Запись: $_SESSION['password'] = 'pass'; $_SESSION['login'] = 'user';
Чтение: $pass = $SESSION['password']; $user = $SESSION['login'];
Сессия умрет, как только юзер покинет сайт! Ты просто проверяй, пароль и логин в каждом скрипте!!!


как это - каждый раз проверять логин и пароль?... я как раз этого пытался избежать. Ходит логин и делает что ему доступно...

Цитата
я щас умру... дружок... срок жизни твоих куков устанавливается до времени их установления.

Пока не умер - скажи как сделать надо и чтоб куки были недействительны, когда сайт покинут? biggrin.gif

Это сообщение отредактировал(а) Рейкин - 4.6.2004, 15:34
PM WWW   Вверх
Рейкин
Дата 4.6.2004, 23:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 198
Регистрация: 23.11.2003
Где: Баку, Азербайджан

Репутация: 1
Всего: 1



Перечитал. Не понял. Как прописать, куда прописать. Как организуется сессия, с чём её сравнивать.
Как найти что прочитать - я могу и сам, поверьте. Я тут, потому что в тупике. Или вы слишком высоко себя посадили, что слышать не хотите?
PM WWW   Вверх
Chuck
Дата 5.6.2004, 08:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Сушня
**


Профиль
Группа: Эксперт
Сообщений: 442
Регистрация: 12.12.2003
Где: Узбекистан, Ташке нт

Репутация: нет
Всего: 9



Дружок все очень просто ты проверяешь раз!!! а потом создаешь переменную например
if ($_SESSION['pass'] == 'pass') {$_SESSION['mojno'] = 1;}
else {$_SESSION['mojno'] = 0;}
А в скриптах проверяешь если можно = 1 то вперёд, а равон 0 то нельзя аксес денайдед smile.gif)
PM MAIL WWW GTalk   Вверх
Рейкин
Дата 5.6.2004, 09:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 198
Регистрация: 23.11.2003
Где: Баку, Азербайджан

Репутация: 1
Всего: 1



Ага... Теперь теплей.
Т.е. $_SESSION - временный заменитель пароля?!

А как линкам передавать это дело? (с form дело проще).

Везде написано "и линки из index.php превращаются index.php?fnhhjhr83494345u20....."

Как и в какой момент это делается?
PM WWW   Вверх
Рейкин
Дата 5.6.2004, 11:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 198
Регистрация: 23.11.2003
Где: Баку, Азербайджан

Репутация: 1
Всего: 1



Код
<?

$file = file("text.txt");
$num = count($file);
for ($i=0; $i<=$num-1;$i++)
list($name,$pass,$email,$end) = split("*|*", $file[$i]);
{
if ($loginname == $name and $parol == $pass)
 {
 $access = "ok";
 }

}
if ($access == "ok")
 {
 session_start();
 session_register('login');
 $login=$loginname;
 print "
 <b>$login</b>, hi! <a href=\"go.php\">Вам сюда</a>";
 }
else
{
print "
Введите верный логин и пароль:<br>
<form action=\"check.php\" method=get>
Логин: <input type=text name=loginname size=25 maxlength=25>
<br> Пароль: <input type=password name=parol size=25 maxlength=25>
<input type=\"submit\" value=\"войти\">
</form>

  ";
}

?>


Имею
Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /home/mysite/html/prog/check.php:9) in /home/mysite/html/prog/check.php on line 16

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /home/mysite/html/prog/check.php:9) in /home/mysite/html/prog/check.php on line 16
reyus
, hi! Вам сюда



Вот те и мануалы...

Это сообщение отредактировал(а) Рейкин - 5.6.2004, 11:29
PM WWW   Вверх
Piphon
Дата 5.6.2004, 11:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 107
Регистрация: 30.3.2004
Где: Екатеринбург

Репутация: 2
Всего: 2



Сессию стартуй в самом начале, т.е. до отправки тела сайта, как и куки.

И стартуй её на каждой странице которая будет обращатся к переменным в сесси.

P.S. Не знаю правельно объяснил...
--------------------
Non Progredi Est Regredi...
PM MAIL ICQ   Вверх
Secandr
Дата 5.6.2004, 12:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Связист
****


Профиль
Группа: Экс. модератор
Сообщений: 4043
Регистрация: 3.8.2003
Где: Russia, Volgograd

Репутация: 5
Всего: 39



Piphon
правильно.
session_start(); - должен идти перым оператором.

А ещё не помешает разделять контент и код smile.gif ИМХО


--------------------
Мышки плакали, кололись, но продолжали жрать кактусы (с) cisco
PM ICQ AOL   Вверх
Рейкин
Дата 5.6.2004, 13:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 198
Регистрация: 23.11.2003
Где: Баку, Азербайджан

Репутация: 1
Всего: 1



Пробуем...
PM WWW   Вверх
Рейкин
Дата 5.6.2004, 13:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 198
Регистрация: 23.11.2003
Где: Баку, Азербайджан

Репутация: 1
Всего: 1



получаем....

check.php
Код
<?
print "
Введите верный логин и пароль:<br>
<form action=\"go.php\" method=get>
Логин: <input type=text name=loginname size=25 maxlength=25>
<br> Пароль: <input type=password name=parol size=25 maxlength=25>
<input type=\"submit\" value=\"войти\">
</form>

  ";


?>


go.php
Код
<?
session_start();


$file = file("text.txt");
$num = count($file);
for ($i=0; $i<=$num-1;$i++)
list($name,$pass,$email,$end) = split("*|*", $file[$i]);
{
if ($loginname == $name and $parol == $pass)
 {
session_register('login');
$login=$loginname;  
header("Location: welcome.php");
 $access++;
 }
}
if ($access<1)
header("Location: check.php");
?>


welcome.php
Код
<?
session_start();
 session_register('login');
if (isset($login))
 print "Hello, $login";
else
print "No login!";

?>


Результат - загрузка welcome.php
Hello, reyus

Спасибо большое! Всем, кто помогал и помогает!!! hehe.gif

P.S. Надеюсь всё будет работать хорошо и дальше.
P.P.S. Уверен, что это хороший и ясный пример новичкам, как я!

Это сообщение отредактировал(а) Рейкин - 5.6.2004, 13:36
PM WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0520 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.