2012-01-02 20 views
-1

GETなどを使ってレコードをフォームに読み込むことは可能ですか?URLに主キーを持つレコードをロードしますか?

私はformAのためにDB内のすべてのクライアントのforeachリストを持っていますが、各行の最後には「編集」と呼ばれるリンクがあり、このリンクはformB.phpに行き、設定されますこれはあなたに次のようなURLを与えて

sitename.com/FormB.php?token=<?php echo $ID ?> 

>>次のように:

http://www.sitename.com/formB.php?token=25 

上記のリンクは、例えば第二のフォームにID 25を持つレコードをロードします。

2番目のフォームでリンクを処理する方法がわかりませんが、GET IDを2番目のフォームにエコーすることはできますか、GETトークンでなければなりませんか?

+0

あなたも、[ドキュメント](http://bd.php.net/manual/en/language.variables.superglobals.php)を読みましたか? –

答えて

3

PHPには、事前定義された$_GETという変数があります。これは基本的にすべてのGET paremeters保持する配列です:

ので
// url = index.php?foo=bar&hello=world 

echo $_GET['foo']; // bar 
echo $_GET['hello']; // world 

を、あなたのURLとクエリを考慮:セキュリティ悪用を避けるために

$query = 'SELECT * FROM `table` WHERE `token`=' . $_GET['token']; 

を、私たちは、ユーザ定義のパラメータを中心に機能mysql_real_escape_stringを使用する必要があります文字列を使用するとき。数字のような他の型を使うときには、それを数字だけに解析することができます。

// if token is a number 
$query = 'SELECT * FROM `table` WHERE `token`=' . intval($_GET['token']); 

// if token is a string 
$query = 'SELECT * FROM `table` WHERE `token`=' . mysql_real_escape_string($_GET['token']); 
+0

URLに入力ミスがあります。 – TimWolla

+0

あなたの助けをありがとう、それは完璧に動作します! –

1

$_GET配列を使用してGETパラメータにアクセスできます。そこにあなたが使用することができますいただきました!を参照するには、次の print_r($_GET);

を後者の場合では、パラメータがtokenという名前のよう$_GET['token']を使用しなければならないでしょう。

注:SQL-Queryにパラメータを渡す場合は、そのパラメータが保護されていることを確認してください。この場合はintval()となります。 SQLインジェクションは悪いです。

関連する問題