2016-09-17 8 views
0

私は自分のRaspberry Pi 3をWebサーバーとして使用して遊んでいます。フォームからのPHPセッションデータが渡されない、または画面に印刷されない

フォームによるユーザー入力の処理の詳細については、こちらをご覧ください。

/var/www/htmlに2つのファイルがあります。 form.htmlform.php

form.html

<form action="form.php" method="post"> 
<input type="text" name="varname"/> 
<input type="submit" name="Submit" value="Submit!" /> 
</form> 

<?php 

    session_start(); 

    if (isset($_POST['Submit'])) { 
    $_SESSION['varname'] = $_POST['varname']; 
    } 
?> 

form.php

<?php 

    session_start(); 

    $var_value = htmlspecialchars($_SESSION['varname']); 

    echo $var_value; 

?> 

私は、[送信]をクリックします! form.htmlのブラウザでは、空白のページを表示するform.phpにブラウザが移動します。

当然、$var_valueを画面に印刷したいと思います。

私のコードに問題はありますか、それとも他のサーバー側の問題ではありますか?

+0

すでに両方のページのPHPコードブロックの最初の行にあります。それは文書全体の始めにあるはずですか? –

+4

サーバー構成で '* .html'ファイルにPHPコードを実行することはできますか? '* .html'ファイルを' * .php'に変更して、その結果を試してみてください。 –

+1

あなたのファイル名をform.htmlからform.phpに変更します –

答えて

2
は、form.phpためにあなたのform.html拡張子を変更

そして、あなたはあなたの仕事を達成するために以下のコードを使用することができ

Form.php //シングルページ

<?php 
session_start(); // Should be in first Line 
if (isset($_POST['Submit'])) { 
    $_SESSION['varname'] = $_POST['varname']; 
    $var_value = htmlspecialchars($_SESSION['varname']); 
    echo $var_value; 
    } 
?> 
<form method="post"> 
<input type="text" name="varname"/> 
<input type="submit" name="Submit" value="Submit!" /> 
</form> 
?> 

そうでない場合://複数ページ

form.php

<form action="some_form.php" method="post"> 
<input type="text" name="varname"/> 
<input type="submit" name="Submit" value="Submit!" /> 
</form> 

some_form.php

<?php 
session_start(); 
if (isset($_POST['Submit'])) { 
    $_SESSION['varname'] = $_POST['varname']; 
    $var_value = htmlspecialchars($_SESSION['varname']); 
    echo $var_value; 
    } 
?> 
+0

ありがとうございます。私は今、二つのページを持っています。一つは 'html'、もう一つは' php'です。 'html'ファイルには' session_start(); 'は含まれていません。すべてが今、完璧に動作します。 –

関連する問題