2017-02-09 10 views
1

私はlooooong PHPスクリプトがあり、スクリプトが実行されたときに私のcodeline`s Twiceの2つを作った! 1つはdbでsqlが更新され、もう1つは以下に示すCountメカニズムでした。エラーの原因は、スクリプトの早い段階で、srcに疑問符を持つhtml imgタグがあることです。完全に奇妙な単純なPHPの実行 - (それは説明することができます[それは私が4時間を追跡する])

2回カウントするPHPスクリプトです。それに

<? 
session_start(); 
print "<img src=''>"; 
print "counter: ".count($_SESSION['Updated']); 
if(!$_SESSION['Updated'])$_SESSION['Updated']= array(); 
$_SESSION['Updated'][] = "test"; 
?> 

PHPはコードラインを実行している理由のimg srcが持っていたときに二度、説明enyoneとすることができ疑問符:ものをカウントし

<? 
session_start(); 
print "<img src='?'>"; 
print "counter: ".count($_SESSION['Updated']); 
if(!$_SESSION['Updated'])$_SESSION['Updated']= array(); 
$_SESSION['Updated'][] = "test"; 
?> 

PHPスクリプト? srcタグから疑問符を削除すると、すべて正常に動作します。

+0

PHPは「コード行を2回実行しません」、確かにそうではありません。ほとんどの場合、疑問符は同じスクリプトに対する2回目のhttp要求を引き起こし、2回目の実行になります。 httpサーバのログファイルにアクセスし、ブラウザのネットワークコンソールで2.を確認することができます。 – arkascha

+0

print "counter:....."行は1度しか書かれませんが、セッションのCount(および配列データ)はページが更新されるたびに2つずつ増加することに注意してください... –

+0

1回の実行で各行が1回だけ実行されるため、1回の実行で2回の別々の実行が期待されます。 – arkascha

答えて

2

できます。ブラウザは、URLで画像を取得するためのPHPスクリプトと2番目のリクエストを取得するように最初にリクエストしています: リクエストURL:http://www.rchobbyworld.dk/test2.php

(注:URLの最後にあります)。したがって、あなたのカウンターは2倍に増えます。あなたはブラウザ内のどのWeb開発ツールでもそれを見ることができます。

+0

あなたは絶対に天才です! (この質問の前にブラウザのdeveleperツールを使用する方法はわかりませんでした) –

関連する問題