Загрузить представление из вопроса контроллера - PullRequest
0 голосов
/ 12 июня 2018

Я новичок в среде CodeIgniter и мне нужна помощь, пожалуйста.У меня есть проблема, чтобы перенаправить пользователя обратно в форму «Связаться с нами» после ее отправки.

Мой контроллер по умолчанию определен, как показано ниже.

<?php

class Pages extends CI_Controller {

    public function __construct() {
        parent::__construct();
    }

    public function view($page = 'home') {
        if (!file_exists(APPPATH . 'views/pages/' . $page . '.php')) {
            show_404();
        }

        $data['title'] = ucfirst($page);

        $this->load->view('templates/header');
        $this->load->view('pages/' . $page, $data);
        $this->load->view('templates/footer');
    }

} 

Теперь мои страницы просмотра находятся в подкаталоге, называемом страницами, например /application/views/pages/contact-us.php.Поэтому, когда я захожу на эту страницу как http://www.example.com/contact-us, она работает нормально и загружает форму обратной связи, как и ожидалось.

Посмотрите на мой файл .htaccess, который удаляет index.php из URL.

RewriteEngine on
RewriteCond %{SERVER_PORT} 80
RewriteCond %{HTTP_HOST} ^(www\)?example\.com
RewriteRule ^(.*)$ http://www.example.com/$1 [R,L]
RewriteCond $1 !^(index\.php|assets|images|js|css|uploads|favicon.png|resources|robots\.txt)
RewriteCond %(REQUEST_FILENAME) !-f
RewriteCond %(REQUEST_FILENAME) !-d
RewriteRule ^(.*)$ index.php?/$1 [L,QSA]

А также посмотрите на мой файл route.php.

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

$route['sendemail'] = 'sendemail/index';

$route['default_controller'] = 'pages/view';
$route['(:any)'] = 'pages/view/$1';

$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE; 

Теперь, после того, как пользователь отправляет контактную форму, он отправляется на контроллер SendEmail.php, а затем я хочу, чтобы пользователь вернулся в форму "Свяжитесь с нами" с сообщением об успешном или сбойном сообщении.Я получаю письмо на свою учетную запись gmail, но когда дело доходит до загрузки VIEW, оно не работает.

Посмотрите на код контроллера SendEmail.php

<?php

defined('BASEPATH') OR exit('No direct script access allowed');

class SendEmail extends CI_Controller {

    public function __construct() {
        parent::__construct();
    }

    public function index() {
        // Check form submit or not
        //var_dump($this->input->post());

        if ($this->input->post('submit') != NULL) {

            // POST data
            $postData = $this->input->post();

            //SMTP related configuration is defined in /config/email.php
            //it loads automatically by CodIgniter
            
            $this->load->library('email');
            $this->email->set_newline("\r\n");

            $this->email->from($postData['email'], $postData['name']);
            $this->email->to(ADMIN_CURRENT_EMAIL);

            $this->email->subject(CONTACT_US_FORM_SUBJECT);
            $this->email->message('Testing the email class.');

            $data['is_error'] = false;

            if ($this->email->send()) {
                $data['message'] = 'The email has been sent successfully.';
            } else {
                $data['is_error'] = true;
                $data['message'] = 'Sorry, the email was not sent successfully. Try again later or send a direct email to ' . ADMIN_CURRENT_EMAIL;
                //echo $this->email->print_debugger();
            }
            
            $this->load->view('contact-us', $data);           
            
        } else {
            echo "Invalid request.";
            die();
        }
    }

}

?>

Я получаю ошибку ниже.Как я уже говорил выше, мне удается получить электронную почту на мою учетную запись gmail, но загрузка представления не работает.

Обнаружена ошибка Не удалось загрузить запрошенный файл: contact-us.php

Можетпожалуйста, помогите мне?

Спасибо - Hitesh

1 Ответ

0 голосов
/ 28 июня 2018

для перенаправления на последнюю страницу, вы можете использовать этот код.

redirect($_SERVER['HTTP_REFERER']);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...