2014-02-05 193 views
-1

我有一個PHP腳本,我用於工作(這是一個自定義圖像搜索引擎的圖像搜索,類似於Tineye和谷歌圖片搜索的PHP界面)。它曾經在php 5.2上正常工作,但在服務器升級到php 5.3和5.4後停止工作。這裏是腳本Client.php:php腳本停止工作在PHP 5.4.24

Client.txt

劇本是漫長的,我無法張貼在這裏,因爲有一個字符的限制,所以我上傳它作爲代碼的文本文件。我想告訴你整個事情,因爲我不確定哪個部分會導致新的PHP版本出現問題,但問題似乎在套接字連接部分。

我檢查了錯誤日誌,它不顯示任何PHP錯誤,這是問題,否則我至少會知道從哪裏開始。它只是不會連接,不會做任何事情。該腳本顯示套接字連接形式,然後在您單擊「接受並連接」後,它應該將您連接到服務器,然後出現搜索表單,您可以開始搜索。這是如何在PHP 5.2。但是由於我的服務器已經升級了,所以沒有連接,當你點擊「接受和連接」時什麼也沒有發生,頁面只是刷新自己,沒有任何錯誤。我卡住了!我不是程序員,但需要讓它以某種方式工作,請幫助。

+1

您好,歡迎來到本網站。我建議你看一下這個 - http://stackoverflow.com/help/how-to-ask - 當你有一個更具體的編程相關問題時回頭看看。正如所寫的,你的帖子很可能是StackOverflow的主題,因爲它太廣泛了,你可能不會收到你正在尋找的回覆。 – admdrew

回答

0

乍一看,php升級可能已經禁用了php.ini中的short_open_tag設置。快速解決這個問題的方法是將腳本中的php open標記從<?更改爲<?php

看起來你可能會作出對ImageMagick的調用與行:

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

當使用雙引號,PHP看到變量$ImgWidth$ImgWidthx這是不確定的。 一個快速的解決辦法是用大括號來分隔變量。

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

希望這會有所幫助。另外,如果您更新了輸出上的HTML文檔類型,請在腳本中檢查已棄用的HTML。

+0

感謝您的回覆,嘗試過,不幸的是沒有改變。 – user3276862

+0

非常感謝您提供其他建議,但事實並非如此。我終於想出瞭如何打開Notices,而不是錯誤。之前我只是在尋找錯誤日誌。這就是它所說的:注意:未定義的變量:在907行的/home/me/public_html/Client.php中提交但我不知道如何定義它。它指的是這一行:switch($ Submit){ – user3276862

0
Notice: Undefined variable: phpurl in /Users/mike/Sites/Client.php on line 6 

Notice: Undefined variable: phpurl in /Users/mike/Sites/Client.php on line 8 

Notice: Undefined variable: phpurl in /Users/mike/Sites/Client.php on line 8 

Notice: Undefined variable: Submit in /Users/mike/Sites/Client.php on line 892 

Notice: Undefined variable: AlgorithmId in /Users/mike/Sites/Client.php on line 893 

Warning: mkdir(): Permission denied in /Users/mike/Sites/Client.php on line 862 

Notice: Undefined variable: Submit in /Users/mike/Sites/Client.php on line 904 

這似乎是你的腳本期望找到變量,而不是。這裏是否還有另一個腳本?檢查你的舊php.ini對你的新的。有可能有一些配置設置發生變化。它似乎想從表單的POST數據中獲得$Submit,但是我看不到POST的引用。

我假設您在升級之前閱讀了發行說明version 5.3version 5.4,並檢查了腳本中可能存在的不兼容問題?