我遇到了一個非常令人沮喪的問題,我似乎找不到根本原因。我試圖在這裏找到一個簡單的驗證碼:https://github.com/claviska/simple-php-captcha驗證碼頁面加載僅限頁面更新
該代碼是從github不變的,並按照說明添加到我的網站。使用IE 8時,圖像顯示爲破碎的圖像,但如果我刷新頁面(F5),則圖像會奇蹟般地出現。 Firefox和Chrome甚至Safari都沒有顯示圖像的問題。我不知道爲什麼它在進入網頁時顯示爲中斷。我花了幾天的時間研究,而且很迷茫。
任何幫助,非常感謝。
編輯: 我一直在密切關注php日誌,並注意到函數似乎被調用兩次。看起來在進入頁面時,一切都很好,並且圖像被生成。但是,在進入頁面和最終加載之間,將再次調用該函數,並且瀏覽器正在嘗試顯示腳本創建的第一個圖像,該圖像在該點已經被銷燬。這隻發生在IE中,這就是爲什麼我很困惑。用於測試
代碼:
<?php
session_start();
$_SESSION = array();
include("captcha.php");
$_SESSION['captcha'] = captcha();
?>
<html>
<body>
<table>
<tr>
<td width="45%"><?php echo ('<img src="' . $_SESSION['captcha']['image_src'] . '" alt="CAPTCHA" />'); ?></p></td>
<td width="4%">:</td>
<td><input name="captcha" type="text" id="captcha" required><b><font color="red"> *</font></b></td>
</tr>
</table>
</body>
</html>
我的錢在'$ _SESSION ['captcha'] ['image_src']';那是什麼內容? –
該函數本身返回:/captcha.php?_CAPTCHA & t = 0.55984800 + 1346094060 – user1628449
爲什麼使用'$ _SESSION = array();'?通過這樣做,你將'$ _SESSION' var重置爲'array'。我認爲你應該這樣寫:'if(!session_id())session_start();',就是這樣。另外,我無法理解IE的確切問題。 –