2017-02-03 8 views
1

これは本当にシンプルなものだと確信していますが、何が間違っているのか分かりません。

私は自分のhtml、php、およびjsファイルを一緒に動作させるように設定しましたが、自分のセッション変数を設定してファイルをチェックするのに問題があります。

私は、HTMLファイルとPHPファイルの両方にsession.phpファイルのインクルードが含まれていることを確認しました(まだ設定されていない場合、session_startを処理します)。

私のHTMLファイルには、機能(userSelection aka fxn1)があります。この関数は別の関数(showGameInfo aka fxn2)に値を渡し、私の.jsファイルはfxn2を処理します。次に、fxn2はそれを表示する情報を吐き出すphpファイルに送ります。私自身の変数を定義しようとするまで、すべてうまく動作します。私はhtmlファイルのfxn1の中でこれを行いました。それから、私は$ _SESSION ['test']の値をPHPファイルにエコーしようとしました。これはfxn1に追加した線です。

<?php $_SESSION['test'] = 1 ?>; 

私はここで本当に簡単なものがありませんか?私のPHPファイルは、セッションが設定されていることを示しています。何が間違っているのか教えてください。私は、HTMLでのSESSION [「テスト」]の行を取り出した場合は、PHPファイルは、単に変数のテストが定義されていない、と表示言う

<script> 
function userSelection(val) { 
    <?php $_SESSION['test'] = 1; ?> 
    showGameInfo(val); 
} 
</script> 

FXN1は、このように私のHTMLファイル内にありますそれはすべきである。

これはHTMLで何とか間違っていると私に伝えます。しかし、なぜですか?

Edit1:私は自分のhtmlとphpファイルにsession.phpを含めました。 session.phpには次の内容が含まれています:

<?php 
if (!isset($_SESSION)) 
    session_start(); 
?> 

これは間違っていますか?それはhtmlの最上位にあります。これはPHPファイルにも含まれています。私のPHPファイルはisset($ _ SESSION)が真であることを示していますので、正しいと思います。

+3

*「私はここで本当にシンプルな何かが足りないのですか?」*おそらく 'session_start();' –

+0

エラー報告;いつもあなたの友だちです –

+0

セッションをどこにしようとしていますか?あなたは私たちにあなたがそれを設定した場所だけを見せてくれました。 –

答えて

2

を参照してください

<script> 
function userSelection(val) { 
    <?php 
    session_start();//starts your session 
     $_SESSION['test'] = 1;//sets session variable ?> 
    showGameInfo(val); 
} 
</script> 

- ?それを定義するの.htmlファイルと同じように - フレッド-ii-"

"フレッド-II- @は、はい、それはそうと定義し、私のメインの.htmlファイルにある - 。Gredenko"

まず、セッションを開始し、.htmlファイルの場合は、それを.phpに変更するか、またはそれらのファイルをphpとして扱うようにシステムに指示します。

PHPは、デフォルトで.htmlのディレクティブを解析しません。

また、セッション配列がisset()に設定されているかどうかを確認する必要があります。

+0

これは問題だと思います。私はちょうどがhtmlで正常に動作しないことを今読んでいます。なぜそれが壊れているのでしょうか。私はそれを.phpファイルに変更しました。しかし、私はいつも私は任意のPHPコードを含めるつもりなら拡張子.phpを使用する必要がありますか?それとももっと正しい解決策がありますか?フレッドに感謝します。 – Gredenko

+0

@Gredenkoようこそ。拡張子として '.html'を使い続けたいなら、あなたのシステムに(もしサポートしていれば)phpとして扱うよう指示することができます。ここでは、http://stackoverflow.com/questions/4687208/using-htaccess-to-make-all-html-pages-to-run-as-php-filesを見ることができるものがあります –

1
は最初だけ、あなたがセッションで動作することができます

session_start(); 

を使用してセッションを開始し

。 。より多くの "FXN1はこのように私のHTMLファイル内にある:" "マニュアルPHP Sessions

+0

session_start()メソッドがありません。 –

+0

私の編集とsession.phpに関する部分を確認してください。私はphpとhtmlファイルの両方にそれを必ず含めました。 – Gredenko

+0

htmlでPHPファイルをインクルードする方法は?main.phpとして保存する –

0

session_start();は、セッション変数を定義または再呼び出しする必要のあるページに存在する必要があり、変数を定義または呼び出す前にする必要があります。 PHP manual(強調追加)から

のsession_start()は、セッションを作成またはクッキーを介してGETまたはPOST要求を介して渡される、または渡されたセッション識別子に基づいて、現在のを再開する。また

、あなたがHTMLファイルでPHPを実行したい場合は、フォルダ内の.htaccessファイルに以下を追加する必要があります

AddType application/x-httpd-php .htm .html 
関連する問題