隐藏网址中的ID

时间:2013-05-10 06:37:03

标签: php html

我想在用户点击网址时将ID从一个页面传递到另一个页面。可以存在多个url,每个url对应于单独的id。根据点击的网址,我想传递相应的ID和动作。目前我正在使用以下方法:

<a href="Process.php?action=del&id='.$id.'">

然而,url中都显示了action和id。有没有办法在URL中隐藏这些信息而不通过url传递? 此外,如果我使用隐藏字段传递它们,可以使用浏览器开发工具访问它们。我想让它们安全,因此根本无法阅读或修改它们。 我想隐藏这个用于安全目的,所以没有任何用户可以看到这个

3 个答案:

答案 0 :(得分:3)

仅在HTML中,您无法通过$_GET传递“隐藏”变量。

如果您确实想在用户点击链接时隐藏某些变量,则可以使用带有自动提交表单的Javascript来使用$_POST变量。

实施例

<form method="POST" action="yourpage.php" id="yourform" style="display:none;">
   <input type="hidden" name="hiddenfield" value="__" />
</form>

<a href="" onclick="document.getElementById('yourform').submit();return false;" />

现在,在yourpage.php中,您将能够获得$_POST['hiddenfield']值。


修改

我认为无法真正隐藏开发工具中的值。顺便说一下,你可以使用会话,它会更“安全”..

示例:

// page1.php
session_start();
$_SESSION['yourname'] = 'yourvalue';

// page2.php
session_start();
$_SESSION['yourname'];  // Contains 'yourvalue'

答案 1 :(得分:0)

隐藏ID(如果你的意思是安全性)的最好方法是加密它。您应该使用MCRYPT函数来加密ID。您可以在一个字符串中加密 ID ACTION ,只需将此字符串传递给网址,然后当您想要使用它时,您可以解密参数并将其拆分。当您在htaccess中将其与 MOD_REWRITE 连接时,您可以获得以下网址:

<a href="Process,Some title of yourpage,í,eHGxC•z»@”“§``"> to make it more "pretty" you can use base64 on this string.

或使用base64,mcrypt和mod_rewrite

<a href="Process,SWRlYW">

解密字符串你应该使用 base64_decode() mcrypt_decrypt()

答案 2 :(得分:-1)

您可以使用base64(如果安全性确实是一个大问题)。在将其传递给URL之前, 你可以先编码,然后在接收端编码,你可以解码它。

检查此网址:http://www.webtoolkit.info/javascript-base64.html

编辑:

请忽略括号中的上述行。

根据以下评论,base64实际上不负责安全性。更好的方法是使用服务器端语言来加密/解密值。通过javascript使用base64不是一个好主意。谢谢Bobby。