gpt4 book ai didi

php - 如何将前几天显示为只读?

转载 作者:行者123 更新时间:2023-11-29 07:23:13 25 4
gpt4 key购买 nike

有人可以查看下面的代码并告诉我我做错了什么吗?我想要完成的是让前几天只读,如果过去并且给定的时间也过去了就不能改变。数据保存在 mysql 表中(抱歉我的英语不好)谢谢

<?php 
require_once '../../configuratie.php';

include template. 'header.php';

date_default_timezone_set('Europe/Amsterdam');
$time=date('Hi');
$datum = isset($_GET['datum']) ? $_GET['datum'] : date('Y-m-d ');
$prevDay = date('Y-m-d', strtotime($datum .' -1 day'));
$currentDay = date('Y-m-d H:i:s', strtotime($datum .' now'));
$nextDay = date('Y-m-d', strtotime($datum .' +1 day'));

$row = $conn->prepare(" SELECT * FROM tabelPL WHERE aangemaakt >= '".$currentDay."' order by aangemaakt ");
$row->execute();
$row = $row->fetch(PDO::FETCH_ASSOC);

if(isset($_POST['submit_ochtend'])) {
$P20 = filter_input(INPUT_POST, 'P20', FILTER_SANITIZE_STRING);

最佳答案

您的主要问题似乎出在这里:

<?php if ( ($time >= "0600") && ($time <= "1400") === $prevDay)  : ?>

($time <= "1400")将评估为 True 或 False,您正在尝试将其与日期进行比较。

改为$currentDay需要像这样针对服务器日期单独评估。

<?php if ( ($time >= "0600") && ($time <= "1400") && date("Y-m-d") == $currentDay)  : ?>

另外,您不需要接受 !empty($row['P20'] . Placeholder Text 仅在没有内容时显示;所以,你总是可以包含它,浏览器会判断你是否需要它。因此,您的整个输出可以简化为:

<?php 
if (($time >= "0600") && ($time <= "1400") && (date("Y-m-d") == $currentDay)) {
echo'<textarea id="P20_ocht" name="P20" class="form-control animated" placeholder="Type hier uw tekst">'.$row['P20'].'</textarea>';
} else {
echo'<textarea id="P20_ocht" name="P20" class="form-control animated" placeholder="Type hier uw tekst" readonly>'.$row['P20'].'</textarea>';
}
?>

最后要考虑的是安全性。仅仅因为您添加了只读标签并不意味着其他人无法在浏览器中编辑 HTML 以将其删除;所以,如果这是一个问题,您还想在 PHP 或 SQL 中创建一个异常(exception),以抛出对过去日期的更新请求,这可能看起来像这样:

$update_query = "UPDATE tabelPL SET P20 = ?, aangemaakt = NOW() WHERE id = ? AND aangemaakt >= ? LIMIT 1"; 
$stmt = $conn->prepare($update_query);
$stmt->bindParam(1, $P20, PDO::PARAM_STR);
$stmt->bindParam(2, $id, PDO::PARAM_INT);
$stmt->bindParam(3, $currentDay, PDO::PARAM_STR);
$stmt->execute();

关于php - 如何将前几天显示为只读?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55165151/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com