2013-10-06 361 views

回答

0

您可以使用$ _SESSION,我不知道你正在嘗試做的。但似乎是你需要的東西!

+0

我的意思是,我不能通過href將變量$ login的值傳遞給try.php。 – user2852776

+0

瀏覽器會話可用於此目的。這需要在PHP中完成。你只需要知道如何設置和檢索信息。 –

0

如果$ login只是一個字符串或其他基本變量,請使用查詢字符串。

<a href="try.php?myvar=<?=$login?>">Vote</a>

0

有將值傳遞給一個PHP頁面的幾種方法。

傳遞一個值作爲GET請求你加一個參數如下:

try.php?myvalue=test 

然後,可在目標語言檢索:

$myValue = isset($_GET['myvalue'])?$_GET['myvalue']:null; 

這需要進行轉義,以避免SQL注入。見How can I prevent SQL injection in PHP?

但是,如果您的變量包含敏感信息(例如密碼),則非常沮喪地使用GET。爲此,最好使用POST請求。你應該解釋什麼$login被用於。

5

有兩種通過URL傳遞數據的主要方式。您可以創建一個<form>,然後將數據發佈到下一頁。或者,您可以直接在url中傳遞數據,這稱爲GET方法。

PHP Manual - $_POST

PHP Manual - $_GET

POST方法意味着數據將在沒有用戶能夠很容易地看到它被傳遞。數據通過HTTP標頭髮送到下一頁。這是傳遞表單數據最常用和最推薦的方式。

GET方法傳遞URL中的所有數據,例如:http://www.somesite.com/page.php?var1=stuff&var2=morestuff這意味着您甚至可以製作一個URL來通過GET自己傳遞數據。在將數據放入URL之前,您只需要輸入urlencode(),這樣它就不會包含導致URL無效的任何無效字符。

只需要很簡單,您還可以使用會話在頁面之間傳遞數據。但爲了做到這一點,您必須首先使用session_start()建立會話。此方法對於保持跨頁加載的數據持久性比將用戶輸入傳遞到新頁面更有用。您仍然需要使用POST或GET將用戶鍵入的信息傳遞到第一頁到第二頁進行處理,然後您可以將它存儲在$ _SESSION變量中,以保持它在所有下一頁中保持不變加載時無需通過GET或POST繼續傳遞它。

PHP Manual - Session Handling

PHP Manual - $_SESSION

2

比方說,您的網站是example.com,你想送的用戶是否已經登錄還沒有一個叫的login.php頁面。您可以將href設置爲example.com/login.php?login=true。這將創建一個名爲$_GET['login']的變量,並將其值設置爲等號後的任何值(在本例中爲「true」)。你可以從你的PHP腳本訪問這個'GET'變量,儘管你首先需要確定它已經被設置,並且有一個值(不是空的)。你可以用下面這樣做:

if (isset($_GET['login']) && !empty($_GET['login'])) 
    $login = $_GET['login']; 

比方說,你要發送的信息是動態的,所以需要根據你的PHP腳本中的變量設置。你可以這樣做:

<a href="try.php?login=<? echo $login; ?>">Vote</a> 

你想小心使用GET變量發送什麼信息。這是因爲它們是通過URL發送的,所以用戶可以自己設置它。例如,愛麗絲說愛麗絲登錄她的帳戶,她擁有她的私人信息。對於Alice訪問的每個頁面,URL末尾都有一個?login=Alice。但鮑勃想找出愛麗絲的信息,所以他看着他的網址,這是example.com/Login.php?login=Bob,並將'鮑勃'更改爲'愛麗絲',所以他有example.com/Login.php?login=Alice。現在,他可以看看Alice的所有信息。因爲用戶可以通過它設置URL和所有'GET'變量,所以您需要小心只發送'GET'信息,這些信息如果發生更改不會導致安全問題。如果您需要發送這樣的信息,則可以使用'POST'變量。

相關問題