我試圖創建一組if語句來檢查某些條件並返回一個值。我遇到的問題是我一直在設計這個並在Firefox中運行它,但我已經在Chrome中嘗試過它,並且我得到了與這些語句不同的結果。Chrome評估php如果語句不同於Firefox
什麼,我試圖用if語句是做,一個用戶填寫表單的頁面上,然後發送到另一個頁面,它將:如果爲空值,並
- 檢查的內容,產生(如果有人直接訪問該頁面)
- 如果值不爲空,請檢查頁面是否已刷新並生成消息「這已經輸入到數據庫中「 - (所以不會重新輸入)
- 如果值不爲空(如在1中)並且頁面未刷新(如在2中),則stor將數據輸入到數據庫併產生一條消息「成功」
當我填寫表單並將其帶到此頁面時,它會運行代碼並顯示「成功」,因爲它應該如此。但是當我在Chrome中以完全相同的方式運行它時,我收到消息「這已經輸入到數據庫中」 - 就像頁面已被刷新一樣。
我使用(減去所有的佈局代碼)的代碼是:
<?php session_start();
$seen = 0;
$pageWasRefreshed = isset($_SERVER['HTTP_CACHE_CONTROL']) && $_SERVER['HTTP_CACHE_CONTROL'] === 'max-age=0';
$message = $_SESSION['message'];
$code = $_SESSION['code'];
require 'inc/database.php';
if (!(isset($message) && ($message!==null))) {
echo 'You should not be here!';
} else {
$message = strip_tags(trim($_SESSION['message']));
if ($pageWasRefreshed) {
echo 'This has already been entered into the database';
} else {
$stmt = $conn->prepare('INSERT INTO data (code, message) VALUES (:code, :pmessage)');
$stmt->execute(array(
'pcode' => $code,
'pmessage' => $message,
));
$last_id = $conn->lastInsertId();
echo $last_id . 'Success!';
}
}
我(顯然)學習,因爲我去和使用嵌套的if語句是讓我有點糊塗了,所以可能是什麼很簡單,但因爲它在Firefox中運行,而不是在Chrome中運行,所以我不知道如何通過我的方式來找出錯誤的位置。
鉻和firefox不能以不同的方式評估php-code,因爲php完全執行**服務器端**。鉻和Firefox *從來沒有看到*一行的PHP,並不知道如何處理它,除了顯示爲文本。 –
據我所知,php不能在瀏覽器上運行,它運行在爲瀏覽器提供html頁面的服務器上。所以,這意味着,在我看來,它是不同的服務器,而不是瀏覽器 – Andreas
顯示您正在使用的HTML代碼。正如弗朗茲所說的瀏覽器沒有看到任何PHP,你的HTML中的東西顯示不同。 – Blinkydamo