0

您好我正在尝试通过 URL 将值从一个文件传递到另一个文件。

我的做法是:<a href='fund_view.php?idfund="<? echo $row['idfund']; ?>"'>

毕竟我在其他文件中使用

$aidi = $_GET['idfund'];

echo 'ID= '.$aidi;`

但我得到的结果是这种格式ID= \"10\"

我通过 id 后的 url 看起来像

http://example.com/fund_view.php?idfund="10"

我想要的结果只是ID="10"

4

3 回答 3

2

关闭php.ini 中的magic_quotes,你应该去掉那些反斜杠。

于 2012-07-16T14:24:48.267 回答
2

改变

<a href='fund_view.php?idfund="<? echo $row['idfund']; ?>"'>

<a href='fund_view.php?idfund=<? echo $row['idfund']; ?>'>

另请记住,您的代码非常不安全......至少在使用之前将参数转换为 int :

$aidi = (integer) $_GET['idfund'];
于 2012-07-16T14:25:18.437 回答
0

PHP 的早期版本(低于 5.4)有一个非常违反直觉的功能,称为“魔术引号”,它会自动(并且无声地)转义所有 GET/POST 字符串,就好像它们将在 MySQL 查询中使用一样。

逆向相对简单,只是当你不知道存在这样的功能时会很头疼。

解决方案 1:使用ini_set关闭 magic_quotes

有时您将无法使用 ini_set(限制性主机提供程序),因此以下是我使用过的下一个最佳(和可移植)解决方案:

注意:get_magic_quotes_gpc功能页面上提供的功能

<?php
    function stripslashes_deep(&$value)
    {
        $value = is_array($value) ?
                    array_map('stripslashes_deep', $value) :
                    stripslashes($value);

        return $value;
    }

    if (get_magic_quotes_gpc())
    {
        stripslashes_deep($_GET);
        stripslashes_deep($_POST);
    }

?> 
于 2012-07-16T14:54:24.563 回答