2015-08-12 2 views
0

У меня есть login.php и signup.php. Оба отправляют POST-запросы в класс контроллера.Условие в классе PHP

Как определить, из какого сценария поступает запрос?

isset($_POST['signup']) использованием работал отлично, но потом

public function __set($name,$value) 

в функции signup() выдает ошибку.

<?php 

class Controller{ 

    public $model;  
    private $full_name; 
    private $email; 
    private $password; 
    private $user_name; 

    public function __construct(){ 
     if(isset($_POST['signup'])){ 
      $this->full_name = $_POST['full_name']; 
      $this->email = $_POST['email']; 
      $this->password = $_POST['password']; 
      $this->user_name = $_POST['user_name']; 
     } 
    } 

    public function __set($full_name,$value){ 
    } 
} 
+0

Если кто-то хочет больше объяснений, прошу прокомментировать здесь :)) Я объясню больше! –

+1

хорошо, 'public setter' является синтаксической ошибкой. это написано 'public function __get()'. RTFM? –

+0

К сожалению, я пробовал публичную функцию __set(), позвольте мне изменить вопрос. Но это создает непредвиденную публикацию об ошибке. Я использовал этот сеттер в методе в классе. –

ответ

1

comment

Но это дает ошибка неожиданной публики. Я использовал этот сеттер в методе класса.

методы класса входят в общий класс, а не в функции.

class foo { 
    public function __get() { 
    } 
} 

comment

Но оба signup.php & форма login.php посылает запрос к этому классу. Таким образом, существует большая разница в полях их

Нет никакого смысла, чтобы ваш контроллер проверял ваши поля в конструкторе. Либо сделайте его LoginController и SignupController, либо у вас есть отдельный класс, подтверждающий ваши входы.

+1

Спасибо :) Я собираюсь создать LoginController & RegistrationController! –

1

Вы можете добавить скрытый ввод, содержащий форму. например, в форме входа вы можете добавить

<input type="hidden" name="requestType" value="login" /> 

и формы регистрации

<input type="hidden" name="requestType" value="signup" /> 

затем на ваш PHP скрипт вы можете получить значение скрытого ввода

$_POST['requestType'] 
+0

Я тоже пробовал. , но в моем классе php, как я могу использовать условие, потому что условие в классе недопустимо. Я знаю, что могу проверить это, используя if ($ _ POST ['requestType'] == "login") dothis(); , но я говорю о состоянии в моем классе. o_O –

Смежные вопросы