|
|
|
| не разу не пользовался ,а щас понадобилась switch case
на странице мне надо выводить , если это страница того пользователя чей пароль совпадает то 1 информацию
если он находится на чужой странице то другую информацию
проблема в том что в примерах я так и не понял где мне проверку проводить чтобы он выбирал между случаями (case) .
и так же что писать в switch и case если брать мой пример | |
|
|
|
|
|
|
|
для: kvins
(02.03.2011 в 17:29)
| |
<?php
// Идентичные варианты
$some_var = 'value';
switch ($some_var)
{
case 'sth':
echo 'variant 1';
break;
case 'value':
echo 'variant 2';
break;
default:
echo "I don't know";
}
if ($some_var == 'sth')
echo 'variant 1';
elseif ($some_var == 'value')
echo 'variant 2';
else
echo "I don't know";
|
| |
|
|
|
|
|
|
|
для: neadekvat
(02.03.2011 в 17:32)
| | спс за быстрый ответ , получаеться если мне надо проверить сессию то
switch ($_SESSION['access'])
case '$pass':
echo 'variant 1';
break;
case 'false':
echo 'variant 2';
break;
default:
echo "I don't know";
if ($_SESSION['access'] == $pass)
echo 'variant 1'; для чего тут еще 1 echo если в case есть тоже самое ? просто понять
elseif ($some_var == false) тут так???
echo 'variant 2';
else
echo "Iвы не зарегестрированы";
а данные он берет с низу? | |
|
|
|
|
|
|
|
для: kvins
(02.03.2011 в 17:53)
| |
В одинарных кавычках не заработает.
Я привел пример двух идентичных вариантов. Использовать их одновременно не надо.
Но, как уже подсказывают ниже, в вашем случаи действительно лучше и понятнее будет обычный if else. | |
|
|
|
|
|
|
|
для: neadekvat
(02.03.2011 в 17:57)
| | да их там много и просто хочется разделить между ними switch чтоб проверки были только внутри для каждой | |
|
|
|
|
|
|
|
для: kvins
(02.03.2011 в 18:04)
| | В таком случаи, возможно, имеет смысл также выделить в отдельные файлы каждый из блоков - чтобы в последствии не путаться в них.
Плюс, у вас будет целых 4 пробела или один отступ в запасе. | |
|
|
|
|
|
|
|
для: kvins
(02.03.2011 в 17:53)
| | case-условия они сродни if-условиям, ждут логического выражения, т.е. вы вполне можете использовать что-то вроде
| |
|
|
|
|
|
|
|
для: cheops
(02.03.2011 в 18:05)
| | а можно спросить что для второго случая надо
(просто в if else во втором случае надо было просто в else писать ,а тут как?)
???
В таком случаи, возможно, имеет смысл также выделить в отдельные файлы каждый из блоков
ето в отдельный файл и вставить в case include (моя страница .php); и так же во второй случай ? | |
|
|
|
|
|
|
|
для: kvins
(02.03.2011 в 18:14)
| | Так как у вас всего два случая, то для второго случая уже ничего не имеет значения, так как если первое условие не срабатывает, то должно срабатывать второе условие (почему собственно и ропото поднялся на тему if ... else ...). Я бы вместо втрого условия использовал default - это бы оградило бы возможных неожиданностей, когда и первое условие не сработало и второе возвращает false
<?php
switch (!empty($_SESSION['access']))
{
case true:
echo 'variant 1 - личная страница пользователя';
break;
default:
echo 'variant 2 - страница для всех';
break;
}
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(02.03.2011 в 18:18)
| | ееее спасибо за код , буду делать теперь | |
|
|
|
|
|
|
|
для: cheops
(02.03.2011 в 18:18)
| | блин я еще забыл про людей которые не зарегестрированы
надо же 3 случая если
$_SESSION существует и пароль подходит это 1 случай
если существует но не сходятся пароли (или по другому) то другое
а если вообще не существует то тогда просим зайти под своим логином
как еще дописать код?
а так получается любой не зарегестрированый сможет тоже что и зарегестрированый =) | |
|
|
|
|
|
|
|
для: kvins
(03.03.2011 в 00:19)
| | логин с неподходящим для него паролем (со стороны киента) должен восприниматься сервером, как несуществующий. | |
|
|
|
|
|
|
|
для: Trianon
(03.03.2011 в 00:30)
| | ну тогда получается что мы обделим человека который под логином на чужой странице , если делать ограничения для не зарегестрированных | |
|
|
|
|
|
|
|
для: kvins
(03.03.2011 в 00:35)
| | почему?
Если человек под логином, значит его пароль проверен. | |
|
|
|
|
|
|
|
для: Trianon
(03.03.2011 в 00:54)
| | а ты с каким кодом сравниваешь?? ты по моему сравниваешь 2 значения а у меня получается 3
1 своя страница проверенная паролем
2чужая страница проверенная логином (что он человек залогинелся)
3 человек без нечего попытался попасть на страницу
в принципе я уже решил проблему с помощью кода cheops который ниже просто хочу вас понять =) | |
|
|
|
|
|
|
|
для: kvins
(03.03.2011 в 00:19)
| | Знаете тут наверное лучше воспользоваться все-таки if ... else, так как характер данных не однородный.
<?php
if($_SESSION['access'] == $pass) {
// Своя страница
} else if(!empty($_SESSION['access'])) {
// Авторизован, но страница чужая
} else {
// Не авторизован
}
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(03.03.2011 в 00:34)
| | да наверно по другому не получится =) | |
|
|
|
|
|
|
|
для: cheops
(02.03.2011 в 18:18)
| | получается что то типо
<?php
switch ($_SESSION['access'] == $pass)
{
case true:
echo 'variant 1 - личная страница пользователя';
break;
case : как тут написать?
echo 'variant 1 - страница чужого пользователя';
break;
default: ну а тут думаю надо чета типо иссет чтоль чтоб понять
что нету вообще $_SESSION['access']
echo 'variant 2 - залогинетесь пожалуста';
break;
}
?> | |
|
|
|
|
|
|
|
для: kvins
(02.03.2011 в 17:29)
| | А почему именно switch хотите использовать, а не if else? Обычно switch используется, если случаев больше 2-х, а у вас их ровно два: пользователь на своей странице или пользователь на чужой странице... | |
|
|
|
|
|
|
|
для: kvins
(02.03.2011 в 17:29)
| | хм, а как вы определили что понадобилось? :) | |
|
|
|
|
|
|
|
для: psychomc
(02.03.2011 в 17:43)
| | у меня там очень много проверок с if else и чтобы легче мне было ориентироваться между 2 вещами (своя и чужая страница) думаю удобно между ними разделить на switch case
а что не рекомендуется ее использовать? ;) вдруг мне бы просто так захотелось ее использовать | |
|
|
|
|
|
|
|
для: kvins
(02.03.2011 в 17:56)
| | Нет, почему, как раз подходящий случай. А уже если вдруг захотелось использовать - обязательно используйте, пока не передумали :))), следование безопасной, но не эффективной традиции - это бич всех программистов, подвернулся шанс расширить горизонт - расширяйте без всякого сомнения и без спросу у других :))) | |
|
|
|