【问题标题】:PHP Do not get $_GET values on page load, but do get them on reloadPHP 不要在页面加载时获取 $_GET 值,而是在重新加载时获取它们
【发布时间】:2014-11-25 16:38:17
【问题描述】:

我有这个网址:

http://www.origenseguridad.com.mx/SSS/AsignaServicios.php?a=edit&recid=3&TextoResp=Asignar:%20Tipo%20de%20Servicio,%20T%C3%A9cnico,%20Fecha/Hora%20de%20ejecuci%C3%B3n,%20T%C3%A9cnico%20y%20Objeto%20del%20Servicio&TEventosID=3

代码:

if (isset($_GET["a"])) 
{
    print_r($_GET);
} else { 
    echo '$_GET not found';
} 

调用页面结果为$_GET not found

但重新加载会产生正确的输出:

Array ( 
  [a] => edit 
  [recid] => 3 
  [TextoResp] => Asignar: Tipo de Servicio, Técnico, Fecha/Hora de ejecución, Técnico y Objeto del Servicio 
  [TEventosID] => 3 
)

这只发生在我的开发目录中的脚本,该目录与我的预生产目录处于同一级别,它确实按预期工作(第一次调用页面时的 $_GET 数组)

我相信这不是 Apache 的问题,因为它适用于其他目录

.htaccess 文件在两个目录中是相同的:

# Displaying PHP errors
php_flag display_errors on
php_value error_reporting 6143

我通常将我的开发目录重命名为预生产状态,因此人们可能会测试应用程序,但现在我无法继续前进。

【问题讨论】:

  • 这将是一个难以重现的问题。此外,您链接的页面似乎会立即重定向。还可以测试吗?
  • 嗯,您必须先登录系统才能显示页面,我可以为您设置测试用户。此外,该 url 由加载后的页面形成,该页面将用户重定向到待处理的项目,也可以为您设置。让我知道
  • 提供设置测试环境的问题在于该站点并非旨在充当调试服务。相反,我们正在寻找在未来几年对其他用户仍然有用的特定问题。查看有关创建a Minimal, Complete, and Verifiable example 的建议。

标签: php html .htaccess get


【解决方案1】:

发现问题并记住教训。

由于我在错误日志中没有收到任何错误,因此几乎可以肯定代码中应该有错误。

最后,我在其中一个包含文件中编写了一个函数来取消设置 $_GET 数组,如果该页面不是从自己或从 Pendings 页面调用的。 挂起的列表页面被“硬”编码到预生产目录,因此它只能从那里工作或从自身调用,这就是它在重新加载时工作的原因,清除 $_GET 变量并没有清除 url。

让 unset 函数知道目录结构,清除了问题。

感谢大家的帮助,特别是 IMSoP,让我回到基础知识

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-02-18
    • 2021-08-26
    • 1970-01-01
    • 2020-02-10
    • 1970-01-01
    • 1970-01-01
    • 2014-10-03
    • 2011-11-13
    相关资源
    最近更新 更多