2017-05-06 9 views
1

テーブル内のフォームに問題があります。私は最近のステータスのリストを表示するテーブルを作成しました。私はテーブルの中にフォームを作成し、コミュニティが「好き」や「好き」とすることができるようにしました。PHP - テーブル配列内のフォーム入力

私がフォームを送信しようとするたびに、ポストはURLに掲示し、私のボタンの名称で停止されている「likestatus =」URLの

例が返さ:

account.phpをlikesid? = 5 & likerid = 117 & likestatusは=

各ボタンが示すように、フォームの作品の入力は、対応するURLの「likesid」と「likerid」

私はちょうど「なぜそれを理解していません失敗する。ページができたすべてのエラーを返しません

<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> 

:ここ

は私の "$ _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); 
    } 
} 
?> 

フォームコードのコードですどんな方向にでも私を向けるだけで、単にURLの投稿情報でページをリロードするだけです。

フォームがテーブル配列内にあり、フォームのサブミット値がすべてのテーブルで同じままであるという事実が複雑であると仮定していますか?

+0

...私は他の誰かに私が過ごした時間を節約するために期待して答えを投稿したい考え出しましたか?あなたのデータはDBに正しく保存されていますか? また、あなたのコードはユーザの入力操作に対して脆弱です。他の人に何かが好きになるようにするために誰でもフォームの好き嫌いを変えることができます。 – NaeiKinDus

+0

この時点でデータはDBに保存されていません。操作のヒントのおかげで、簡単に修正できます – sicksixstrings

答えて

0

どうやら私はポストはちょうどURLでぶらぶらとされた理由を説明する形式の内部でフォームを実行しようとしていました私のデータベースに提出しません。

私は提出しようとしていたフォームの外側にあるフォームタグを削除しました。そのまま

として恥ずかしい、私は働いていない何

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"> 
+0

ボタンは既に 'type = submit'を持っています。これを確認してくださいhttps://www.w3schools.com/tags/att_button_type.asp –

+0

@AgamBangaおそらく?:http://stackoverflow.com/questions/1800709/button-element-with-type-submit-php-challenges – Edward

+1

Ahhh !!!あなたが正しいです。 OPがボタン名を確認しています。感謝の男 –

関連する問題