Php CodeIgniter会话错误
我对Codegniter框架相当陌生。我想为我的网站设置一个会话,但只要我点击浏览器的后退按钮,它就会转到我网站的主(登录)页面,当我单击“下一步”时,页面显示“未找到”。此外,在欢迎页面上,当我按下该按钮时,我也会进入登录页面,但会话数据仍然存在 以下是我的控制器(Welcome.php)的代码: My login.php视图:Php CodeIgniter会话错误,php,json,codeigniter,session,Php,Json,Codeigniter,Session,我对Codegniter框架相当陌生。我想为我的网站设置一个会话,但只要我点击浏览器的后退按钮,它就会转到我网站的主(登录)页面,当我单击“下一步”时,页面显示“未找到”。此外,在欢迎页面上,当我按下该按钮时,我也会进入登录页面,但会话数据仍然存在 以下是我的控制器(Welcome.php)的代码: My login.php视图: <?php defined('BASEPATH') OR exit('No direct script access allowed'); ?> &
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>
<?php echo $title; ?>
</title>
</head>
<body>
<div id="container">
<h1>
<?php echo "login"; ?>
</h1>
<?php
echo form_open('welcome/loginapi');
echo validation_errors();
echo "<p>Username: ";
echo form_input('username');
echo "</p>";
echo "<p>Password: ";
echo form_password('password');
echo "</p>";
echo "<p>";
echo form_submit('login_submit','Login');
echo "</p>";
echo form_close();
var_dump($this->session->all_userdata());
?>
<p class="footer">Page rendered in <strong>{elapsed_time}</strong>
seconds.
<?php echo (ENVIRONMENT === 'development') ? 'CodeIgniter
Version <strong>' . CI_VERSION . '</strong>' : '' ?></p>
</div>
</body>
</html>
My welcome_message.php视图
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
?><!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title><?php echo $title; ?></title>
</head>
<body>
<div id="container">
<h1><?php echo "welcome page"; ?></h1>
<div id="body">
<?php
//var_dump($empid);
var_dump($this->session->all_userdata('password'));
echo form_open('welcome/getdata');
echo form_hidden('_hidden_field',$this->session-
>all_userdata('empid'));
echo "<p>";
echo form_submit('get_user','Users');
echo "</p>";
echo form_close();
?>
<?php
echo form_open('welcome/logout');
echo "<p>";
echo form_submit('logout','Logout');
echo "</p>";
echo form_close();
?>
</div>
<p class="footer">Page rendered in <strong>{elapsed_time}</strong>
seconds. <?php echo (ENVIRONMENT === 'development') ? 'CodeIgniter Version
<strong>' . CI_VERSION . '</strong>' : '' ?></p>
</div>
</body>
</html>
编辑:
当我点击用户按钮时,它会通过getdata函数将我带到hr.php,当我返回时,它会将我带到welcome_message.php,但当我按下forward按钮时,它会从welcome_message.php告诉我重新提交
这是我的hr.php视图:
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
?><!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title><?php echo $title; ?></title>
</head>
<body onunload="">
<div id="container">
<h1><?php echo "Human Resource Management"; ?></h1>
<div id="body">
<div class="row">
<div class="col-lg-12">
<h1>Human Resource Management</h1>
<?php
echo form_open('welcome/registeruser');
echo "<p>";
echo form_submit('get_user','Register');
echo "</p>";
echo form_close();
?>
<br>
<br>
</div>
</div>
<div class="row">
<div class="col-lg-12">
<div class= "panel panel-default">
<div class="panel-heading">
<h4>Registered Employees</h4>
</div>
<div class="panel-body">
<table class="table table-hover">
<thead>
<tr>
<th>Name</th>
<th>Gender</th>
<th>E-mail</th>
<th>Contact No.</th>
<th>Username</th>
<th>Emp ID</th>
<th>Department</th>
<th>Designation</th>
</tr>
</thead>
<tbody>
<?php
foreach ($response as $object) {
?>
<tr>
<td><?php echo $object->firstname; ?> <?php echo
$object->lastname; ?></td>
<td><?php echo $object->gender; ?></td>
<td><?php echo $object->email; ?></td>
<td><?php echo $object->contactno; ?></td>
<td><?php echo $object->username; ?></td>
<td><?php echo $object->empid; ?></td>
<td><?php echo $object->department; ?></td>
<td><?php echo $object->designation; ?></td>
<td><?php
echo form_open('welcome/deleteuser');
echo $object->empid;
$empid=$object->empid;
$department=$object->department;
echo form_hidden('empid',$empid);
echo form_hidden('department',$department);
echo "<p>";
echo form_submit('get_user','Delete');
echo "</p>";
echo form_close();
?></td>
</tr>
<?php
}?>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
<p class="footer">Page rendered in <strong>{elapsed_time}</strong>
seconds. <?php echo (ENVIRONMENT === 'development') ? 'CodeIgniter
Version
<strong>' . CI_VERSION . '</strong>' : '' ?></p>
</div>
</body>
</html>
人力资源管理
注册雇员
名称
性别
电子邮件
联络电话。
用户名
Emp ID
部门
任命
 
我想在我的整个网站上保持会话,直到用户选择注销(销毁它)。
提前谢谢。您需要使用
$this->session->userdata('is\u logged\u in')
获取会话值您应该更改此行,检查会话值
if($this->session->all_userdata('is_logged_in')==1){
$this->load->view('welcome_message');
}
作为
可以更好地使用===运算符
//as your session value is string
if($this->session->userdata('is_logged_in')=== '1')
{
$this->load->view('welcome_message');
}
这就解决了我的问题。非常感谢。我还希望我的网站通过单击浏览器中的“后退”和“前进”按钮在页面之间来回切换,但它总是告诉我重新提交表单。单击“后退”按钮时,您需要刷新页面。参考这个@GopalBhuva,我试着在我的身体标签中添加“onunload=”“,但前进按钮不起作用。我不知道答案中的新PHP文件应该如何集成@GopalBhuva Sorry man这也不起作用,它给了我一个错误“无法修改标题信息-标题已由发送(输出开始于C:\wamp\www\CodeIGN\application\controllers\Welcome.php:115)”所有\u userdata()都不推荐用于更多阅读
if($this->session->all_userdata('is_logged_in')==1){
$this->load->view('welcome_message');
}
if($this->session->userdata('is_logged_in')==1)
{
$this->load->view('welcome_message');
}
//as your session value is string
if($this->session->userdata('is_logged_in')=== '1')
{
$this->load->view('welcome_message');
}