0

私は仕事を終わらせようとしている非常に初心者なので、ここで問題を説明しましょう。

私は chasback ウェブサイトを持っています。データベースには小売業者がいます。私のリンクは次のとおりです。

a href="/view_retailer.php?rid=<?php echo $tops_row['retailer_id']; ?>"

コンテンツを表示するphpページには次のものがあります。

if (isset($_GET['rid']) && is_numeric($_GET['rid']))
{
    $retailer_id = (int)$_GET['rid'];
}
else
{       
    header ("Location: index.php");
    exit();
}

私の URL での表示: /view_retailer?rid=8

これを /view_retailer?rid=retailer-title に変更したい

なぜ機能しないのかわかりません。DBに列retailer_idとtitleがあります。

次に、mod_rewrite を使用して /view_retailer?rid=retailer-title から /loja/retailer-title に変更する必要があります。

どうすればそこにたどり着けますか? 私を助けてくれてありがとう!

4

3 に答える 3

2

私は最初のビットに答えることができます

a href="/view_retailer.php?rid=<?php echo $tops_row['retailer_id']; ?>"

する必要があります:

<a href="/view_retailer.php?rtitle=<?php echo $tops_row['retailer_title']; ?>"

if (isset($_GET['rtitle']) && is_string($_GET['rtitle']))
{
    $retailer_title = (string)$_GET['rtitle'];
}
else
{       
    header ("Location: index.php");
    exit();
}

また、GET/POST からのすべてのものをサニタイズして、データベースにクエリを実行する場合に安全であることを確認する必要があります。

mod_rewrite について。それは非常にくだらないので、私はそれを手伝うことはできません。

于 2013-10-09T22:04:33.663 に答える
0

小売業者のテーブルに、「スラッグ」などの名前の列を追加します。次に、クエリを変更する必要があるため、id ではなく特定の文字列 (スラッグ) を探します。スラッグには、Web アドレスに適した記号のみが含まれていることを確認してください: スペースや非ラテン文字などは使用しないでください。

コードに関しては、次のようになります。

if (!empty($_GET['title']))
{
    $title = someSanitizeFunc($_GET['title']);
    $retailer = db()->queryOne("SELECT id FROM retailers where slug = '".$title."');
}

これは単なる例です。cms または使用するものに合わせて調整する必要があります。

于 2013-10-09T22:11:51.793 に答える