0

私が管理しているサイトでは、php の URL を使用して、各製品の detail.php を動的に表示しています (まだ php は初めてなので、ご容赦ください)。

現在、次のようになっています。

domain.com/detail.php?id=123

別の属性を使用することはできますか (それが呼ばれているかどうかはわかりません)、もう少しユーザーフレンドリーな URL を使用できますか?

お気に入り:

domain.com/detail.php?name=Product+Name

もしそうなら...どうやって?私の人生では、それを理解したり、適切な用語を検索したりすることはできません(おそらく、正しい名前をまだ知らないだけです)。スペースの代わりに %20 として簡単だと思いましたが、おそらくご存知のように、これはそうではありません。

名前を varchar に設定していますが、それが違いを生むかどうかはわかりません。

これは緊急のことではありません。

4

5 に答える 5

6

あなたが望むことを達成するためのいくつかの異なる方法があります。基礎となるロジックを変更するためにPHPコードを直接掘り下げることなく、Apache実装内でmod_rewriteを有効にして構成することを検討できます。すばやく簡単なmod_rewriteチュートリアルは次のとおりです。

http://www.htmlist.com/how-to/a-simplemod_rewrite-tutorial/

于 2012-05-02T18:43:56.627 に答える
1

PHP で URL を操作する関数を見てください: http://www.php.net/manual/en/ref.url.php

于 2012-05-02T18:40:27.463 に答える
1

どこで困っているのかさっぱりわかりません。この非常に基本的な例は、私にとってはうまく機能します。

<?php
    if (isset($_GET["name"]))
        die("name = {$_GET["name"]}");    /* outputs "name = Product Name" */

    $row = "Product Name";
?><a href="test.php?name=<?php echo $row; ?>">Click here</a>
于 2012-05-02T18:58:31.347 に答える
0

urlencode()おそらく、クエリ文字列変数として渡すことができるように、文字列をエンコードするPHP メソッドを探しているでしょう。その後、ユーザーurldecode()はクエリ文字列変数をデコードできます。

于 2012-05-02T18:42:21.577 に答える
0

クエリを正しく作成していない可能性があります。これは、SQL インジェクション攻撃に対して脆弱であることを意味します。クエリから文字列値を取得することは、整数を取得することと同じですが、後でその文字列をどのように使用するかによって、大きな違いが生じます。

$name = $_GET['name'];
$safe_name = mysql_real_escape_string($name);
$sql = "SELECT ... FROM yourtable WHERE name='$safe_name'";
$result = mysql_query($sql) or die($sql);

クエリで文字列を使用する場合は、引用符で囲む必要があります。そうでない場合は、フィールド名、テーブル名などとして扱われます...

于 2012-05-02T18:42:53.703 に答える