2010-07-21 52 views
1

好吧,我現在用的是下面的代碼基礎上的登錄表單中輸入的信息導航到一個網頁在我的WebBrowser控件:C#:我如何發送PHP會話變量到WebBrowser控件?

private string currentUser = usernameTextbox.Text; 
private string currentPasswd = passwordTextbox.Password; 

public static byte[] StrToByteArray(string str) 
{ 
    System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding(); 
    return encoding.GetBytes(str); 
} 

Uri myHomePage = new Uri("userHome.php"); 
currentBrowser.Navigate(myHomePage, "", appFunctions.StrToByteArray("username=" + currentUser + "&password=" + currentPasswd), "Content-Type: application/x-www-form-urlencoded\r\n"); 

此代碼工作正常,內POST數據發送到我想要的變量我PHP頁面,併成功將用戶登錄到其個人菜單。這樣做也會在PHP頁面上設置一個$ _SESSION變量來保存站點所有頁面上的用戶名。這也工作正常 - 只要我從頁面內的鏈接本身導航。但是,如果我嘗試使用WebBrowser.Navigate()移動到另一個頁面,它似乎會丟失$ _SESSION變量。

說了這麼多,我想知道的是,如果有任何方法通過WebBrowser.Navigate()方法將我的C#'currentUser'變量直接發送到PHP $ _SESSION變量。

我認爲,如果我可以做到這一點,我的問題將得到解決。如果沒有,我可能必須瀏覽我網站的每一頁,並添加一些變量檢查代碼,以查看C#表單是否已將POST數據直接發送到該頁面。

任何幫助將不勝感激!

回答

0

PHP有兩種使用會話的方式:設置一個cookie,或者對頁面上的每個URL進行修改以包含會話標識符。

這聽起來像PHP正在做後者,當你想讓它做前者。確保你的代碼可以使用cookie。