0

この広告ローテータースクリプトを見つけました。JavaScriptを次のようにネストしたいと思います。エラーが発生します。これをどのように実行しますか。

<?php 
// random number 1 - 100 $result_random = rand(1, 100); 

// if result less than or equal 70, display ad1 (70%) 
if($result_random <= 70){ 
  echo "<script type='text/javascript' src='http://myads.com'></script>"; 
} 
// if result less than or equal 90, display ad2 (20%) 
else if($result_random <= 90){ 
  echo "<script type='text/javascript' src='http://myads.com'></script>";
} 
// if result less than or equal 100, display ad3 (10%)
else { 
 echo "<script type='text/javascript' src='http://myads.com'></script>"; 
} 
4

3 に答える 3

1

PHPを使用してスクリプトソースをユーザーのブラウザに出力することはできますが、PHPアプリケーション内にJavascriptを含めて実行することはできません。

あなたの出力:

<script type='text/javascript' src='http://myads.com'></script>

正しい動作です。次に、クライアントはそのスクリプトソースを含めようとします。

条件付きインクルードを実行する場合は、ページのヘッドタグの間にそれらをエコーアウトする必要があります。

<html>
  <head>
    <?php
      // process, echo out a <script />
    ?>
  </head>
  <body>...</body>
</html>
于 2012-09-08T03:05:29.087 に答える
1

問題/原因:

この行だから

// random number 1 - 100 $result_random = rand(1, 100);

コメントアウトされています、

この行

if($result_random <= 70){ 

そしてこの行

else if($result_random <= 90){ 

次の行でエラーが発生しますUndefined Variable $result_random in line X

あなたのコード@Codepad.org/saPRtKPU

(更新:わかりました。エラーは発生していませんが、が未定義であるため、毎回$result_random最後のelse(ads3)ケースのみが実行されます。未定義の変数は値http://codepad.org/vVHMrWklを保持します)NULL

解決:

この行を変更します

// random number 1 - 100 $result_random = rand(1, 100);

// random number 1 - 100
$result_random = rand(1, 100);

つまり、前に改行/キャリッジリターン(EnterWindowsの場合)を挿入します$result_random....

問題は解決するはずですが、今なら、表示されている正確なエラーメッセージを投稿してください。

ところで、スクリプトの3つのSRCはすべて同じhttp://myads.com/です。これは単なる例だと思いますが、それでも、テスト中は、真のランダムな結果が得られているかどうかを知ることはできません。そこで、それぞれのURLにad1ad2を追加しました。ad3

完全なコード:

<?php 
// random number 1 - 100
$result_random = rand(1, 100); 

// if result less than or equal 70, display ad1 (70%) 
if($result_random <= 70){ 
  echo "<script type='text/javascript' src='http://myads.com/ad1'></script>"; 
} // if result less than or equal 90, display ad2 (20%) 
    else if($result_random <= 90){ 
      echo "<script type='text/javascript' src='http://myads.com/ad2'></script>";
    }// if result less than or equal 100, display ad3 (10%)
        else { 
             echo "<script type='text/javascript' src='http://myads.com/ad3'></script>"; 
        } 

//Just for testing
echo "\r\nRandom Number is: ".$result_random;

ライブデモ@Codepad.orghttp://codepad.org/oymuBk8w

于 2012-09-08T03:28:41.207 に答える
-1

このコードをファイルのセクションに配置する必要があります。そうして初めてそれは機能します

PHP内でwqrkしません。

Jsファイルは、それらをhtmlに含めるか、動的コード(php)nhtmlを使用する場合にのみ機能します。

于 2012-09-08T03:09:42.743 に答える