将变量传递给另一个页面

时间:2015-12-13 09:35:58

标签: php

我正在尝试将note_id变量从索引页面传递到view_note_2页面但由于某种原因变量未通过我不完全理解这可以请一些人帮我解释

的index.php

$note_query = mysql_query("SELECT * FROM `notes` WHERE `user_id` ='$my_id'");
while ($run_note = mysql_fetch_assoc($note_query))
        {
            $note_id = $run_note['id'];             
            echo "<a id='list_user' href='view_note_2.php?note=$note_id'><br>"; 
        }

?>

view_note_2.php

if(isset($_GET['note_id']) && !empty($_GET['note_id']))/* unable to get `note_id` */
        {
            $note_id=$_GET['note_id'];

            $note_query = mysql_query("SELECT * FROM `notes` WHERE `id` ='$note_id'");

3 个答案:

答案 0 :(得分:2)

你应该开始使用调试器(xdebug?),但是因为你正在做php,开始打印一些变量并看看发生了什么变得更加简单。

例如,尝试运行此命令,并在错误日志中查看输出。如果您不知道它是什么或它在哪里,您可能想要谷歌。

$note_query = mysql_query("SELECT * FROM `notes` WHERE `user_id` = $my_id");
while ($run_note = mysql_fetch_assoc($note_query)) {
    error_log('run_note:' . print_r($run_note, 1));
    $note_id = $run_note['id'];
    error_log('note_id:' . $note_id);
    echo "<a id='list_user' href='view_note_2.php?note=$note_id'><br>"; 
}

注意:正如其他用户所指出的那样,您使用的是GET变量note,但您将其称为note_id,因此请将代码更改为< / p>

if(isset($_GET['note']) && !empty($_GET['note'])) {
    $note_id=$_GET['note'];
    $note_query = mysql_query("SELECT * FROM `notes` WHERE `id` =$note_id");
}

ps:您可能想要转义在查询中使用的参数,否则您将接触到sql注入。您可以在google找到更多信息,this one是一个好的开始

答案 1 :(得分:2)

页面获取的参数名称是“note”,而在view_note_2.php中,您将查找名为“note_id”的参数。此外,我建议保护您的查询免受SQL注入,因为现在任何人都可以将任何值注入直接在查询中使用的'note'参数。

答案 2 :(得分:1)

您应该将$_GET['note_id']更改为$_GET['note']

祝你好运