2011-04-19 161 views
2

我目前有一個登錄表單,我想通過URL傳遞用戶名。 它存儲在一個會話變量中。在URL中傳遞PHP變量

我登錄後在頁面上有這個,但它似乎沒有工作。

$myusername = $_POST['myusername']; 

我期待這樣的事情:

page.php?myusername=example 

登錄頁面是一個PHP頁面連接到一個檢查從MySQL數據庫的登錄詳細另一個PHP。

主要部分來自本(上checklogin PHP頁面)

// username and password sent from form 
$myusername=$_POST['myusername']; 
$mypassword=$_POST['mypassword']; 

在接下來的頁面,成功登錄後我有這樣的:

<? 
    session_start(); 
header('Location: menu.php?myusername=$myusername') ; 
    if(!session_is_registered(myusername)){ 
    header("location:index.php"); 
    } 
    ?> 

回答

6

編輯,看着你的編輯,我說的改向第一部分看起來像你需要

什麼,但我看到你說

It is stored in a session variable.

你是formatti ng從PHP會話中的URL字符串,然後嘗試傳送得到參數的地方?如果是這樣,您是否嘗試使用session API獲取用戶名,然後執行php redirect

session_start(); 

$username = $_SESSION['myusername']; 

// redirect 
header("http://your/sites/dir/page.php?myusername=$username"); 

但它看起來像你依靠過時session_register和register_globals的,在此基礎上評論:

I am wanting to pass this throughout the application, I do have it saved as a session I think as this: session_register("myusername");

這可能不是由於使用的register_globals已被關閉。你應該離開它。你想避免session_register,而是使用$ _SESSION數組。

這裏是你怎麼拉一個 「名爲myUsername」 從URL GET查詢

提取從您要使用$ _GET一個URL的用戶名,即

$myusername = $_GET['myusername']; 

的一部分您正在查看的網址稱爲「查詢字符串」。格式爲

?var=value&var2=value2...
的參數被稱爲「GET」參數。 $ _POST參數不在URL本身中傳輸。你可以閱讀更多關於HTTP GET與POST, here

保存用戶名在會話

session_start(); 
// be sure to VALIDATE your inputs 
$_SESSION['myusername'] = $_GET['myusername']; // replace with post if appropriate 
+0

我已將它更改爲GET,但它仍然沒有出現..任何想法? – Xerting 2011-04-19 16:31:13

+0

@Xerting:我們需要看一些代碼來知道你使用'$ _GET'有什麼問題。 – 2011-04-19 16:32:53

+0

我工作的基礎是後端的反饋,它只是想看看URL中的參數(?username = xxxx)。 – Xerting 2011-04-19 16:39:17

2

$_POST參數必須來自POST編輯表格。如果您在URL中傳遞參數,那麼這是一個GET請求,並且值將在$_GET中可用。

$myusername = $_GET['myusername']; 
2

使用$_GET代替:

$myusername = $_GET['myusername']; 
2

page.php文件?名爲myUsername =示例使用GET方法。

嘗試

$myusername = $_GET['myusername'];

1

您可以使用$ _REQUEST看到變量的所有傳入的。嘗試做一個print_r($_REQUEST)或只是你的GET和POST相同。這將讓你看到正在傳遞什麼值,你可以確認是否分配了你想要設置變量的值。

0

你確定你沒有重定向的地方是剝離url參數嗎?例如,url_rewrite或任何apache重寫條件可能會轉儲任何查詢參數,並且實際上不會將任何內容傳遞給您的PHP腳本。

檢查您的Web服務器日誌以確保完整的URL(帶有查詢字符串)實際上用於調用您的腳本。