0 / 0 / 0
Регистрация: 12.12.2012
Сообщений: 75

Валидация с проверкой условий

25.01.2016, 16:39. Показов 909. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! При регистрации пользователь может выбрать один из 2-х вариантов с помощью радиокнопки. Результат (преподаватель или студент) записывается в БД.
Как сделать так, чтобы для авторизованного пользователя выводился контент в соответствии с результатом выбора при регистрации, то есть если это преподаватель, то контент один, если студент, то другой?

Код проверки - авторизован ли пользователь
PHP
1
<?php if(Validate::UserStatus() == true): ?>
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.01.2016, 16:39
Ответы с готовыми решениями:

Двумерный массив с проверкой условий
1)Нужно задать одномерный массив и заполнить его значениями. Размер массива 168 значений. 2)Проверить эти значения на условие. Среднее...

Поиск значений с проверкой условий
Народ! Облазил весь Инет и сломал весь свой мозг, но ответ так и нашёл. Задача следующая: Есть таблица примерно 600 строк на 4...

If else несколько условий с проверкой существования переменной
Добрый день. уважаемые форумчане! Возможно, вопрос покажется многим глупым и элементарным, но не могу написать работающий код проверки...

12
Эксперт PHP
3900 / 3238 / 1353
Регистрация: 01.08.2012
Сообщений: 10,914
25.01.2016, 16:58
Ну... вы же записываете в БД права юзера (студент/препод).

В соответствии с этими правами и выводите соответствующий контент.
1
0 / 0 / 0
Регистрация: 12.12.2012
Сообщений: 75
25.01.2016, 17:52  [ТС]
Jodah, А как это реализовать, подскажите, пожалуйста. Я этот результат (препод/студент) записываю в таблицу users в поле status. И я хотел сделать так, чтобы была проверка в по полю Status. Или можно сделать гораздо проще?
0
 Аватар для tarasalk
1992 / 1216 / 440
Регистрация: 13.06.2013
Сообщений: 4,115
25.01.2016, 18:14
Цитата Сообщение от zXus Посмотреть сообщение
Или можно сделать гораздо проще?
Куда проще то?) Проверил роль, подгрузил соответствующий шаблон. Все.
p.s. что за непонятный status, юзайте role.
1
0 / 0 / 0
Регистрация: 12.12.2012
Сообщений: 75
25.01.2016, 23:09  [ТС]
Спасибо за ответ, попробую разобраться с ролями.

Добавлено через 4 часа 8 минут
Указал 2 условия, но не сайт перестал грузиться. Подскажите, как обратиться к той роли, которая указана в БД?
PHP
1
<?php if (role === "Студент"): ?>
0
Эксперт PHP
3900 / 3238 / 1353
Регистрация: 01.08.2012
Сообщений: 10,914
25.01.2016, 23:30
Что такое role и почему три значка равно?
0
0 / 0 / 0
Регистрация: 12.12.2012
Сообщений: 75
26.01.2016, 00:22  [ТС]
role - это поле в таблице users в БД. Его мы записываем при регистрации (Преподаватель студент). Равно я поставил, чтобы проверить, какое значение в role.
0
Эксперт PHP
3900 / 3238 / 1353
Регистрация: 01.08.2012
Сообщений: 10,914
26.01.2016, 08:28
zXus, нет, что такое role в вашем коде? Почему не $role, не $row['role']? Или именно константа role?
0
0 / 0 / 0
Регистрация: 12.12.2012
Сообщений: 75
26.01.2016, 11:23  [ТС]
Как я думаю переменная, в которой записано значение из БД. В интернете нашел похожий пример.
0
Эксперт PHP
3900 / 3238 / 1353
Регистрация: 01.08.2012
Сообщений: 10,914
26.01.2016, 13:55
zXus, если переменная, то почему не $role?
1
0 / 0 / 0
Регистрация: 12.12.2012
Сообщений: 75
26.01.2016, 17:53  [ТС]
Точно, моя ошибка... Пишет, что переменная не определена.
Вот код регистрации пользователей.
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
private $db;
    public function __construct(){
        $this->db = Connect::_self()->mysql();
    }
    /**
     * Регистрация пользователей
     * */
     public function signup($data){
        if(strlen($data['password']) < 6)
          throw new Exception('Длина пароля должна быть не менее 6 символов');
        if(empty($data['email']))
          throw new Exception('E-mail не может быть пустым'); 
        if($data['captcha'] != $_SESSION['captcha']){
            throw new Exception("Капча введена не верно");
        }
        $email = validate::clear($data['email']);
        if(!$this->UniqEmail($email)) throw new Exception('Такой email уже зарегистрирован!');
        $password = validate::hashInit($data['password']);
        $name = validate::clear($data['name']);
        $role = validate::clear($data['role']);
        if(validate::EmailValidate($email) === false)
           throw new Exception('Введите корректный email');
        $time = time();
        //Регистрируем пользователя
        $query = $this->db->prepare("INSERT INTO `users` (`email`,`password`,`name`,`role`,`date_register`, `activate`) 
                                     VALUES(:email, :password, :name, :role, $time, 0)");
        $query->bindParam(':email', $email, PDO::PARAM_STR, 155);
        $query->bindParam(':password', $password, PDO::PARAM_STR, 155); 
        $query->bindParam(':name', $name, PDO::PARAM_STR, 100); 
        $query->bindParam(':role', $role);                              
       
       if($query->execute()){
        //отправляем письмо активации
        $id = $this->db->lastInsertId();
        $key_hash = validate::hashInit($email."::".$password);
        $link_activate = HTTP_PATH."activate/".$id."/".$key_hash;
        mail::new_mail($email, "Активация аккаунта!", "Здравствуйте, вы зарегистрировались в скрипте ЛК. \n\r 
         Для подтверждения аккаунта, кликните по ссылке активации:" .  $link_activate . "\n\r"); 
         
         return true;
       }
Разве это не определение переменной?
PHP
1
$query->bindParam(':role', $role);
0
 Аватар для tarasalk
1992 / 1216 / 440
Регистрация: 13.06.2013
Сообщений: 4,115
26.01.2016, 18:55
Цитата Сообщение от zXus Посмотреть сообщение
Точно, моя ошибка... Пишет, что переменная не определена.
Цитата Сообщение от zXus Посмотреть сообщение
Разве это не определение переменной?
Нет. Это подстановка переменной в sql запрос.
И походу вы нам разные файлы показываете, переменные так просто с одного файла в другой не прыгают.

Раз такие вещи не знаете то рано вам еще регистрацию писать. Изучайте основы.
1
0 / 0 / 0
Регистрация: 12.12.2012
Сообщений: 75
26.01.2016, 23:50  [ТС]
Вроде разобрался, но теперь почему-то на сайте пропал весь контент, где стоит php код.

Вот выложу весь код в тегах Body

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
<body>
        <div class="wrap">
            <div class="row">
                
                        
                <!-- Проверяем авторизован ли юзер -->
            <?php if(Validate::UserStatus() == true): ?>
                <?php 
                    $query = "SELECT 'role' FROM 'users'";
                    $result=mysql_query($query);
                    $r=mysql_fetch_array($result);
                    if ($r['role'] === "Преподаватель"): 
                ?>
                    <div class="small-1 columns side-nav">      
                        <div class="">
                            <ul class="menu vertical">
                                <li><a href="<?=HTTP_PATH;?>">Главная</a></li>
                                <li><a href="users">Другие пользователи</a></li>
                                <li><a href="profile">Профиль</a></li>
                                <li><a href="logout">Выход</a></li>
                            </ul>
                        </div>
                    </div>
                    <div class="small-11 columns">
                        <h1>ПРЕПОД</h1>
                        <h3>Веб-сервис</h3>    
                        <?php if(route::dispatcher() == "users"): ?>
                            <?php include_once 'users.tpl.php'; ?>
                        <?php elseif(route::dispatcher() == "profile"):?>
                            <?php include_once 'profile.tpl.php';   ?>
                        <?php else: ?>          
                        <div class="wrap-validate">
                            <div class="row medium-uncollapse large-collapse mrg-bot">
                                <div class="small-6 columns padd-right">
                                    <div class="block-content">
                                        111
                                    </div>                  
                                </div>
                                <div class="small-6 columns padd-left">
                                    <div class="block-content">
                                        222
                                    </div>
                                </div>
                            </div>
                            <div class="row medium-uncollapse large-collapse">
                                <div class="small-6 columns padd-right">
                                    <div class="block-content">
                                        333
                                    </div>
                                </div>
                                <div class="small-6 columns padd-left">
                                    <div class="block-content">
                                        444
                                    </div>
                                </div>
                            </div>
                        </div>
                        <?php endif; ?>
                    </div>
                <?php 
                    elseif ($r['role'] === "Студент"): 
                ?>
                    <h1>СТУДЕНТ</h1>
                        
                <?php endif; ?>             
            <?php else: ?>
                <div class="small-12 columns">
                    <h3>Веб-сервис</h3>
                      <?php include_once 'login.tpl.php'; ?>
                    <?php if(route::dispatcher() == "signup"): ?>
                      <?php include_once 'sign.tpl.php'; ?>
                    <?php elseif(route::dispatcher() == "recover"): ?>
                      <?php include_once 'repassword.tpl.php'; ?>
                    <?php endif; ?> 
                </div>
            <?php endif; ?>
            </div>
        </div>
        <div class="copyright">
            &copy; <?=date('Y');?> 
        </div>
    </body>
ПРЕПОД и СТУДЕНТ в тегах H1 это для наглядности. То есть что будет видеть препод, а что студент, когда авторизуются
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.01.2016, 23:50
Помогаю со студенческими работами здесь

"Мало начальных условий" при решении системы из 7 ДУ, хотя граничных условий 8
Имеется такая система, http://regfoto.ru/images/172Mathcad_2_.jpg маткад пишет что граничных условий недостаточно, хотя их там с...

Как прописать несколько условий при ИСТИНА и несколько условий при ЛОЖЬ?
Всем доброго времени суток. If &amp; Else как прописать несколько условий при ИСТИНА и несколько условий при ЛОЖЬ ? Напр В11:С18...

Добавление в БД с проверкой
есть БД(access,её данные выводятся на форму),в ней есть два поля (дата и время) при каждом новом добавлении в бд,нужна проверка по этим...

Копирование с проверкой
добрый день. на форме выполняю копирование файлов следующим образом: Sub Copy_File() Dim objFSO As Object, objFile As Object ...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

Новые блоги и статьи
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru