2016-07-20 5 views
0

私は現在、人がボタンを押した場合、例えば "accept application"のように、データベース内の "active"を0から1に更新するようにしています。私がしたことですが、明らかにそれは動作しません。フォームは値付きでPHP submit submit MySQL - 未定義のインデックス

一部の処理:

if(isset($_REQUEST['acceptapplication'])){ 

$acceptid = $_POST['acceptid']; 
$SQL = "UPDATE `users` SET `active`='1' WHERE id = $acceptid"; 

$result = mysql_query($SQL); } 

そして、私形式:

UPDATE users SET:この例のcharidで

<form action='' name='acceptid' method='acceptapplication'> 
<input value='<?php echo $charid ?>' type='submit'/> 
</form> 

は、私はそれがfollwingクエリを実行したい番号7を表し、 active = '1' WHERE id = 7

理由は私は値がすべての機会に同じではないので、慈善団体が価値であることを望んでいます。したがって、私はこの仕事をすることができればいいと思う。

+0

1.メソッドは、コードに基づいて投稿する必要があります.2。入力は 'name'属性を持っていなければなりません。 'mysql_ *'は廃止予定ですので 'mysqli_ *' OR 'PDO'を使用してください –

+0

@AnantこれはPDOで行う正しい方法でしょうか? * 'if(isset($ _REQUEST ['acceptapplication'])) { $ acceptid = $ _POST ['acceptid']; $ SQL = "UPDATE"ユーザ 'SET'アクティブ '= '1' WHERE id =?"; $ stmt = $ con-> prepare($ SQL); $ stmt-> execute([$ acceptid]); } ' –

答えて

0

このmethod='acceptapplication'は間違っています。あなたはGETとして送信しています。また、SQLインジェクションも可能です。パラメータ化されたクエリを使用します。

は、それがPOST要求として処理します

<form action='' name='acceptid' method='POST'> 

にそれを変更してみてください。

は、より多くの情報のためにこれを参照してください:https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form

実際にあなたが他のいくつかの問題を抱えているあなたの全体の形を見ているの後。

<form method='POST'> 
<input value='<?php echo $charid ?>' type='hidden' name='acceptid'/> 
<input type="submit" value="Submit" /> 
</form> 

action=''actionせずに、それは同じページに要求を送信し、必要ありません。

が定義されていないため、未定義のインデックス通知は$_POST['acceptid']によって発生しています。 POSTメソッドを使用する必要があります

+0

助けてくれてありがとう<3 –

+0

問題はありません。これで問題が解決した場合は、その答えを受け入れてください。 pdoの使用に関するあなたのコメントは正しいように見えます。 – chris85

0

<form action='' name='acceptid' method='post'> 
0

形式の方法は、あなたが$ _POST [「ID」でクエリを確認することができますにそう後で、パラメータを渡すためにPOSTメソッドを使用する必要が間違っています]。

関連する問題