我的POST方法在这段代码中不起作用,但如果我将它改为GET方法,那么它就可以正常工作。
这是我的代码。如果您将其更改为GET,则可以很好地工作。即使有了POST,它也会显示数据库中的点赞,但当我点击点赞按钮时,它不会添加更多的点赞。
<form action="" method="POST">
<input type="hidden" name="blogID" value=<?php echo $blogID;?> />
<input id="likeButton" <?php echo isset($_POST["like"]) ? "disabled" : "";?> type = "submit" value = "Click to Like this Article" name="like"/> <br><br>
</form>
<br>
<?php
$pageWasRefreshed = isset($_SERVER['HTTP_CACHE_CONTROL']) && $_SERVER['HTTP_CACHE_CONTROL'] === 'max-age=0';
if($pageWasRefreshed )
{
$likesQuery = "SELECT likes FROM blogstatus where blogID=$blogID";
$likes = $conn->query($likesQuery);
if ($likes->num_rows > 0) {
// output data of each row
while($row2 = $likes->fetch_assoc()) {
echo $row2["likes"] . " Likes <br> <br>";
}
} else {
echo "0 Likes";
}
}
else{
if(isset($_POST['like'])) {
$blogID=$_POST['blogID'];
$likesQuery2 = "UPDATE blogstatus set likes = likes+1 where blogID=$blogID";
$conn->query($likesQuery2);
$likesQuery3 = "SELECT likes FROM blogstatus where blogID=$blogID";
$likes3 = $conn->query($likesQuery3);
if ($likes3->num_rows > 0) {
// output data of each row
while($row = $likes3->fetch_assoc()) {
echo $row["likes"] . " Likes <br> <br>";
}
} else {
echo "0 Likes";
}
}
else{
$likesQuery = "SELECT likes FROM blogstatus where blogID=$blogID";
$likes = $conn->query($likesQuery);
if ($likes->num_rows > 0) {
// outputz data of each row
while($row2 = $likes->fetch_assoc()) {
echo $row2["likes"] . " Likes <br> <br>";
}
} else {
echo "0 Likes";
}
}
}
;?>发布于 2019-09-28 14:05:01
好了,问题不在于isset本身,而在于$pageWasRefreshed始终为真,因此无法达到您的$_POST条件
试着把你的$_POST条件放在第一位,我想它会工作得很好
$pageWasRefreshed = isset($_SERVER['HTTP_CACHE_CONTROL']) && $_SERVER['HTTP_CACHE_CONTROL'] === 'max-age=0';
if(isset($_POST['like'])) {
$blogID=$_POST['blogID'];
$likesQuery2 = "UPDATE blogstatus set likes = likes+1 where blogID=$blogID";
$conn->query($likesQuery2);
$likesQuery3 = "SELECT likes FROM blogstatus where blogID=$blogID";
$likes3 = $conn->query($likesQuery3);
if ($likes3->num_rows > 0) {
// output data of each row
while($row = $likes3->fetch_assoc()) {
echo $row["likes"] . " Likes <br> <br>";
}
} else {
echo "0 Likes";
}
} else if($pageWasRefreshed ){
$likesQuery = "SELECT likes FROM blogstatus where blogID=$blogID";
$likes = $conn->query($likesQuery);
if ($likes->num_rows > 0) {
// output data of each row
while($row2 = $likes->fetch_assoc()) {
echo $row2["likes"] . " Likes <br> <br>";
}
} else {
echo "0 Likes";
}
}
else {
$likesQuery = "SELECT likes FROM blogstatus where blogID=$blogID";
$likes = $conn->query($likesQuery);
if ($likes->num_rows > 0) {
// outputz data of each row
while($row2 = $likes->fetch_assoc()) {
echo $row2["likes"] . " Likes <br> <br>";
}
} else {
echo "0 Likes";
}
}发布于 2019-09-28 13:31:16
在else部分中,您试图检查表单中不存在的isset($_POST['like'])字段。更新
else{
if(isset($_POST['like'])) {
$blogID=$_POST['blogID'];至
else{
if(isset($_POST['blogID'])) {
$blogID=$_POST['blogID'];https://stackoverflow.com/questions/58143519
复制相似问题