PHP - 表数组内的表单输入

时间:2017-05-06 18:53:46

标签: php mysql sql

我的表格中存在表格问题。我创建了一个表格,其中显示了用户关注帖子的最近状态列表。我在表格中创建了一个表单,以便社区可以“喜欢”或“不像”。

每当我尝试提交表单时,帖子都会在网址中发布,并停在我的按钮名称“likestatus =”

返回的网址示例:

account.php likesid = 5&安培; likerid = 117安培; likestatus =

表单的输入有效,因为每个按钮在URL中显示相应的“likesid”和“likerid”

我只是不明白为什么会失败。

以下是我的“$ _POST ['likestatus']”

的代码
<?php
if(isset($_POST['likestatus']))
{


//inputs from the form
$likesid =mysqli_real_escape_string($conn, $_POST['likesid']);
$likerid =mysqli_real_escape_string($conn, $_POST['likerid']);

//query to check if already likes status
$sql = "SELECT likesid, likerid FROM user_likes WHERE (likesid='$likesid') AND (likerid='$likerid')";
$result = mysqli_query($conn, $sql);

$alreadylike = mysqli_num_rows($result);
if ($alreadylike > 0) {
    echo "You already liked this status";
}
else {      

    $hostname = "localhost";
    $username = "root";
    $password = "changed for post";
    $databaseName = "changed for post";     
    $connect = mysqli_connect($hostname, $username, $password, $databaseName);      

    //inputs from the form
    $likesid =mysqli_real_escape_string($connect, $_POST['likesid']);
    $likerid =mysqli_real_escape_string($connect, $_POST['likerid']);


    //query to insert into table
    $query = "INSERT INTO `user_likes` SET `likesid`='".$likesid."', `likerid`='".$likerid."'";

    $result = mysqli_query($connect, $query);

    if($result)
    {           
        echo 'updated';
    }
    else
    {
        echo 'not updated';
    }   
    mysqli_close($connect);
    }
}
?>

表单代码:

<td style="width: 100px;">  
<p align="center">
<form action="account.php" method="post">   
    <input type="hidden" name="likesid" value="<?php echo $statusid; ?>">
    <input type="hidden" name="likerid" value="<?php echo $_SESSION['id']; ?>">
    <button style="color: #FFFFFF; width: 50%; margin-left: 35px; background-color: transparent; cursor: pointer; text-shadow: 1px 1px 4px #2F3A85" type="submit" name="likestatus">
    <label class="myLabel"><span class="w3-xlarge" style="font-family: 'Righteous'; border: 1px; border-radius: 5px; border-color: #FFFFFF;">like</span></label>
    </button>
</form></p>     
</td>

该页面不会返回任何可能指向任何方向的错误,它只是在URL中重新加载包含帖子信息的页面。

我假设并发症始于表格在表格数组内,并且表格提交值在所有表格中保持不变?

2 个答案:

答案 0 :(得分:0)

因为您的提交按钮是button,而不是input

改变这个:

<button style="color: #FFFFFF; width: 50%; margin-left: 35px; background-color: transparent; cursor: pointer; text-shadow: 1px 1px 4px #2F3A85" type="submit" name="likestatus">

到此:

<input style="color: #FFFFFF; width: 50%; margin-left: 35px; background-color: transparent; cursor: pointer; text-shadow: 1px 1px 4px #2F3A85" type="submit" name="likestatus">

答案 1 :(得分:0)

显然我试图在表单中运行一个表单,这解释了为什么帖子只是挂在URL中而没有提交到我的数据库中。

我删除了我尝试提交的表单外部的表单标记,并且一切都按预期工作。

虽然很尴尬,但我想我会发布答案,希望能节省别人的时间......