1

以下のコードの何が問題なのかFile2.php、変数$myusernamefrom からの出力を妨げていることを誰かが知っていますかFile1.php?

私は単に変数を出力したいだけです$myusername。または、その変数を渡す方法が他にある場合は、それが私にとって非常に役立ちます。

これが私の例です:

File1.php

<?php 
$myusername=$_POST['myusername']; 

function getusername() 
{ 
   return $myusername;    
} 
?>

File2.php

<?php 
require_once('File1.php'); 
getusername(); 
?>
4

3 に答える 3

4

を利用することをお勧めし$_SESSIONます。

PHP でのセッション サポートは、後続のアクセス間で特定のデータを保持する方法で構成されています。これにより、よりカスタマイズされたアプリケーションを構築し、Web サイトの魅力を高めることができます。

Web サイトにアクセスする訪問者には、一意の ID、いわゆるセッション ID が割り当てられます。これは、ユーザー側の Cookie に保存されるか、URL で伝達されます。

セッションのサポートにより、リクエスト間のデータを $_SESSION スーパーグローバル配列に保存できます。訪問者がサイトにアクセスすると、PHP は自動的に (session.auto_start が 1 に設定されている場合)、またはリクエスト時に (session_start() を介して明示的に、または session_register() を介して暗黙的に) 特定のセッション ID がリクエストとともに送信されたかどうかをチェックします。この場合、以前に保存された環境が再作成されます。

File1.php

<?php
session_start();
$_SESSION['myusername'] = (isset($_POST['myusername']) ? $_POST['myusername'] : '');
?>

File2.php

<?php
session_start();
echo $_SESSION['myusername'];
?>

File1.php提供されたコードでは$_SESSION['myusername']、値が最初に提供されたかどうかを宣言がチェックしていることにも気付くでしょう。セッション変数をその値に設定した場合は、それ以外の場合は空に設定します。

于 2012-07-05T16:04:37.690 に答える
3

$myusername関数内からアクセスしようとしている場合は、グローバルとして宣言する必要があります。何らかの方法で印刷する必要もあります (例: echo) ;)

File1.php
<?php 
$myusername=$_POST['myusername']; 

function getusername() 
{ 
   global $myusername; // declare as global
   return $myusername;    
} 
?>

File2.php
<?php 
    require_once('File1.php'); 
    echo getusername();        // echo value
?>

続きを読む: PHP 変数スコープ. $_SESSION経由で渡すこともできます。

于 2012-07-05T16:00:02.670 に答える
1

セッション別。

File1.php

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

File2.php

<?php
session_start();
echo $_SESSION['myusername'];
于 2012-07-05T16:01:48.753 に答える