【问题标题】:php script stopped working on php 5.4.24php 脚本停止在 php 5.4.24 上工作
【发布时间】:2014-02-05 21:11:24
【问题描述】:

我有一个用于工作的 php 脚本(它是一个用于按图像搜索的自定义图像搜索引擎的 php 界面,类似于 Tineye 和 Google Image Search)。它曾经在 php 5.2 上工作正常,但在服务器升级到 php 5.3 和 5.4 后停止工作。这是脚本Client.php:

Client.txt

脚本很长,由于字数限制,无法在此处发布,因此我将其作为带有代码的文本文件上传。我想向您展示整个事情,因为我不确定哪个部分导致新 php 版本出现问题,但问题似乎出在套接字连接部分的某个地方。

我检查了错误日志,它没有显示任何 php 错误,这就是问题所在,否则我至少知道从哪里开始。它只是不会连接,也不会做任何事情。该脚本显示一个套接字连接表单,然后在您单击“接受并连接”后,它应该将您连接到服务器,出现一个搜索表单,您可以开始搜索。这就是它在 php 5.2 上的情况。但是由于我的服务器升级了,它没有连接,当你点击“接受并连接”时没有任何反应,页面只是自行刷新,没有错误。我卡住了!!!我不是程序员,但需要以某种方式使其工作,请帮助。

【问题讨论】:

  • 您好,欢迎来到本站。我建议你看看这个 - stackoverflow.com/help/how-to-ask - 当你有一个更具体的编程相关问题时回头看看。如所写,您在此处的帖子可能与 StackOverflow 无关,因为它过于宽泛,您可能不会收到您正在寻找的回复。

标签: php sockets upgrade


【解决方案1】:

乍一看,php 升级可能禁用了 php.ini 中的 short_open_tag 设置。对此的快速解决方法是将脚本中的 php 打开标记从 <? 更改为 <?php

看起来您可能正在使用以下行调用 ImageMagick:

$command = escapeShellCmd("./convert -geometry $ImgWidthx$ImgHeight $desti1 $desti2"); 

使用双引号时,PHP 将变量 $ImgWidth 视为未定义的 $ImgWidthx。 一个快速的解决方法是像这样用大括号分隔变量。

$command = escapeShellCmd("./convert -geometry {$ImgWidth}x{$ImgHeight} $desti1 $desti2");

希望这会有所帮助。此外,如果您更新了输出中的 HTML 文档类型,请检查脚本中已弃用的 HTML。

【讨论】:

  • 非常感谢您提供其他建议,但事实并非如此。我终于想出了如何打开通知,而不是错误。在我只是在日志中查找错误之前。这就是它所说的: 注意:未定义的变量:在第 907 行的 /home/me/public_html/Client.php 中提交但我不知道如何定义它。它指的是这一行: switch ($Submit) {
猜你喜欢
  • 2023-03-20
  • 2014-03-30
  • 1970-01-01
  • 2013-02-08
  • 1970-01-01
  • 1970-01-01
  • 2014-03-01
  • 1970-01-01
相关资源
最近更新 更多