2011-06-22 16 views
0

フォームを含む:は、私は私のフォームデータをポストすると、別のページのデータ

<form action="layouts.php" method="post"> 
    <input type="text" name="bgcolor"> 
    <input type="submit" value="Submit" align="middle"> 
</form> 

PHPのページに、 "layouts.php" 予想通り、それは、文字列を返します。:

$bgcolor = $_POST['bgcolor']; 
echo $bgcolor; //returns "red" 
echo gettype($bgcolor); // returns "string" 

しかし、別のページに "layouts.php"を含めると、NULLが返されます。

<?php 
    include("php/layouts.php"); 
    echo $bgcolor; // 
    echo gettype($bgcolor); //returns "NULL" 
?> 

変数を別のページに渡すにはどうすればよいですか?

答えて

4

このようなファイルの間に変数を浮かべるには、セッションを使用する必要があります。

セットアップが非常に簡単です。各PHPファイルの先頭には、あなたがセッションを開始するために、このコードを追加します。

session_start(); 

あなたは、このようなセッション内で変数を格納することができます

$_SESSION['foo'] = 'bar'; 

そして、あなたは(ページにわたってそれらを参照することができますセッションを使用するすべてのページでsession_start()を実行してください)。

0

2つのフォームにaction=""と何が起こるかを確認してください。私はちょうど私のスクリプトでそれを試して、それは正常に働いた。

これを解決するより適切な方法が存在する可能性がありますが、それはオプションです。簡潔なコードのための

2

layouts.php

<?php 
session_start(); 
$bgcolor = $_POST['bgcolor']; 
$_SESSION['bgcolor'] = $bgcolor; 
?> 

new.php

<?php 
session_start(); 
echo $_SESSION['bgcolor']; 
?> 
+0

おかげで(私は唯一の理由は、余分な説明のBlenderの答えを受け入れました)。 – Adam

+0

@アダム:大丈夫です:) –

関連する問題