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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вложенные условия, Правильность вложенности 
:(
    Опции темы
Zonar
Дата 31.1.2008, 05:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Доброго времени суток :

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

У меня такой вопрос :


Код

<?php

// Многоуровневое условие.


$autorization = 2;
$no_reg = 2;
$privat_message = 2; // Приватные сообщения
$my_profile = 2;     // Мой профиль
$edit_profile = 2;   // Редактировать профиль
$logout = 2;         // Выйти
$bad = 'Вaли на регистрацию';
$god = '<b><center>Спасибо вы вошли на сайт</b></center>';
$your_password = 2;
$password = 2;
$user = 1;




if ($autorization)
{
    if ($your_password == $password)
    {
        if ($user == $my_profile and $private_message and $edit_profile and $logout)
        {

        }
        print $god;
    } 
    else
    {
        print $bad;
    }
}

?>



Прошу не обращать внимание на все переменные, только на те которые используються.

Суть такая.
После того как человек вводить пароль, система его проверяет с тем паролем который он ввёл, если всё верно то :

if ($user == $my_profile and $private_message and $edit_profile and $logout)  --  пользователь получает соответсвующие привилегии.


Получит ли он привилегии ? правильно ли написан запрос ?

Спасибо за ответ.

PM MAIL   Вверх
GeneralElectric
Дата 31.1.2008, 10:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Честно говоря, вопрос не очень понятен.
Написано, что есть грабли, но не написано - какие. Может быть, не грабли, а трудности с пониманием?
Вопрос "будет ли работать" в общем случае лучше задавать интерпретатору РНР, а не посетителям форума. Интерпретатор даст точный ответ, а человек может и ошибиться. Да и быстрее получится.

Цитата(Zonar @  31.1.2008,  05:35 Найти цитируемый пост)
if ($user == $my_profile and $private_message and $edit_profile and $logout)  --  пользователь получает соответсвующие привилегии.

Самый непонятный абзац.
Пользователь получает какие-то привилегии с помощью этого кода? Или с помощью этого что-то проверяется? Какой юзер и какие привилегии должен получить? Как долждно выражаться в коде "получение привилегий"? Какие переменные присвоены или ещё что-то?
PM MAIL   Вверх
Zonar
Дата 31.1.2008, 11:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(GeneralElectric @ 31.1.2008,  10:45)
Честно говоря, вопрос не очень понятен.
Написано, что есть грабли, но не написано - какие. Может быть, не грабли, а трудности с пониманием?
Вопрос "будет ли работать" в общем случае лучше задавать интерпретатору РНР, а не посетителям форума. Интерпретатор даст точный ответ, а человек может и ошибиться. Да и быстрее получится.

Цитата(Zonar @  31.1.2008,  05:35 Найти цитируемый пост)
if ($user == $my_profile and $private_message and $edit_profile and $logout)  --  пользователь получает соответсвующие привилегии.

Самый непонятный абзац.
Пользователь получает какие-то привилегии с помощью этого кода? Или с помощью этого что-то проверяется? Какой юзер и какие привилегии должен получить? Как долждно выражаться в коде "получение привилегий"? Какие переменные присвоены или ещё что-то?

Вот я переделал, но не уверен в правильности, а программа говорит что всё верно.


Код

// Многоуровневое условие.


$admin_news = 1;
$autorization = 2;
$no_reg = 2;
$privat_message = 2; // Приватные сообщения
$my_profile = 2; // Мой профиль
$edit_profile = 2; // Редактировать профиль
$logout = 2; // Выйти
$bad = '<b><center>Вы ввели неверный  логин или пароль.</b></center>';
$god = '<b><center>Спасибо вы вошли на сайт</b></center>';
$your_password = 2;
$password = 2;
$user = 1;


if ($your_password == $password and $your_login == $login) // Что нужно для того что бы :
{
    if ($status == 'admin')  // Кем должен быть
    {
        $admin_news and $admin_edituser and $admin_files;  // Какие получит права
    } elseif ($status == 'moder') // Кем должен быть
    {
        $moder_news and $moder_files; // Какие получит права
    } elseif ($status == 'user') // Кем должен быть
    {
        $edit_profile and $my_profile;// Какие получит права
    } elseif ($status == 'guest') // Кем должен быть (Лохом)
    {
        $no_priviliges; // Нихера он не получит
    }
    print $god;


} else
{
    print $bad;
}


?>


Это сообщение отредактировал(а) Zonar - 31.1.2008, 11:23
PM MAIL   Вверх
GeneralElectric
Дата 31.1.2008, 12:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Теперь гораздо понятнее. 
Но осталось непонятным твое стремление написать длинную строку из переменных и операторов AND.
Какой результат должен быть получен? 
"Права" - это что? Какое отражение в скрипте имеют эти права? Это переменная, функция, строка? Какое конечно значение они должны принять?

Вот, к примеру, как отразится на пользователе строчка
Код

 $no_priviliges;

?


PM MAIL   Вверх
Zonar
Дата 31.1.2008, 12:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Вообщем это относится к простому пользователю (Гость) который даже не залогинился, а но привилегии в будущем будут браться из базы. Так же как и права администратора, модератора и простого пользователя.


Задание было следущим, составить вложенные условия.

Это сообщение отредактировал(а) Zonar - 31.1.2008, 12:59
PM MAIL   Вверх
GeneralElectric
Дата 31.1.2008, 13:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



А, понятно. То есть, то, что написано внутри условий, никакого смысла не имеет, это пустышки?
Тогда лучше вместо малопонятных конструкций оставить там только комментарии

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.0765 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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