- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我真的很讨厌全局变量——也许是因为我是 C# 程序员,但是当我在 PHP 中工作时,每次我不得不做这样的事情时我都会咬紧牙关:
$strUsername = $_GET['username'];
是的,我过于简单化了,是的,我正确地清理了所有这些。事实上,对于我构建的框架,几乎在执行开始时就捕获了所有超全局变量,并从那里开始进行依赖注入(inject)。
我在 PHP 手册中遇到过这个函数(你真的每天都能学到新东西):filter_input_array()。
所以现在,从技术上讲,我可以这样做而不是从 GET 超全局中获取所有内容:
$GETdata = filter_input_array(INPUT_GET);
.... 诸如此类,诸如 POST、REQUEST 等。我的问题是:我应该使用 filter_input_array 来避免超全局变量的祸害,还是有一些理由坚持使用它们而忘记关于使用 filter_input 函数?其他人对此有何经验?
编辑:我忘记了一件事 - filter_input 函数对您对超全局变量所做的任何脚本级修改视而不见,所以如果我这样做:$_GET['cheese'] = 'puff';
稍后尝试执行 filter_input(INPUT_GET, 'cheese');
将返回 null。这很好,因为我依赖注入(inject)所有内容,但如果他们没有意识到,它可能会在以后让某些人措手不及。
最佳答案
使用 filter_input_array 仍在使用超全局数组,因为它仍在从超全局数组之一获取数据。
从这些数组之一获取数据没有错,这确实是实际获取数据的唯一方法。无论您在什么地方使用它,您只需要确保对其进行转义即可。
用于 html 的 htmlentities、用于 pdo 的准备字符串、用于 mysql_ 函数的 mysql_real_escape_String 等...
关于php - 我应该使用 PHP Superglobals 还是 Filter Input 来检索 $_GET 数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5665813/
PHP 内置了 _get 和 _set 函数。是为每个变量编写自己的 get 和 set 函数更好,还是使用带有大量 if else if 的内置函数?每种方法的优缺点是什么? 最佳答案 __get
这个问题可能看起来很相似,但请理解我的问题。在我的更新页面中,我对 $_GET 方法感到困惑。在我的第一页中,我提供了一个像这样编辑表格的链接 index.php "; e
我最近被安排做一个需要一些PHP的项目,我对PHP了解不多。站点中有几个实例,单击按钮后,用户会被重定向到带有一些 URL 参数的另一个页面。然后下一页使用 $_GET 获取这些参数并继续。 代码中的
我想要一些奇怪的东西。如果有人打开 index.php 页面,$select 必须是 full,。但如果有人打开 index.php?var=4 page,$select 必须是 other,带有 v
假设我有一个类似于 www.mysite.com/index.php?login=0 的 URL。是否可以切换大小写 $_GET 的变量和切换大小写 $_GET 的变量值? 类似于: switch (
我希望扩展我的 PHP 知识,但我遇到了一些我不确定它是什么或什至不知道如何搜索它的东西。我正在查看 php.net isset 代码,我看到了 isset($_GET['something']) ?
为了在 PHP 中读取未知变量,我经常使用如下代码: $bar = isset($_GET['foo']['bar']) ? $_GET['foo']['bar'] : NULL; 我不喜欢把变量名写
这个问题已经有答案了: How can I prevent SQL injection in PHP? (27 个回答) 已关闭 7 年前。 我在数据库中有一个(主题)和(页面)表。 page TAB
我正在尝试制作一个类似的搜索引擎,对于我的网站来说很简单。这是我正在使用的代码: $sql = mysql_query("SELECT * FROM books WHERE tags LIKE '
您好,我正在编写个人资料页面脚本,在此脚本中,我检查传入的 $_GET 变量的值并验证它是一个整数,然后我根据 $_SESSION 值验证此值以确认他们只能访问自己的帐户.代码如下所示: // val
我在这里检查了所有可能的解决方案,不幸的是它不起作用。我的代码似乎有什么问题? 我尝试了以下方法。 url解码 ( http://php.net/manual/en/function.urldecod
我有一个 test.php 并且我有下面的代码 我在下面列出了 url,然后显示了所需的输出 Test 1 : http://localhost/example/test.php output :
我有以下登录脚本,我确实在其中使用了 session 。 query("SELECT * FROM table WHERE x1='".$x1."' AND x2='".$x2."'");
实际上这是我的代码: echo ""; // get current vars $p1 = isset($_GET['p1']) ? trim($_GET['p1']) : false; $p2 =
我正在 Adobe Dreamweaver 中编写 PHP 代码。我的代码如下所示。我期待我的代码输出两个框,我在其中写了一些东西。当我单击提交按钮时,我希望看到我在框中输入的两个单独的内容被连接
我假设 $_GET 变量被解释为单引号字符串(而不是双引号字符串)。 我相信这是真的,因为以下测试(我自己尝试进行目录遍历攻击): $file = "../test.php"; /** * same
我有一个 test.php 并且我有下面的代码 我在下面列出了 url,然后显示了所需的输出 Test 1 : http://localhost/example/test.php output :
我需要使用 get 函数从 url 中检索 $title 变量。 $title=$_GET["title"]; $title 稍后在 MySQL 查询中使用。 问题是如何保证安全?换句话说,如何消除通
我不明白为什么有人在代码中使用 @,我在 mysql 连接中看到过它,但我不知道它是什么意思..谢谢! $player_name_orig = @$_GET['player']; if (!$play
我要问两件事。 第一个问题是我这样做是否正确?我正在将一个链接与 javascript 变量放在一起 http://google.com/test.php?var="+class4 然后我使用 php
我是一名优秀的程序员,十分优秀!