php - 使用数据库生成的列表时传递 PHP 变量而不被看到

标签 php mysql forms session

寻求有关该问题的任何帮助。事情是这样的:我有一个数据库,其中有一个 teams 表,其中包含 team_id。在我的一个页面上,我生成了一个链接列表,其中在其获取 URL 中包含创建者的 team_id。我需要下一页上的 team_id,但不知道如何通过任何其他方式传递它。使用表单和 POST 不是一个选项,因为此方法只会传递列表中的最后一个链接数据。存储在 session 中也不是一个选项,因为无法将我需要的变量离散地传递给函数来设置 session 变量。我已经尝试过了,通过查看源代码可以很容易地看到它。因此,这里有一些示例代码,可以准确地了解我正在处理的内容。

<?
if(mysql_num_rows($result2)>0){ ?>
     <a class="fltrt btn btn-danger btn-small" onclick="test()" href="acceptmatch-exec.php?match_id=<?php echo $match_id; ?>&team_id=<?php echo $team_id;?>&action=cancel">Cancel Match</a>
 <?}else{?>
     <a class="fltrt btn btn-success btn-small" href="acceptmatch-exec.php?match_id=<?php echo $match_id; ?>&team_id=<?php echo $team_id;?>&action=accept">Accept Match</a>
  <?} ?>

上面的代码是通过被排除的 while 循环在页面上多次生成的。我想传递 match_idteam_id 变量而不被任何地方看到。如果我将其设为一种表单,则它不会传递正确的变量,除非当时只有一个结果(不太可能)。我确信一定有一种简单的方法让我困惑,所以请分享如何解决这个问题的想法。我觉得好像我解释得不够好,但其实也不容易解释。我基本上想要一些像 GET 一样工作但又像 POST 一样的东西,并且可以对查看源代码或链接位置的人隐藏。

谢谢

最佳答案

只要您不将其发布到其他地方,人们就无法从您的服务器看到您的源代码

如果你想隐藏ID,只需[散列](散列方法](http://en.wikipedia.org/wiki/Hash_function)它们:

<a href="someScript.php?id=<?php echo md5($id) ?>">Da Link</a>

然后在 someScript.php 中,您必须查看您的数据库 [via PDO请!] 为:

SELECT * FROM teams WHERE MD5(id) = :id

但是如今 md5 哈希很容易逆转,因此您无法抵御攻击。

无论如何,只要您的网站构建正确,您就可以根据需要隐藏资源,而无需依赖 session 、哈希或其他任何东西:只需充分利用 authorization .

<小时/>

我坦率地建议你阅读一些关于如何进行服务器端开发的好东西,以便编写好的代码,而不必每次都重新发明轮子 - 坚持使用我上面链接的 Symfony 指南,尽管你不会结束使用整个框架[无论如何我强烈推荐]你会发现它们非常有用。

关于php - 使用数据库生成的列表时传递 PHP 变量而不被看到,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12398900/

相关文章:

forms - Axapta:编辑表单字段值

PHP FTP 错误 : 451 - Append/Restart not permitted

php - 无法创建表 MySQLi

php - 在 PHP 中使用 CURL 对 api 进行推送调用

mysql - MySQL Inner Join如何对数据进行排序?

php - 使用JQuery和php从mysql数据库获取数据

java - MySQL - Hibernate 不创建外键约束

forms - Play Framework - 使用表单助手时如何更改输入的标签?

ajax - Laravel Controller /Ajax 未保存在我的数据库中

php - 类似于 PHP 中的 in_array 的 C 函数