Codeigniter版本3.0.3和PHP版本7.2。 我已经用mysql,php和apache2安装了Ubuntu 18.04 Server OS。当我在localhost中运行codeigniter项目时,它可以正常运行,但不能在服务器中运行。它加载登录页面,但不重定向到给定页面,仅在提供有效凭据时刷新登录页面。如果有人知道此问题,则有助于解决此问题。
在服务器中加载索引页时出错
<div style="border:1px solid #990000;padding-left:20px;margin:0 0 10px 0;">
<h4>A PHP Error was encountered</h4>
<p>Severity: Warning</p>
<p>Message: sizeof(): Parameter must be an array or an object that implements Countable</p>
<p>Filename: controllers/Login.php</p>
<p>Line Number: 57</p>
<p>Backtrace:</p>
<p style="margin-left:10px">
File: /var/www/html/sample/application/controllers/Login.php<br />
Line: 57<br />
Function: sizeof </p>
<p style="margin-left:10px">
File: /var/www/html/sample/index.php<br />
Line: 292<br />
Function: require_once </p>
</div>
{"status":true,"message":""}"
在本地主机中不会发生此错误。
答案 0 :(得分:1)
对于我来说,我在终端中运行命令
sudo a2enmod重写
之后,我重新启动了Apache
systemctl重新启动apache2
在两种情况下,您都将需要管理员密码
答案 1 :(得分:0)
这是一个警告,也会在您的本地使用,但是您可能已禁用警告或正在使用其他版本的PHP。由于您正在解析json,因此它将无法解析,因为响应中混入了警告,因此它不是纯json格式。
sizeof
采用一个数组或一个实现Countable的对象。您可以在检查变量是否为数组之后使用此函数:
is_array($dataVariable)?sizeof($dataVariable):0
如果变量不是数组,它将返回零。您也可以在生产中禁用警告。