Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 网页有一个重定向循环_Php_Mysql_Codeigniter - Fatal编程技术网

Php 网页有一个重定向循环

Php 网页有一个重定向循环,php,mysql,codeigniter,Php,Mysql,Codeigniter,我这里有一个问题,当我从这个日期预订图书时(例如,预订日期为2013年7月9日,到期日期为2013年11月9日)。为了检查它是否被没收,我注销,然后将日历日期更改为2013年11月9日,然后当我刷新login.form时,它显示网页有一个重定向循环 <?php class Login extends CI_Controller{ function index() { $this->load->model('admin/confirmation_model');

我这里有一个问题,当我从这个日期预订图书时(例如,预订日期为2013年7月9日,到期日期为2013年11月9日)。为了检查它是否被没收,我注销,然后将日历日期更改为2013年11月9日,然后当我刷新login.form时,它显示网页有一个重定向循环

<?php

class Login extends CI_Controller{

function index()
{
    $this->load->model('admin/confirmation_model');
    $data['confirmation'] = $this->confirmation_model->getConfirm();
    $data['main_content'] = 'login_form';
    $this->load->view('includes/template', $data);  

}
//added function update
function update($isbn){
    $statuses = 'Forfeited';
    $data = array(
        'status' => $statuses
    );

    $this->db->where('isbn',$isbn);
    $this->db->update('reserved_dummy',$data);

    $sql = 'update books set stock=stock+1 where isbn=?';
    $this->db->query($sql, $isbn);
    redirect('login');
}

我相信这个问题可能与您使用“美式”日期(m/d/Y)有关。对于计算机来说,这是一种非常模糊的格式。试试下面的方法,看看会发生什么

将所有
date('m/d/Y')
更改为
date('Y-m-d')

原因为何;因为当您将
'09/08/2013'
传递到
strotime()
时,PHP会做出一个“猜测”。猜测的原因是什么?几乎只有美国人用
m/d/Y
格式阅读日期。例如,我读到这个日期是2013年8月9日,但美国人会说它是2013年9月8日


如果将
'2013-09-08'
传递到
strotime()
则不会产生混淆,因为这总是被解释为“Y-m-d”格式

这是我的观点,已经在上面编辑好了。^正如你所知,删除旧注释也是这里的常见做法。我不熟悉CI,但如果“视图”只是一个模板引擎,我会说它是执行
重定向的错误位置-我倾向于将其放在控制器中。然而,这并不能解决眼前的问题——为此,请删除
重定向
,并将其与
回显/退出
交换,这样您就可以查看
$r->date\u expire
。啊,而且
$tomory
看起来是错误的-就像今天一样。我想这取决于CI ORM的工作方式-其中一些使用数据库样式的日期,一些使用本地化的日期。
<?php $date = date('m/d/Y'); 
      $tomorrow = date('m/d/Y',strtotime($date)); 
      if ($confirmation) { 
        foreach($confirmation as $r) { 
           if (date('m/d/Y',strtotime($r->date_expire . "+1 days")) == $tomorrow && $r->status != 'forfeited') { 
              redirect('login/update/'.$r->isbn,'location'); 
           } 
         } 
      } 
?>