- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我有一个简单的验证码,当 register_global 被禁用时它可以完美运行,根据 PHP 手册 Using Register Globals 这是正确的
但有时我转移到许多主机,它们默认启用全局注册,所以我的验证码停止工作,即使输入正确,也总是给出错误的验证码。
我的问题
为什么在启用和禁用 register_global 时都不起作用?
代码
验证码.php
<?PHP
session_start();
$digits_num=5;
$x_pos=25;
$y_pos=6;
$font_size=5;
function random_num($n){
$start_num = "1".str_repeat("0", $n-1);;
$end_num = str_repeat("9", $n);
return rand($start_num, $end_num);
}
$text = random_num($digits_num);
$_SESSION["captcha_num"] = md5($text);
$captcha = imagecreatefrompng("./images/captcha.png");
$font_color['black']=imagecolorallocate($captcha, 0, 0, 0);
$font_color['white']=imagecolorallocate($captcha, 80, 73, 20);
imagestring($captcha, $font_size, $x_pos, $y_pos, $text, $font_color['white']);
header("Content-type: image/png");
imagepng($captcha);
?>
表格
<form name="frm" method="post" action="add.php">
<img src="captcha.php">
<input type="text" name="captcha_num" id="captcha_num" >
<input type="submit" name="submit" id="submit" value="submit">
</form>
添加.php
<?PHP
session_start();
if(md5($_POST['captcha_num']) != $_SESSION['captcha_num']){
echo "Wrong captcha";
}else{
echo "Good Pass it";
}
?>
最佳答案
从您引用的手册页:
This feature has been DEPRECATED as of PHP 5.3.0 and REMOVED as of PHP 5.4.0
(...)
Perhaps the most controversial change in PHP is when the default value for the PHP directive register_globals went from ON to OFF in PHP » 4.2.0.
换句话说:将其关闭。
ini_set
将这段代码放在你的代码之上(或者如果你有的话,放在引导文件中)
ini_set('register_globals', 'Off')
在您网站的根目录下创建一个.htaccess
文件并向其中添加以下代码:
php_flag register_globals Off
如果你使用了糟糕的技术,不要问自己为什么脚本是错误的,问问自己如何关闭/避免使用糟糕的技术。
关于php - 如果启用了 register_global 怎么办,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10465921/
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我们有一个客户端应用程序依赖于已打开的 register_globals,但我们将其托管在我们的共享服务器上,并且不想在我们的主 php.ini 文件中打开 register_globals。 我尝试
我不确定这是否适合标记为社区 wiki,但无论如何: 有没有简单的方法来杀死 register_globals?我正在开发一个 PHP 框架,现在,我只是将脚本设置为在 register_global
register_globals的值可以设置为:On或者Off,我们举一段代码来分别描述它们的不同。 代码: 复制代码 代码如下: <form name=&q
我将网站转移到具有“Server API=CGI/FastCGI”的新服务器(PHP 版本 5.3.8),网站工作正常,除了一页(public_html/user/index.php)。我得到错误:
这里还有一个奇怪的问题。我最近参与了从 PHP 5 到 Php 7.1 的巨大升级以及 CentOS 升级。 我们有很多页面(实际上几乎所有页面)都在代码中使用了注册全局快捷方式。 $_SESSION
我有一个简单的验证码,当 register_global 被禁用时它可以完美运行,根据 PHP 手册 Using Register Globals 这是正确的 但有时我转移到许多主机,它们默认启用全局
我继承了一些遗留的 PHP 代码,这些代码在使用 register_globals 时被写回(从 PHP 4.2.0 开始,该指令默认为关闭,2002 年 4 月 22 日发布)。 我们现在知道启用它
我不是 PHP 开发人员,但我在一些地方看到人们似乎将其视为瘟疫之类的。为什么? 最佳答案 REGISTER_GLOBALS 意味着所有通过 GET 或 POST 传递的变量都可以作为脚本中的全局变量
深入了解 register_globals dedecms 里强制限制了register_globals 由于register_globals设置控制PHP变量访问范围,
我刚刚将我的 drupal 移到了一个新服务器上,但收到以下警告: register_globals 已启用。 Drupal 要求禁用此配置指令。启用 register_globals 时,您的站点可
我使用 php 作为命令行脚本语言来执行各种系统命令。 我怎样才能在本地打开 register_globals - 也许只对一个脚本?这可以通过脚本本身完成吗? 如果可能,我不希望更改全局设置。 最佳
谁能举例说明 register_globals 是什么? global $user_id; 是否被视为全局寄存器? 最佳答案 register_globals 指令: register_globals
我继承了一个充满代码的网络服务器,需要 register_globals 才能打开。其中大部分是由多年来来来去去的随机人员编写的自定义代码。我已经在我知道的脚本中修复了大部分问题,但我的问题是找到我不
为什么我看不到 safe_mode 和 register_globals 的值(状态) 我使用来自 php.net 的这段代码: echo 'display_errors = ' . ini_get(
我正在开发一个使用 register_globals 的框架。我本地的 php 版本是 5.4。 我知道 register_globals 自 PHP 5.3.0 起已弃用并在 PHP 5.4 中删除
错误提示: dedecms安装中php.ini register_globals must is Off! 的解决方法 原因分析: 我们只要把php中的register_globals 改成on即
我使用 php 作为命令行脚本语言来执行各种系统命令。 指令“register_globals”在 PHP 5.3 及更高版本中已弃用。 更新 exec 命令使用的 PATH 环境变量的干净方法是什么
为了获得更多的 Wordpress 经验,我深入研究了它的代码库,研究了它的内部工作和工作流程,当我看到这一点时,我感到非常惊讶: 他们实现了 register_globals(摘自 wp-inclu
我在 hostgator 服务器上的 wordpress 上运行电子商务主题,并出现此错误。 Security warning: set the value register_globals in t
我是一名优秀的程序员,十分优秀!