Я написал код, который безупречно работает на моем локальном хосте, но не может успешно войти в систему даже с правильными учетными данными, поскольку приложение продолжает возвращаться к странице входа в систему.
Поскольку локально приложение работает нормально, я предполагаю, что моей проблемой будет проблема с php / apache или / и конфигурацией. Я попытался несколько настроек в моем файле .htaccess безуспешно. приложение было написано с использованием codeigniter Framework версии 2.2.0
контроллер входа в систему
function ajax_login()
{
$response = array();
$url = $this->get_url();
if (strpos($url, 'students') !== FALSE)
{
$mat_no = $_POST["mat_no"];
}else
{
$email = $_POST["email"];
}
//Recieving post input of email, password from ajax request
//$email = $_POST["email"];
$password = $_POST["password"];
$response['submitted_data'] = $_POST;
//$login_status = $this->validate_login_student( $mat_no , $password );
//Validating login
$url = $this->get_url();
if (strpos($url, 'students') !== FALSE)
{
$login_status = $this->validate_login_student( $mat_no , $password );
}else
{
$login_status = $this->validate_login( $email , $password );
}
$response['login_status'] = $login_status;
if ($login_status == 'success') {
$response['redirect_url'] = '';
}
//Replying ajax request with validation response
echo json_encode($response);
}
function logout()
{
$acctype = $this->session->userdata('login_type');
if ($acctype == 'admin')
{
$acctype = 'webadmin';
}elseif ($acctype == "student"){
$acctype = 'students';
}elseif ($acctype == "teacher"){
$acctype = 'teachers';
}
elseif ($acctype == "parent"){
$acctype = 'parents';
}
$this->session->unset_userdata();
$this->session->sess_destroy();
$this->session->set_flashdata('logout_notification', 'logged_out');
redirect(base_url().$acctype , 'refresh');
}
routes.php
$route['default_controller'] = "login";
$route['404_override'] = '';
$route['students'] = "login";
$route['teachers'] = "login";
$route['parents'] = "login";
$route['webadmin'] = "login";
JS-обработчик Ajax
var segment = '';
if (/students/.test(window.location.href))
{
segment = 'students/';
}
$.ajax({
url: baseurl + segment + 'index.php?login/ajax_login',
method: 'POST',
dataType: 'json',
data: formdata,
error: function()
{
alert("An error occoured!");
},
success: function(response)
{
// Login status [success|invalid]
var login_status = response.login_status;
var redirect_url = baseurl;
if(response.redirect_url && response.redirect_url.length)
{
redirect_url = response.redirect_url;
}
window.location.href = redirect_url;
// Form is fully completed, we update the percentage
neonLogin.setPercentage(100);
// We will give some time for the animation to finish, then execute the following procedures
setTimeout(function()
{
// If login is invalid, we store the
if(login_status == 'invalid')
{
$(".login-page").removeClass('logging-in');
neonLogin.resetProgressBar(true);
}
else
if(login_status == 'success')
{
// Redirect to login page
setTimeout(function()
{
var redirect_url = baseurl + segment;
if(response.redirect_url && response.redirect_url.length)
{
redirect_url = response.redirect_url;
}
window.location.href = redirect_url;
}, 400);
}
}, 1000);
}
});
.htaccess
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
RewriteCond %{HTTPS} off
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
приложение должно перенаправлять на панель управления после успешного входа;