【问题标题】:isset function does not workingisset 功能不起作用
【发布时间】:2016-10-29 03:26:19
【问题描述】:

下面我插入了我的两个表格

<html>
<body>
<center>
<h2>working time</h2>
<form action="" method="post">
<button name="starttime" class="starttime">starttime</button>
<?php
session_start();
$name = $_SESSION["name"];
echo $name;
if(isset($_POST["starttime"])){
$date = date('Y-m-d');
require "database.php";
$sql = "SELECT name, ddate FROM karthick.date WHERE name = '$name' AND ddate = '$date'";
$result = $conn->query($sql);
if($result->num_rows > 0){
    while($row = $result->fetch_assoc()){
        $n = $row["name"];
        $d = $row["ddate"];
    }
}
if($n == $name && $d == $date){
    echo'<script>
    alert("Time already registered");
    </script>';
}else{
    header("location:http://localhost/karthick/attendance/datedata.php");
    exit;
}
}
?>
</form>
<form action = "datedata.php" method="post">
<button name="endtime" class="endtime">Endtime</button>
</form>
<form action="user.php" method="post">
<button name= "logout" class="logout">Logout</button>
</form>
</body>
</html>

在上面的表格中,当点击开始时间时,它会获取日期并使用数据库检查日期是否已经注册。如果日期尚未注册,它会移动到我在标题中给出的下一个表格:链接。

编码格式

<?php
require 'database.php';
session_start();
$name = $_SESSION["name"];
echo $name;
if(isset($_POST["starttime"]))
{
    $date_clicked = date('H:i:s');
    echo $date_clicked;
    $date_clicked1 = date('Y-m-d');
    echo $date_clicked1;
    $sql = "INSERT INTO karthick.date (name, ddate, starttime) VALUES ('$name', '$date_clicked1', '$date_clicked')";
    if($conn->query($sql) === TRUE){
        echo "inserted";
    }else{
        echo "error";
    }
}elseif(isset($_POST['endtime']))
{
    $date_clicked = date('H:i:s');
    $date_clicked1 = date('Y-m-d');
    $sql = "UPDATE karthick.date SET endtime='$date_clicked' WHERE name = '$name' AND ddate = '$date_clicked1'";
    if($conn->query($sql) === TRUE){
        echo "inserted";
    }else{
        echo "error";
        echo $name;
    }
}
$conn->close();
?>

所以我面临的问题是当它移动到第二种形式时,它只获取名称而不获取日期和时间。所以请帮助我。

【问题讨论】:

  • 尝试在if(isset($_POST["starttime"]))这一行之后添加echo语句来检查它是否达到那个条件
  • 我以第二种形式呼应了 isset 函数,但它不起作用
  • die(var_dump($_POST)) 作为第一行来检查是否确实设置了字段。
  • 那么它不会去那个条件。
  • 也尝试去掉header函数后的exit。

标签: javascript php html mysql


【解决方案1】:

您的按钮没有分配任何值,这将在$_POST 请求时跳过它:

<button name="starttime" class="starttime" value="insert value here">starttime</button>

您还缺少表单action="" 的目的地(它将默认为原始页面,但最好声明它)。

然后,当你通过 header 语句更改为第二种形式时

 header("location:http://localhost/karthick/attendance/datedata.php");

这不再是$_POST 请求,您可以通过ajax 加载它并添加帖子值,或者以其他方式传递它们。当然,$_SESSION 变量仍然存在。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-02-01
    • 2017-11-08
    • 2016-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多