Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用数据库生成的列表时,传递PHP变量而不被看到_Php_Mysql_Forms_Session - Fatal编程技术网

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

使用数据库生成的列表时,传递PHP变量而不被看到,php,mysql,forms,session,Php,Mysql,Forms,Session,正在寻求有关此问题的帮助。交易是这样的:我有一个数据库,它有一个teams表,其中包含teamid。在我的一个页面上,我生成了一个链接列表,其中包含创建者的get URL中的team\u id。我需要下一页上的团队id,但不知道如何通过其他方式传递。使用表单和POST不是一个选项,因为此方法只传递列表上最后的链接数据。存储在会话中也不是一个选项,因为没有办法将我需要的变量离散地传递给一个函数来设置会话变量。我已经试过了,可以很容易地从源代码中查看它。下面是一些示例代码,以了解我要处理的内容 &l

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

<?
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\u id
team\u id
变量,而不在任何地方看到。如果我把它做成一个表单,它就不会传递正确的变量,除非当时只有一个结果(不太可能)。我相信一定有一个简单的方法让我无法理解,所以请分享一下如何解决这个问题的想法。我觉得我解释得不够好,但解释起来并不容易。我基本上想要像GET一样工作,但像POST一样工作,并且可以对查看源代码或链接位置的人隐藏


谢谢

只要您不在其他地方发布源代码,人们就看不到您的服务器上的源代码

如果要隐藏ID,只需[hash](哈希方法)(http://en.wikipedia.org/wiki/Hash_function)他们:

但是现在md5散列很容易被逆转,所以你不会成为攻击者

不管怎样,只要你的站点是正确构建的,你就可以根据需要隐藏资源,而不需要依赖会话、散列或任何东西:只要好好利用



坦率地说,我建议您阅读一些关于服务器端开发的好资料,以便在每次编写好代码时都不必重新设计程序——请坚持我上面链接的Symfony指南,尽管您不会停止使用整个框架[无论如何,我强烈推荐这个想法]你会发现它们非常有用。

听起来你实际上想要一个会话变量。我想你误解了如何设置会话变量。你不需要函数,尽管我真的不明白为什么这会阻止你使用会话。你可以只做$_session['teamId'][]=$team_id;在你的循环中,你似乎混淆了你的页面的哪些部分在服务器上运行,哪些在客户端运行。如果你正在工作的项目真的很严肃,我的建议是远离普通、原始、PHP,使用一些允许代码和表示模板分离的框架,即使仍然使用PHP。我知道我可以使用会话变量以不可见的方式传递变量,我只需要根据结果中单击的按钮来设置它。@jsbueno-我知道PHP在服务器端运行,而其他东西则在服务器端执行。只需要一个方法帮助即可完成任务。感谢您的回复。我明白这一点在我的服务器上看不到urce代码,但可以在web浏览器中查看(php标记除外)。我实际上对web编程非常熟悉,但这个问题一直困扰着我。也许我在我的帖子中没有详细说明。我只是需要一种方法,根据选择的数据库结果的哪一行来传递看不见的变量。@Wilcoholic我不明白为什么要“隐藏”你的变量-是安全问题吗?是隐私问题吗?世界上到处都是数字ID[请参见导航栏中的url!],如果你想把事情隐藏起来,请在身份验证防火墙后标记他们的路径。这不是安全问题,而是作弊问题。我的网站将是一个团队可以竞争性地玩游戏的地方,我不希望他们能够看到与比赛请求相关联的团队id。你可以看到他们如何利用这些优势。
<a href="someScript.php?id=<?php echo md5($id) ?>">Da Link</a>
SELECT * FROM teams WHERE MD5(id) = :id