Fatal error: Call to a member function emailString() on null Вот такая ошибка. В строке вот в этой PHP: $this->cfe->emailString($string); Вот где лежит сам метод PHP: public function emailString ($value) { /* * Публичная функция * проверяющая правильность * введённого почтового ящика * * * */ echo $value; if (!filter_var($value, FILTER_VALIDATE_EMAIL)) { $this->err[] = "Email указан не правильно"; } } Что такое PHP: $this->cfe // ???? То это вот созданный объект класса cfe PHP: public function __construct() { $this->cfe = new CFE(); } Почему то не пробевает до метода даже эту строчку почему не знаю А что думаете у меня лежит в PHP: $string То вот что я туда передаю bk@bk.ru Выводится перед функцией прекрасно но какого то чёрта не входит вы эту функцию....
PHP: <?php /** * Created by PhpStorm. * User: askanim * Date: 21.06.2016 * Time: 11:00 */ namespace App\Models\Admin\Users; use System\Http\Model\Auth\Users As RegisterUser; use System\Http\Model\Model; class Users extends Model { public function login () { $register = new RegisterUser(); $register->getId('id') ->submit('submit') ->email('user_email') // Вот здесь вхожу в проверку идёт вызов функции ->password('user_password') ->getLogin('Users', 'user_email','user_password', 'user_group'); } public function register () { $register = new RegisterUser(); $register->getRegistration(); } } из скрипта AuthProtect.php --- Добавлено --- PHP: <?php namespace System\Gabriel; class AuthProtect { protected $submit; protected $login; protected $firstName; protected $secondName; protected $email; protected $tel; protected $password; protected $checkPassword; protected $input; protected $text; protected $check; protected $hash; protected $cfe; public function __construct() { $this->cfe = new CFE(); } public function submit($string) { if (isset($_POST[$string])){ $this->submit = $_POST[$string]; return $this; } return $this; } public function login($string) { if (!empty($_POST[$string])) { $string = strip_tags($_POST[$string]); $this->cfe->enLengthString($string); $this->login = $string; return $this; } return $this; } public function fName($string, $min = 3, $max = 30) { if (!empty($_POST[$string])) { $string = strip_tags($_POST[$string]); $this->cfe->enRusString($string); $this->cfe->lengthString($string, $min, $max); $this->firstName = $string; return $this; } return $this; } public function sName($string, $min = 3, $max = 30) { if (!empty($_POST[$string])) { $string = strip_tags($_POST[$string]); $this->cfe->enRusString($string); $this->cfe->lengthString($string, $min, $max); $this->secondName = $string; return $this; } return $this; } public function email($string) { if (!empty($_POST[$string])) { $string = strip_tags($_POST[$string]); echo $string; $this->cfe->emailString('bk@bk.ru'); exit(); $this->email = $string; return $this; } return $this; } public function tel ($string) { if (!empty($_POST[$string])) { $string = strip_tags($_POST[$string]); $this->cfe->telString($string); $this->tel = $string; return $this; } return $this; } public function password($string, $min = 8, $max = 30) { if (!empty($_POST[$string])) { $string = strip_tags($_POST[$string]); $this->cfe->enLengthString($string, $min, $max); $this->password = $string; return $this; } return $this; } public function checkPassword($string) { if (!empty($_POST[$string])) { $string = strip_tags($_POST[$string]); $this->cfe->doubleString($this->password, $string); return $this; } return $this; } public function input($string) { if (!empty($_POST[$string])) { $string = strip_tags($_POST[$string]); return $this; } return $this; } public function text($string) { if (!empty($_POST[$string])) { $string = strip_tags($_POST[$string]); $this->text = $string; return $this; } return $this; } public function check($string) { if (!empty($_POST[$string])) { $check = $_POST[$string]; $this->cfe->checked($check); $this->check = $check; return $this; } return $this; } public function hash($string) { $this->hash = $string; return $this; } } --- Добавлено --- PHP: <?php namespace System\Gabriel; class CFE { private $err; private $name; private $login; private $tel; private $password; private $cPassword; private $email; private $check = []; //CFE = Checking for errors (Система защиты Input полей) public function getName($value) { $this->name = $value; return $this; } public function getLogin($value) { $this->login = $value; return $this; } public function getTel($value) { $this->tel = $value; return $this; } public function getPassword($value) { $this->password = $value; return $this; } public function getCPassword($value) { $this->cPassword = $value; return $this; } public function getEmail($value) { $this->email = $value; return $this; } public function getCheck($value) { $this->check[] = $value; return $this; } public function enRusString ($value) { /* * Публичная функция * проверяющая входящую строку * На Русский-Английский Алфавит * * * */ if (!preg_match("/^[а-яА-Яa-zA-Z]+$/", $value)) { $this->err[] = "Текст в поле ".$value.' может состоять только из букв Русского или Английского алфавита'; } } public function rusString ($value) { /* * Публичная функция * проверяющая входящую строку * На Русский Алфавит * * * */ if (!preg_match("/^[а-яА-Я]+$/", $value)) { $this->err[] = "Текст в поле ".$value.' может состоять только из букв Русского алфавита'; } } public function emailString ($value) { /* * Публичная функция * проверяющая правильность * введённого почтового ящика * * * */ echo $value; if (!filter_var($value, FILTER_VALIDATE_EMAIL)) { $this->err[] = "Email указан не правильно"; } return $value; } public function checked($value) { /* * Публичная функция проверяющая * был ли нажат Ваш input * * * */ if (!isset($value)) { $this->err[] = "Ваш check не был нажат"; } } public function doubleString($valueOne, $valueTwo) { /* * Публичная функция * Позволяющая сравнить коррекцию * двух одинаковых полей * * * */ if ($valueOne != $valueTwo) { $this->err[] = "Ваши пароли не совподают"; } } public function enLengthString($value, $min = 3, $max = 30) { /* * Функция проверяет длину написания текста * и То что введённый текст состоит только из Английских букв * * * */ $this->enString($value); $this->lengthString($value, $min, $max); } public function enString ($value) { /* * Публичная функция * Позволяет проверить Передоваемую строку $value * На наличее в ней только Английских букв * * * */ if (!preg_match("/^[a-zA-Z0-9]+$/", $value)) { $this->err[] = "Текст в поле ".$value.' может состоять только из букв и цифр английского алфавита'; } } public function lengthString ($value, $min = 3 , $max=30) { /* * Публичная функция * озволяет проверить длину вводимого текста $value * где минимум символов это $min, а максимум $max * По умолчанию $min = 3 * А $max = 30 * * * * */ if (strlen($value) < $min or strlen($value) > $max) { $this->err[] = "Текст в поле ".$value.' не может быть меньше '.$min.' и больше '.$max.' символов'; } } public function telString ($value) { /* * Публичная функция позволяющая проверить * Длину вводимого телефона, учитывая +7 * и его правонаписание. * * */ if (!preg_match("/((8|\+7)-?)?\(?\d{3,5}\)?-?\d{1}-?\d{1}-?\d{1}-?\d{1}-?\d{1}((-?\d{1})?-?\d{1})?/", $value)) { $this->err[] = "Пожалуйста введите телефон в формате +79998884434 либо 89998884434"; } $this->lengthString($value, 12, 12 ); } public function getError () { /* * Публичная функция * Возвращает полученное массив, ошибок во время проверки. * * * */ return $this->err; } } --- Добавлено --- 76 строка в классе CFE там находится этот метод, и какого то он не вызывается. Почему :?
Ещё RegisterUser не показал. Подозреваю, что ты там унаследованный конструктор забыл вызвать. В php они автоматом не вызываются --- Добавлено --- А, ну то есть System\Http\Model\Auth\Users
нет не дампил самое обидное что уже дома я. Завтра на работе только посмотрю что сказали. так что уже завтра отпишу
на самом деле я про это только мельком слышал и не шарю как это сделать.... сейчас читаю --- Добавлено --- На самом деле не могу влупить не хватает, источников информации понять, что к чему, а перелапачивать интернет пока времени нет. Работы дофига.
Ты прямо вангуешь, точно под вечер уже запыхался, у меня же это наследуемы класс. вот так надо было сделать PHP: public function __construct() { $this->db = new Model(); parent::__construct(); } А я при вызове того класса, не вызывал конструктор, класса родителя и было вот так PHP: public function __construct() { $this->db = new Model(); }