PHP - 在表格数组中输入表格

问题描述:

我遇到了表格内部的一个问题。我创建了一张表格,显示了用户关注帖子的最近状态列表。我在表格内创建了一个表单,这样社区可以“喜欢”或“不同”。PHP - 在表格数组中输入表格

每次我尝试提交表单,帖子被张贴在URL,并在我的按钮名称停止“likestatus =” URL的

例如返回:

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> 

的页面不返回,可能任何错误在任何方向指向我,它只是简单地重新加载网页中的发布信息。

我假设并发症的事实是表单是在一个表数组中,并且表单提交值在所有表中都保持不变?

+0

什么是不工作?您的数据已正确保存在数据库中,不是吗? 此外,您的代码易受用户输入操作的影响;任何人都可以改变形式中的likerid来强迫其他人喜欢某物。 – NaeiKinDus

+0

此时数据并未保存在数据库中,这要归功于操作提示,我会做出这个简单的修复 – sicksixstrings

显然,我试图运行的形式,这就解释了为什么这一职位只是挂在URL和内部的一种形式不提交到我的数据库。

我删除了我试图提交的表单外部的表单标签,并且它都按需要工作。

由于尴尬,因为它是,我想我会张贴在希望的答案,以节省别人我花的时间......

因为您的提交按钮是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"> 
+0

该按钮已经有'type = submit'。检查https://www.w3schools.com/tags/att_button_type.asp –

+0

@AgamBanga也许?:http://*.com/questions/1800709/button-element-with-type-submit-php-challenges – Edward

+1

Ahhh !你是对的。 OP正在检查按钮名称。感谢的人 –