【发布时间】:2014-04-19 12:23:26
【问题描述】:
只是想知道是否有人可以帮助我处理此代码。我看不出哪里出错了。
case "3":
echo "
<h2 align=\"center\">Arbeidstid - Start/Stop</h2>";
$today = date("Y-m-d H:i:s");
$userid = $_COOKIE['userid'];
echo "<form action=\"index.php?fid=3\" method=\"post\">";
if (isset($_POST['today'])) {
if (isset($_COOKIE['wstart'])) {
$query=$oDB->Prepare("UPDATE workhours SET stop=:today WHERE userid=:userid");
unset($_COOKIE['wstart']);
setcookie('wstart', '', time() - 3600); //delete or reset cookie
}
else {
$query=$oDB->Prepare("INSERT INTO workhours (userid, start) VALUES (:userid, :today)");
setcookie("wstart", $time, time()+96000);
}
$query->execute(array(':userid' => $userid, ':today' => $today));
header("location:index.php");
if (!$query) {
echo "\nPDO::errorInfo():\n";
print_r($oDB->errorInfo());
}
}
else {
if (isset($_COOKIE['wstart'])) {
echo "<input type=\"hidden\" name=\"today\" value=\"$today\"><input type=\"submit\" value=\"stop\" />";
}
else {
echo "<input type=\"hidden\" name=\"today\" value=\"$today\"><input type=\"submit\" value=\"start\" />";
}
}
echo "</form>";
break;
如果设置了 cookie wstart,它应该显示一个停止按钮,如果没有设置,则该按钮应该显示开始。
停止按钮将执行与开始不同的查询,因为我希望数据值进入停止列,开始值进入开始列。发生的事情是一直显示开始按钮。
除了删除 COOKIE 部分之外几乎可以使用的更新代码
case "3":
echo "
<h2 align=\"center\">Arbeidstid - Start/Stop</h2>";
$today = date("Y-m-d H:i:s");
$userid = $_COOKIE['userid'];
echo "<form action=\"index.php?fid=3\" method=\"post\">";
if (isset($_POST['today'])) {
if (isset($_COOKIE['wstart'])) {
$query=$oDB->Prepare("UPDATE workhours SET stop=:today WHERE userid=:userid ORDER BY start DESC LIMIT 1");
unset($_COOKIE['wstart']);
setcookie('wstart', null, -1, '/'); //delete or reset cookie
}
else {
$query=$oDB->Prepare("INSERT INTO workhours (userid, start) VALUES (:userid, :today)");
setcookie("wstart", $today, time()+96000);
}
$query->execute(array(':userid' => $userid, ':today' => $today));
header("location:index.php");
if (!$query) {
echo "\nPDO::errorInfo():\n";
print_r($oDB->errorInfo());
}
}
elseif (!isset($_POST['today'])) {
if (isset($_COOKIE['wstart'])) {
echo "<input type=\"hidden\" name=\"today\" value=\"$today\"><input type=\"submit\" value=\"stop\" />";
}
else {
echo "<input type=\"hidden\" name=\"today\" value=\"$today\"><input type=\"submit\" value=\"start\" />";
}
}
else { echo "yeah yeah";}
echo "</form>";
break;
感谢阅读!
【问题讨论】:
-
如果设置了今天的 post 变量,您将永远不会显示按钮,除非它没有设置
-
是执行 sql 查询,但如果它没有设置,它将进入一个新的 if elseif,它应该根据 cookie 显示开始或停止按钮 - wstart 已设置。
-
重点,确定今天的变量没有设置?
-
删除时取消设置 cookie。尝试根据此规则取消设置 stackoverflow.com/questions/686155/remove-a-cookie ,因为我认为 cookie 将始终设置
-
我虽然 cookie 检查 else 语句是否应该能够检测到 cookie。如果有 cookie,则应该出现“停止”按钮。
标签: php if-statement