2012-03-09 90 views
0

我在PHP中執行代碼驗證圖像,並通過調用它在另一個頁面中顯示它。php文件如何等待其他人?

<img src="getVerifyImage.php"/> 

其中getVerifyImage.php準備圖像。

我也想通過使用Java腳本來控制客戶端的代碼。

創建存儲的代碼,然後我打印出來的隱藏字段中的會話對象。我通過使用JavaScript閱讀代碼。

然而,被叫PHP完成其運行的映像準備之前。結果沒有創建會話。當我嘗試創建我的隱藏字段。

我怎麼能等到我的網頁,直到getVerifyImage.php的執行完成?

注:我不能使用AJAX,因爲AJAX不會對我的工作server.i不知道爲什麼,但它是。我與其他服務器進行了多次測試。我的ajax代碼在這個服務器上不起作用。

+0

同步'xmlhttprequest'吧?我不知道它將如何實施。 – 2012-03-09 18:48:13

+0

你不能,因爲'getVerifyImage.php'只會在你當前的PHP腳本運行時被調用。您將需要重新載入頁面,或使用Ajax能夠訪問驗證結果在PHP – 2012-03-09 18:48:38

+7

將代碼中的隱藏字段擊敗圖像驗證 – miki 2012-03-09 18:49:31

回答

3

可能做到這一點通過移動圖像生成代碼的功能,將圖像保存到磁盤,然後再輸出一個普通的URL到<img>標籤,從生成的標記的其餘部分相同的PHP文件。

然而,您不應該將您的驗證碼添加到您的標記。引用上述三木的評論:

將代碼中的隱藏字段擊敗圖像覈查的目的

+0

我知道,將代碼放入頁面並不是一個好主意。但我真的需要這個。我不能使用ajax,因爲端口是關閉的,它會進行通信。保存圖像不保證我的調用php文件使用圖像也代碼。 – erencan 2012-03-09 19:02:16

+0

我的建議是,從生成標記其餘部分的相同PHP文件創建圖像,並將最終頁面發送到瀏覽器(包括帶有會話變量值的隱藏字段)。 – bfavaretto 2012-03-09 19:07:42

+0

哦,我看到..這個作品。非常感謝。 – erencan 2012-03-09 19:13:58

0
<body style="display:none;"> 

 

$(document).load(function(){ 
$("body").show(); 
$("#preload").remove(); 
})); 

也許它的工作原理。

+0

我很抱歉。我沒有把信息放在我的問題中。但是,我不能使用ajax,因爲我的服務器管理員關閉了ajax通信的端口。我知道這很愚蠢。 – erencan 2012-03-09 18:54:40

+3

此答案中未使用Ajax .. – 2012-03-09 18:56:08

+0

Ajax只是使用與您的瀏覽器發出的常規請求相同的端口。如果管理員阻止了某件事,那不是端口。 – bfavaretto 2012-03-09 19:16:44