7

私のWebサーバーは奇妙に動作しています。スクリプト(PHP)を2回実行してから、apacheに送信するようです。

私はこのファイルを実行しました:

<?php
echo '<pre>';
session_start();
$_SESSION['index']++;
echo '<br>';
print_r($_SESSION);
?>

++が最初に通知を出すことは知っていますが、それが2回実行されるかどうかを調査するだけです。とにかく、印刷されたセッションは、ページをロードするたびにインデックスインデックスが2ずつ増加することを示しています。

Webサーバーはapache2、php5がdebianユニットにインストールされています。

誰かアイデアはありますか?

4

4 に答える 4

6
echo '<pre>'; //Headers and cookies already sent.
session_start(); //Cannot set cookie anymore, system tries again, I guess

最初にセッションを開始してから、何かを出力します。session_start();上に置いてみてください

于 2013-02-19T20:44:32.043 に答える
2

この質問の投稿者には十分に感謝できません。彼のセッションテストで、phpスクリプトが数回実行されるという同じ問題があることに気づきました。

私のスクリプトでは、if-else-constructによって互いに分離された2つのPDO関数がありました。1つは単純な選択で、もう1つは単純な挿入機能でした。しかし、スクリプトを実行するたびに、両方のpdoコマンドが実行されました。PDOは、エントリ「public」を持つ行をテーブルに書き込むことになりました。

どうしたの?HTMLコード内の要素が見つからなかったため、ページが複数回送信されました。私の場合、それは間違った名前のcssファイルでした。私がそれを解決したとき(コードを見て4時間後)、問題は消えました。また、たとえば壊れた画像は同じイベントをトリガーします。

于 2013-07-11T07:53:06.200 に答える
2

桶の人々は、この問題に対する完全に正気でない解決策を見つけました。将来の参考のために投稿するだけです。最近、Chrome(拡張機能)にHTMLバリデーターをインストールしました。これが原因のようです。すべてがロードされた後、バリデーターはページを再要求しているように見えるため、2回実行されます。素敵なプラグイン。いいえ!これを理解するのに約半日かかりました。

于 2016-12-04T00:06:44.110 に答える
0

同じ動作が見られます...$_ POSTは、ページが最初に実行されたときに表示され、2回目は表示されません...コードを精査して、ページが再び自分自身にポストバックする理由を見つけました。役立たず。

上記のuser1601869の回答を見た後、チェックを開始しました。まだ書いたことがないスタイルシートへのリンクがいくつかあったので、それらのスケルトンをに入れます。

私にとって、犯人は次のとおりでした。

<link rel="shortcut icon" href="">

これは、私のページを壊す原因となったアイコンの単なるプレースホルダーでした。<HEAD></HEAD>同じ問題が発生した場合は、壊れているリンクを探すことをお勧めします。

于 2016-06-29T04:17:20.347 に答える