一些其他条件

时间:2014-04-19 12:23:26

标签: php if-statement

只是想知道是否有人可以帮助我使用此代码。我看不出它失败的地方。

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;

感谢阅读!

1 个答案:

答案 0 :(得分:0)

我认为你在这里有错误:

    setcookie("wstart", $time, time()+96000);           

如果之前定义了$ time,请在将其设置为cookie之前确保它具有值 $ time在任何地方都没有定义,如果你定义它,它将验证if和&#39;输出&#39;停止&#39;按钮