1

重複の可能性:
HTML ファイルで PHP スクリプトが機能しない

私はこれを持っています:

<?php
if(isset($_POST['submit'])){
   $f = fopen('counter.txt', 'r+');
   flock($f, LOCK_EX);
   $total = (int) fread($f, max(1, filesize('counter.txt')));
   if (isset($_POST['submit'])) {
      rewind($f);
      fwrite($f, ++$total);
   }
   fclose($f);
}
?>

そしてそれはtxtファイルで動作します。クリック数を正しくカウントします。でもこれは:

Times submited <?php echo $total; ?>.

フォームがある index.html ファイルでは機能しません。助けてください。

これは私のファイルの行です:

  1. フォーム (index.html)
  2. .php ファイル
  3. header("場所: thankyou.php")
  4. 次に index.html に戻ります
4

2 に答える 2

1

まず最初に、php は html ファイルで実行されません。サーバーがファイルを処理できるように、ファイルをphpファイルにする必要があります。

そのため、テキスト ファイルで動作しています。

html である必要がある場合は、これを使用できます。

http://php.about.com/od/advancedphp/p/html_php.htm

次に、$total 変数はグローバルではないため、別の php ファイルでは認識されません。get または post を使用して渡すか、最初の html ファイルに php を含める必要があります。

私は後者で行きます。

于 2012-10-23T00:28:40.753 に答える
0

ファイルに書き込まずにクリック数をカウントするには、クリック数をセッションに保存する必要があります。これは、グローバルではなく、単一のリクエストを超えて保持されないためです。これはすべて .php ファイルで行う必要があります。

<?php
$total = 0;

if(isset($_POST['submit'])){
  1. インクリメントする前に、セッションから値を $total に読み込みます。

    if(isset($_SESSION["total"]))
       $total = $_SESSION["total"];
    

2 増分 $total

  $total++;
  1. $total をセッションに保存する

    $_SESSION["total"] = $total;
    }
    
  2. その後、合計を印刷できます。

    echo 'Times submited: ' . $total .'.';
    ?>
    
于 2012-10-23T00:30:26.887 に答える