Codeigniter 3.0.3版和PHP 7.2版。我已经安装了Ubuntu 18.04服务器操作系统与mysql,php和apache2。当我在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":""}"
本地主机中不会出现此错误。
在此处输入图像描述
在我的情况下,我在终端中运行命令
sudo a2enmod重写
之后,我重新启动了Apache
systemctl重启apache2
在这两种情况下,您都需要管理员密码
这是一个警告,它也占用了您本地的空间,但可能您已经禁用了警告,或者您正在使用不同版本的PHP。由于您正在解析json,它将无法解析它,因为响应中混合了警告,所以它不是纯json格式。
sizeof
采用一个数组或一个实现Countable的对象。您可以在检查变量是否为数组后使用此函数,方法如下:
is_array($dataVariable)?sizeof($dataVariable):0
如果变量不是数组,则返回零。您也可以在生产中禁用警告。