0

我有问题magic_quotes_gpc。我正在将网络服务器从 XP 机器迁移到 Win2003 机器。PHP 代码在某些情况下很旧,而且开发得不是很好,所以我真的需要magic_quotes_gpc工作。

我很确定配置正确,我也尝试复制旧的 PHP 文件夹和 php.ini,但仍然有问题。拥有magic_quotes_gpc = On拥有它的确切行为magic_quotes_gpc = Off

尝试使用 PHP 5.3,但即使旧的 5.1 在旧服务器上正常工作。

唯一的区别是在新服务器中我使用 FastCGI。

我真的在你手中解决这个问题,我真的快疯了!

20140326 - 根据 Alvaro 建议添加代码示例

<?
  print $_GET["id"];
  print '<br><br>';
  print $_GET[id];
?>

调用 page ./sample.php?id=1,只显示这一行(我有错误):

PHP Notice: Use of undefined constant id - assumed 'id' in C:\Inetpub\wwwroot\simple.php on line 4

评论第 4 行:

<?
  print $_GET["id"];
  print '<br><br>';
  //print $_GET[id];
?>

正如预期的那样,输出为 1。

4

1 回答 1

1

您的测试代码与魔术引号完全无关,因此我怀疑您误解了该功能的作用。使用魔术引号,您可以调用此 URL:

/test.php?foo=O'Hara

...在哪里test.php

<?php
var_dump($_GET);

...然后把它拿回来:

array(1) {
  ["foo"]=>
  string(7) "O\'Hara"
}

...而不是这个:

array(1) {
  ["foo"]=>
  string(6) "O'Hara"
}

但是,您正在尝试使用不存在的常量,如下所示:

<?php
define('this_exists', 'yes');
echo this_exists;
echo this_does_not_exist;

...并且您可能希望 PHP 不会警告您该错误:

PHP 注意:使用未定义的常量 this_does_not_exist - 假定为 'this_does_not_exist'

所以你基本上想摆弄error_reporting和 omit E_NOTICE

于 2014-03-26T08:36:07.170 回答