Я новичок в среде 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