当我使用href传递值时如何隐藏url值?

时间:2014-03-25 08:36:16

标签: php url

由于安全目的,我试图过滤我的网址值。有任何解决方案或方法吗?

我这样做:

<html
    <a href='www.iluvpromo.com/unsubscribe.php?email=$email'> 
</html>

,URL显示如下:

http://www.iluvpromo.com/unsubscribe.php?email="email_address"

但我希望它显示如下:

http://www.iluvpromo.com/unsubscribe.php

4 个答案:

答案 0 :(得分:1)

您可以使用session

在第一页:

<?php
 session_start();
$_SESSION['email']=$email;
?>

在第二页:

if(isset($_SESSION['email']))
//do sth
//unset($_SESSION['email']); to destroy the session

另一种方法是使用post变量:

在第一个pge:

$_POST['email'] = $email;

在第二页:

if( $_POST["email"])
//do something

另一种方法是使用hlink

echo hlink ("hyperlinktext", "email", "http://www.iluvpromo.com/unsubscribe.php", "funkyclass",     $email);

而不是:

<a href='http://www.iluvpromo.com/unsubscribe.php?email=$email' class='funkyclass'>hyperlink text</a>

答案 1 :(得分:1)

您可以采取类似的行动&#39;在几个方面:

  • md5(电子邮件),用户不会以明文形式看到它
  • 您可以使用会话(如果用户已登录)
  • 传递用户ID(不是那个好主意,用户可以轻松猜出)
  • 使用params发出POST请求(不是链接,表单用于表示)

答案 2 :(得分:1)

您可以使用一些加密代码来加密您的参数,而用户无法理解。

$myData = array('foo'=>1, 'bar'=>'hax0r');
$arg = base64_encode( json_encode($myData) );

的http:www.iluvpormo.com/parameter=$arg

并返回:

$myData = json_decode( base64_decode( $_GET['secret'] ) );

答案 3 :(得分:0)

或者,您可以加密查询字符串或在表单中发布值(虽然在源代码中可见)。