Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.09.2016, 21:44   #1
Artsiom
Форумчанин
 
Аватар для Artsiom
 
Регистрация: 13.07.2012
Сообщений: 357
По умолчанию Action тега form. Отправка post запроса, как?

Доброго времени суток.
Возникла проблема с отправкой введенных данных при авторизации.
Есть направление на страницу авторизации
PHP код:
<?php
return array(
       
'' => 'login/login',
        );
Есть класс логин-контроллер с методом логин)
PHP код:
<?php
class LoginController
{
    public function 
actionLogin()
    {
        
$login '';
        
$password '';
        
        if (isset(
$_POST['submi']))
        {
            
$login $_POST['text'];
            
$password $_POST['password'];
            
            
$errors FALSE;
            
            
//А был ли мальчик?
            
$userID User::checkUserData($login$password);
            
            if (
$userID == FALSE)
            {
                
//Если данные е верны, то показать ошибку на логин-станице
                
$errors[] = 'Неправильные данные для входа на сайт.';
            } else
            {
                
User::auth($userID);
                
                
header("Location: /series/");
            }
        }
        
        include 
ROOT.'/views/login.php';
        return 
TRUE;
    }
}
И самое главное, это форма авторизации
PHP код:
  <form action="#" method="post" class="navbar-form navbar-center" >    
    <
br>
    <
div class="input-group input-group-lg sutype">
        <
div class="input-group-btn">
            <
label for="login" class="btn btn-default btn-lg">
             <
span class="glyphicon glyphicon-user"></span>
            </
label>
        </
div>
            <
input id="login" placeholder="Username" name="login" autofocus class="form-control btn-lg" type="text">
    </
div>
    <
br>   
    <
div class="input-group input-group-lg sutype">
        <
div class="input-group-btn">
            <
label for="password" class="btn btn-default btn-lg">
             <
span class="glyphicon glyphicon-eye-close"></span>
            </
label>
        </
div>
        <
input type="password" name="password" id="password" placeholder="Password" class="form-control btn-lg">
    </
div>
    <
br>
    <
button type="submit" class="btn btn-default btn-lg sutype">
     <
span class="glyphicon glyphicon-log-in"></spanВход
    
</button>
  </
form
Как правильно и что(!) нужно написать в action формы дабы всё это заработало?
Я не понимаю.
При переходе на страницу у меня работает метод логин, который вызывает показ самой страницы с формой. Так?
Перед этим он обрабатывает нажатую кнопку, естественно с первой загрузкой она не нажата.
Когда она нажимается, данные должны быть отправлены опять таки в этот метод логин где мы и проверим логин/пароль на валидность.
Как это организовать?
У меня не получается(
Artsiom вне форума Ответить с цитированием
Старый 29.09.2016, 21:53   #2
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

В action нужно указать "/login/login".
В форме нет никакого поля с name="submi" (как указано в условии) – потому проверка в методе login не сработает никогда.

А, и кстати: поля с name="text" в форме тоже нет – так что $login будет пустым.
Данные в $_POST доступны согласно их атрибуту name.

Последний раз редактировалось Andkorol; 29.09.2016 в 21:57.
Andkorol вне форума Ответить с цитированием
Старый 29.09.2016, 21:54   #3
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

action="login/login"?

И в контролере опечатка submi вместо submit + в форме нет поля с именем text.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 29.09.2016 в 22:59.
Alex11223 вне форума Ответить с цитированием
Старый 29.09.2016, 22:41   #4
Artsiom
Форумчанин
 
Аватар для Artsiom
 
Регистрация: 13.07.2012
Сообщений: 357
По умолчанию

Спасибо!
Не, если указать login/login, только сейчас дошло, то роутер будет ругаться, он таких путей не знает. Нужно оставить поле пустым => login/login в routes. Убрать создание/обнуление переменных логин/пароль и исправить глупые ошибки.

И БД осталась на работе, сейчас даже не смогу посмотреть всё ли работает...
Artsiom вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отправка Post запроса ArrowSoft Компоненты Delphi 6 13.08.2015 17:39
Отправка POST запроса Besha07 PHP 8 18.10.2012 14:28
Отправка post-запроса С# galogen13 C# (си шарп) 3 23.04.2012 15:46
Отправка post-запроса С# galogen13 Помощь студентам 3 22.04.2012 03:20
С# отправка multipart/form-data запроса xata1988 ASP.NET 0 12.10.2011 22:47