为了账号安全,请及时绑定邮箱和手机立即绑定

mysql 中的第四列数据没有保存 Cookies?

mysql 中的第四列数据没有保存 Cookies?

PHP
一只萌萌小番薯 2021-11-19 16:18:34
我只是在构建一个简单的待办事项列表。我构建了复选框,将其保存为 cookie,以便下次用户可以看到选中的复选框。我的代码的一部分://this code is in a table which shows checkboxes in each row.//tasks is the query which selects all from the database<form action="index.php" method="POST" id="checksubmit" name="checksubmit">    <?php    $i = 1;    while ($row = mysqli_fetch_array($tasks)) { ?>        <tr>            <td class="tick"><div class="custom-control custom-checkbox">                <input  type="checkbox" class="custom-control-input" id="check<?php echo $row['id'];?>" name="arraycheck[]" value="<?php echo $row['id'];?>"                <?php                if ((((isset($_POST['arraycheck'])) && (in_array($row['id'], $_POST['arraycheck'])))) || (isset($_COOKIE[$row['id']]))) {                    if (!isset($_COOKIE[$row['id']])) {                        setcookie ($row['id'],"checked='checked'",time()+3600000);                    }                }                if ((isset($_POST['button-submit'])) && (!in_array($row['id'], $_POST['arraycheck']))) {                    setcookie ($row['id'],"",time()-3600);                }                 echo $_COOKIE[$row['id']];                ?>>                <label class="custom-control-label" for="check<?php echo $row['id'];?>"></label>                </div>            </td>        </tr>    <?php        $i++;    }    ?>代码工作得很好!复选框由 cookie 保存。但问题:只有前四行有效,从第五行开始,一切都不起作用。多么奇怪的错误!
查看完整描述

2 回答

?
开满天机

TA贡献1786条经验 获得超13个赞

您的代码存在一些问题:

  • setcookie()函数调用不会在所有的工作和将失败,“头已经发送”警告。这是您的代码不起作用的主要原因。

  • 您在没有table 的情况下使用tr。如果您有表格之外的表格,我认为这是无效的。

  • 至少在您发布的代码中,表单没有关闭。

  • 如果未设置 cookie,此行会产生“未定义偏移”警告:

    回声 $_COOKIE[$row['id']];

你还应该缩进你的代码,因为那样你可以更好地看到错误。如果尚未完成,请将其添加到开头以查看错误和警告:

error_reporting(E_ALL | E_NOTICE);


查看完整回答
反对 回复 2021-11-19
?
狐的传说

TA贡献1804条经验 获得超3个赞

完整代码:


 <table class="table">

            <thead class="thead-dark">

               <tr>

                  <th>STT</th>

                  <th>Lời nhắc</th>

                  <th style="width: 50px;">Xong?</th>

                  <th style="width: 50px;">Ảnh</th>

               </tr>

            </thead>

            <tbody>

                <form action="index.php" method="POST" id="checksubmit" name="checksubmit">

               <?php $i = 1; while ($row = mysqli_fetch_array($tasks)) { ?>

               <tr>

                  <td> <?php echo $i; ?> </td>

                  <td class="task"> <?php if(isset($_COOKIE[$row['id']])) {echo '<span style="color:gray;"><strike>';} echo $row['task']; if(isset($_COOKIE[$row['id']])) {echo '</strike></span>';} ?> </td>



                  <td class="tick"><div class="custom-control custom-checkbox">

    <input  type="checkbox" class="custom-control-input" id="check<?php echo $row['id'];?>" name="arraycheck[]" value="<?php echo $row['id'];?>" 

        <?php  

            if((((isset($_POST['arraycheck'])) && (in_array($row['id'], $_POST['arraycheck'])))) || (isset($_COOKIE[$row['id']]))) {

                if(!isset($_COOKIE[$row['id']])) {

                    setcookie ($row['id'],"checked='checked'",time()+3600000);   }

            }

            if  ((isset($_POST['button-submit'])) && (!in_array($row['id'], $_POST['arraycheck']))) {

                        setcookie ($row['id'],"",time()-3600);  

                } 




         echo $_COOKIE[$row['id']];    


        ?>>

    <label class="custom-control-label" for="check<?php echo $row['id'];?>"></label>

  </div></td>


  <td><?php if (!empty($row['image'])) { ?> <a href="view.php?idimg=<?php echo $row['id']?>" class="btn btn-primary btn-sm"><i class="fas fa-image"></i></a> <?php } ?></td>

               </tr>

               <?php $i++; } ?> 

               <tr> 

                  <td></td>

                  <td></td>

                  <td></td>

                  <td><input type="submit" value="Lưu" class="btn btn-primary" name="button-submit">

               </form></td>

               </tr>


            </tbody>


         </table>




查看完整回答
反对 回复 2021-11-19
  • 2 回答
  • 0 关注
  • 153 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信