2012-04-02 9 views
0

私は学校のプロジェクト用に切り詰めたCMSを構築しており、ユーザーの削除に関する問題に取り組んでいます。送信ボタンの値と現実のURLが異なる

adminログイン名と関連するパスワードでのみアクセスできるサイト管理ページでは、既存のユーザーのテーブルが作成されます。各行には、ユーザーに関する重要な統計情報と[削除]ボタンが表示されます。

この管理ページは通常の管理者ページと同じURLなので、ログインが管理者の場合のみ、echo要素を使ってテーブル要素を書き出しています。このボタンは、GET要求を介して外部スクリプトの関数を呼び出し、userIDをURLに付加します。

少なくとも、起こるはずのこと。 Firebugのによると、button要素は次の属性があります。上のボタンをクリックすると

<form id="deleteUser" method="get" action="includes/scripts.php?action=deleteUser&id=18" name="deleteUser"> 
<input type="submit" value="Delete" name="submit"> 

はしかし、私は

http://localhost/TestingLab/admin/includes/scripts.php?submit=Delete 

いただきまし契約URLを取得しますか?

答えて

2

GETフォームを送信すると、既存のクエリ文字列がすべて破棄されます。

代わりに非表示の入力にデータを移動します。

<form id="deleteUser" method="get" action="includes/scripts.php"> 
<input type="hidden" name="action" value="deleteUser"> 
<input type="hidden" name="id" value=18"> 
<input type="submit" value="Delete" name="submit"> 

...ただし、GETリクエストに基づいてサーバー上のものを変更しないでください。 GET要求は繰り返し可能で安全であると考えられています。 POSTを使用します。

+0

既存のクエリ文字列を削除するとはどういう意味ですか? – Jason

+0

アクション属性のURLにクエリ文字列がある場合は、フォームを送信するときにクエリ文字列は表示されません。 – Quentin

関連する問題