特定の条件をチェックし値を返すif文のセットを作成しようとしています。私が遭遇した問題は、私がこれを設計してFirefoxで実行していることですが、私はChromeで試してみましたが、そのステートメントとは異なる結果が提示されています。Chromeはphp if文を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!';
}
}
私は(明らかに)学習していますシンプルですが、Firefoxでは動作し、Chromeでは動作しないため、どこが間違っているかを調べるための仕組みがわかりません。
phpが完全に**サーバーサイド**で実行されるため、chromeとfirefoxはphpコードを異なる方法で評価することはできません。 chromeとfirefox * phpの1行が表示されず、テキストとしての表示以外は何をするべきかわからないでしょう。 –
私が知っている限り、phpはブラウザでは動作しませんが、ブラウザ上でhtmlページを提供するサーバ上で動作します。だから、私の意見では、それはブラウザではなく、別のサーバであることを意味します。 – Andreas
使用しているHTMLコードを表示します。 FranzはブラウザにPHPが表示されないと述べているので、HTML内の何かが異なって表示されています。 – Blinkydamo