- CodeIgniter 问题:服务器 500 错误。每当我调用 set_userdata() 函数时,它都会触发服务器 500 错误。登录示例代码如下。我在 SiteGround 上托管它。如果我删除 set_userdata 函数,代码工作正常,但登录不起作用。
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); // LOGIN MODEL class Login_model extends CI_Model{ function __construct(){ parent::__construct(); } // VALIDATE METHOD public function validate(){ // grab user input $username = $this->security->xss_clean($this->input->post('username')); $password = $this->security->xss_clean($this->input->post('password')); $this->db->where('username', $username); $this->db->where('password', sha1($password)); $this -> db -> where('activated', 'yes');// Run the query<br> $query = $this->db->get('user_account');// Let's check if there are any results if($query->num_rows == 1)// If there is a user, then create session data { $row = $query->row(); $data = array( 'id' => $row->serial, 'name' => $row->name, 'email' => $row->email, 'password' => $row->password, 'type' => $row->type, 'address' => $row -> address, 'phone' => $row -> phone, 'pic' => $row -> pic,<br> 'validated' => true ); $this->session->set_userdata($data); return true; }// If the previous process did not validate return false;// then return false. } }
?>
问问题
1433 次
2 回答
2
你确定调用set_userdata时会抛出500错误吗?
您可以做的第一件事是启用 error_reporting。一种方法是在主 index.php 文件中将环境设置为“开发”,前提是您已在 php.ini 中启用错误报告。执行此操作后,您可能会看到更详细的错误消息,可帮助您识别问题。
另一方面,在查看您的代码时,我看到了这一行'pic' => $row -> pic,<br>
,并且<br>
在初始化数组时肯定会产生错误,也许就是这种情况
于 2014-01-16T10:14:56.023 回答
0
您应该将参数传递给您的模型,并且不要在其中调用“$this->input->post('username')”
参数:
public function validate($user, $pass){
还要验证您是否已加载安全和数据库库。
于 2014-01-17T06:51:20.597 回答