Я получаю это сообщение Fatal Error Message в своем кодеIgniter, я уже пробовал некоторые ответы, у которых есть тот же вопрос.
Я уже установил свой php.ini
max_execution_time = 300 max_input_time = 600 memory_limit = 128M
Но все же я получаю одно и то же сообщение Fatal error, я не знаю, есть ли проблема в моем коде или в настройках php.
Вот некоторые мои коды в контроллере:
public function blog(){ $this->load->model("blog_model"); $data["title"] = "CodeIgniter Projects - Blog"; if($this->getLastUrl() == 'blog'){ $data["result"] = $this->blog_model->getBlogs(); $this->load->view("view_blog", $data); }else{ $blog_name = $this->getLastUrl(); $data["result"] = $this->blog_model->getBlogDetails($blog_name); $data["comment"] = $this->blog_model->getBlogComments($blog_name); $this->load->view("view_blog_details", $data); //check for reply $url =$_SERVER['REQUEST_URI']; $getLast = explode("/", $url); $last = end($getLast); if($last == 'reply'){ $this->load->library('form_validation'); $this->form_validation->set_rules('name', 'Name', 'trim|required|min_length[4]|xss_clean'); $this->form_validation->set_rules('message', 'Comment', 'trim|required|min_length[4]|xss_clean'); $this->form_validation->set_rules('email', 'Email Address', 'trim|required|valid_email'); if($this->form_validation->run() == FALSE) { $this->blog(); } else { $msg = 'Message sent.'; $this->blog_model->addBlogComment(); $this->blog(); } } } }
Моя основная функция – добавить новый комментарий в блог, он работает, но он вставляет повторяющиеся данные, и я не могу избавиться от фатального сообщения об ошибке.
Функция addBlogComment
function addBlogComment () { $ = Данные массива ( 'blog_id' => $ this-> input-> post ('blog_id'), 'name' => $ this-> input-> post ('name'), 'email' => $ this-> input-> post ('email'), 'message' => $ this-> input-> post ('message'), 'created' => date ('Ymd H: i: s') ); $ This-> db-> вставить ( 'комментарий', $ данных); }
Я только что обнаружил неправильный цикл в моем коде. Цикл не будет иметь выхода, и он снова закроется.
if($this->form_validation->run() == FALSE) { $this->blog(); } else { $msg = 'Message sent.'; $this->blog_model->addBlogComment(); $this->blog(); }
он всегда будет возвращать ложное значение, чтобы он выполнял и не выполнял конца цикла.
Попробуйте создать свой контроллер следующим образом:
public function blog( $blog_name = '', $action = '' ){ $this->load->model("blog_model"); // What if there is no blog name in the url if ( empty( $blog_name ) ) { // Load the list of blogs $data["result"] = $this->blog_model->getBlogs(); $this->load->view("view_blog", $data); } else { // If the blog name in url exists and there is no action display the blog if ( !empty( $blog_name ) && empty( $action ) ) { $blog_name = $this->getLastUrl(); $data["result"] = $this->blog_model->getBlogDetails( $blog_name ); $data["comment"] = $this->blog_model->getBlogComments( $blog_name ); $this->load->view("view_blog_details", $data); } // else If there is the action "reply" check if there is some post else if ( $action == 'reply' && $this->input->post( 'Comment' ) ) { $this->load->library( 'form_validation' ); $this->form_validation->set_rules( 'name', 'Name', 'trim|required|min_length[4]|xss_clean' ); $this->form_validation->set_rules( 'message', 'Comment', 'trim|required|min_length[4]|xss_clean' ); $this->form_validation->set_rules( 'email', 'Email Address', 'trim|required|valid_email' ); if($this->form_validation->run() == FALSE) { redirect( site_url( $blog_name ) ); } else { $msg = 'Message sent.'; $this->blog_model->addBlogComment(); // Redirect to prevent F5 submitting duplicate data redirect( site_url( $blog_name ) ); } } } }