2012-07-05 169 views
1

是否有人知道下面的代碼有什麼問題,導致我無法在File2.php中打印變量$myusername,從File1.php使用PHP將變量從一個頁面傳遞到另一個頁面

我只是想打印變量$myusername,或者如果您知道任何其他方式如何通過該變量,這將對我非常有用。

這是我的例子:

File1.php

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

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

File2.php

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

嘗試閱讀會話 – Gntem 2012-07-05 16:00:00

+0

「無法打印」是什麼意思?你能在這裏粘貼你得到的任何錯誤信息嗎? – taz 2012-07-05 16:00:41

回答

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 Variable scope。 您也可以通過$_SESSION傳遞它。

+0

你確定這個例子有效嗎?我嘗試了同樣的一個複製粘貼代碼仍然dosnt顯示任何東西。 – Lulzim 2012-07-05 16:10:01

+0

我編輯了我的答案,它沒有顯示任何內容,因爲沒有'echo'。 – Zbigniew 2012-07-05 16:14:14

+0

仍然不能正常工作:S – Lulzim 2012-07-05 16:19:49

1

按會話。

File1.php

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

File2.php

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

我會主張利用$_SESSION

PHP中的會話支持包括在後續訪問中保留某些數據 的方法。這使您可以構建更多自定義的 應用程序,並增加您網站的吸引力。

訪問您的網站的訪問者被分配了一個唯一的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'] : ''); 
?> 

文件2。PHP

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

您還會注意到,在所提供的File1.php代碼,如果該值首次提供的$_SESSION['myusername']聲明檢查。如果是,則將會話變量設置爲該值,否則將其設置爲空。

相關問題