<?php
function login ($username, $remember)
{
if ($username= 'bis')
return false;
$_SESSION ['username'] = $username;
if ($remember)
setcookie ('username', $username, time() + 3600*24*7);
return true;
}
function logkick()
{
setcookie ('username', '', time()-1);
unset ($_SESSION ['username']);
}
session_start();
$enter_site = false;
logkick();
if (count ($_POST)>0)
$enter_site = login ($_POST['username'], $_POST ['remember'] == 'on');
if ($enter_site)
{
header ("location: news.php");
exit();
}
?>
<html>
<head>
<title>Вход на сайт</title>
</head>
<body>
<h1>Вход на сайт</h1>
<form action="" method="post">
Введите имя:
<br/>
<input type="text" name="username" />
<br/>
<input type="checkbox" name="remember" /> Запоминть меня
<br/>
<input type="submit" value="Войти" />
</form>
</body>
</html>
Программа заработала, но авторизация не идет
Записал имя Bis на нажал на вход и нечего ;)
Спустя 17 минут, 11 секунд (29.09.2012 - 19:57) rooor написал(а):
if ($username= 'bis')
return false;
всегда true
Спустя 37 минут, 28 секунд (29.09.2012 - 20:35) Evil_Google написал(а):
Поставил TRUE и получилось так, что сайт стал авторизоваться под любым логином

Спустя 5 минут, 4 секунды (29.09.2012 - 20:40) rooor написал(а):
я говорю, что проверка if ($username= 'bis') будет всегда true
Спустя 31 минута, 27 секунд (29.09.2012 - 21:11) Evil_Google написал(а):
Блин нечего не получается. Можешь мне подробно описать

Спустя 1 час, 12 минут, 21 секунда (29.09.2012 - 22:24) kristall написал(а):
Между присваиванием и сравнением есть разница.
Покури про = , == и ===.
Покури про = , == и ===.
Спустя 14 секунд (29.09.2012 - 22:24) Shuriken написал(а):
"=" - это оператор присваивания, поэтому условие $username= 'bis' всегда будет верным, т.е. TRUE
Спустя 1 час, 59 минут, 31 секунда (30.09.2012 - 00:24) VladKamyshanov написал(а):
if ($username=== 'bis')
return false;
вот так надо
Спустя 16 часов, 44 секунды (30.09.2012 - 16:24) Evil_Google написал(а):
VladKamyshanov спасибо за подсказку, но получилось так, что когда я ввожу bis авторизация не идет, а в остальных случиях получаеться

Спустя 19 минут, 48 секунд (30.09.2012 - 16:44) Shuriken написал(а):
Цитата (Evil_Google @ 30.09.2012 - 13:24) |
VladKamyshanov спасибо за подсказку, но получилось так, что когда я ввожу bis авторизация не идет, а в остальных случиях получаеться :blink: |
if ($username== 'bis')
return false;
Спустя 1 час, 47 минут, 45 секунд (30.09.2012 - 18:32) Evil_Google написал(а):
Написал как вы показали
и получилось так:
* Вел имя Bis. В резултате авторизация не произошло

* Вел что угодно. В резултате авторизация произошло :blink:

Может скрипт которой я написал не правильно :(
if ($username== 'bis')
return false;
и получилось так:
* Вел имя Bis. В резултате авторизация не произошло

* Вел что угодно. В резултате авторизация произошло :blink:

Может скрипт которой я написал не правильно :(
Спустя 45 минут, 10 секунд (30.09.2012 - 19:17) kristall написал(а):
Включи голову.
Функция login возвращает false если $username равно 'bis'.
Если же у юзера другое имя, ставит куку если была галка "Запомнить меня".
И возвращает true. То есть режет bis, а всех остальных пускает.
Все работает именно так, как запрограммировано.
function login ($username, $remember)
{
if ($username== 'bis')
return false;
Функция login возвращает false если $username равно 'bis'.
$_SESSION ['username'] = $username;
if ($remember)
setcookie ('username', $username, time() + 3600*24*7);
return true;
}
Если же у юзера другое имя, ставит куку если была галка "Запомнить меня".
И возвращает true. То есть режет bis, а всех остальных пускает.
Все работает именно так, как запрограммировано.
_____________
Жадный.... жадный.... жадный кот