1

file1.php と file1.php があります。file1.php から file2.php への ID (データベースに格納されている) が必要ですが、2 番目のページにリンクし<a href=ます。だからSESSIONSおそらくしないだろう。で試してみましたSESSIONSが、テストしたときに1つのID番号しか覚えていません。

これは file1.php の行です。

while ($thread = mysqli_fetch_assoc($sql_result)) {
<a href="thread.php?thread_id={$thread['thread_id']}"> {$thread['title']} </a>
}

このwhileループにより、データベース内のすべての異なるタイトルが、thread_idに属する必要な情報を含む(file2.phpへの)リンクを確実に取得します。(thread_id は、他のデータベースと異なる必要があるデータベース内の唯一のものです)

だから今それをfile2.phpで表示するために、私はこれを得ました:

$sql_result = $mysqli2->query("SELECT * FROM questions WHERE thread_id = '".The ID Number of the link of file1.php."'");
    while ($thread = mysqli_fetch_assoc($sql_result)) {
echo <<<EOT
        <table>
            <tr>
                <tr><td> {$thread['title']}</td></tr>
                <tr><td> {$thread['description']}</td></tr>
                <tr><td> {$thread['username']}</td></tr>
                <tr><td> {$thread['date_made']}</td></tr>
            </tr>       
</table>
EOT;

thread_id に属する情報を表示します。どうすればいいですか?

4

3 に答える 3

1

そのリンクをクリックすると、セッションに何も保存されません。

使用する必要があります$_GET

例:

$thread_id = $_GET['thread_id'];

if(!is_numeric($thread_id)){
   // Exit the script as the Thread ID isn't numeric or do something else
   echo 'THREAD ID NOT NUMERIC';
   exit;
}

$sql_result = $mysqli2->query("SELECT * FROM questions WHERE thread_id = '".$thread_id."'");
    while ($thread = mysqli_fetch_assoc($sql_result)) {
echo <<<EOT
        <table>
            <tr>
                <tr><td> {$thread['title']}</td></tr>
                <tr><td> {$thread['description']}</td></tr>
                <tr><td> {$thread['username']}</td></tr>
                <tr><td> {$thread['date_made']}</td></tr>
            </tr>       
</table>
EOT;

$_GETこれは簡単な SQL インジェクション ベクトルであるため、変数からの入力をフィルタリングする必要があります。

于 2013-09-26T11:02:29.477 に答える
0
$link=$mysqli2->real_escape_string($_GET['thread_id']);
$sql_result = $mysqli2->query("SELECT * FROM questions WHERE thread_id = '$link'");
于 2013-09-26T11:02:07.170 に答える