php POST数据检索问题

时间:2011-10-18 20:38:19

标签: php apache xampp localhost

我正在从页面链接的$ _GET中检索数据:

<a class="send" href="<?php echo sendData.php?user=somebody&password=any; ?>">Send POST info</a>

在本地使用XAMPP和

            <?php
                $user = urlencode($_GET['user']);
                $password = urlencode($_GET['password']);
                echo '<strong>user: </strong>'.$user.' <strong>password: </strong>'.$password;                
            ?>

并且它工作正常,但是在编码时

        <?php
            $url=rawurlencode('sendData.php');
            $url .= urlencode('?user=somebody&password=any');
        ?>
        <a class="send" href="<?php echo $url; ?>">

             Send POST info
        </a>

禁止链接页面访问

Access forbidden!

You don't have permission to access the requested object. It is either read-protected or not readable by the server.

If you think this is a server error, please contact the webmaster.

Error 403

localhost
18.10.2011 ã. 23:00:31 ÷.
Apache/2.2.17 (Win32) mod_ssl/2.2.17 OpenSSL/0.9.8o PHP/5.3.4 mod_perl/2.0.4 Perl/v5.10.1

任何想法搞砸了什么?

2 个答案:

答案 0 :(得分:4)

不要对整个查询字符串进行编码。 在您的代码中,您正在转换“?”和“&amp;”和“=”。

单独编码值,并连接值。

所以

$query = "?user=" . urlencode($user) . "&password=" . urlencode($password);

最终,这也将允许你对它们进行消毒。

答案 1 :(得分:1)

试试这个

<?php
        $url= 'sendData.php?';
        $url .= rawurlencode('user=somebody&password=any');
    ?>

只需要对查询字符串进行编码。