2013-02-04 88 views
0

我有一個用戶輸入他的電子郵件和密碼的登錄頁面。然後傳遞給另一個頁面(成功),他們將有不同的選擇。創建一個帶變量的網址

我需要做的是從prevoius頁面(登錄),我可以做的電子郵件地址,但然後我想將它添加到像下面的一個URL。

第一部分工程確定(membersgoods.php?電子郵件=,但我不能獲得的電子郵件地址,我剛剛得到的文本$電子郵件。

$email = $_POST['email'] 
echo '<a href="membersgoods.php?email=$email"> Click here to see your purchased goods</a>'; 

誰能幫助?

+2

這惡臭可能壞建築。如果用戶已經登錄,爲什麼你需要他們在URL中的電子郵件地址? URL中的電子郵件足以訪問用戶的私人數據嗎?那將是一個巨大的安全漏洞。 –

+0

謝謝佩卡 - 你是對的,我需要看看Sessions id的代替。 – user2039822

回答

0

它的工作原理只有用雙引號:

echo "<a href=\"membersgoods.php?email=$email\">Click here to see your purchased goods</a>"; 

說明

如果字符串是用雙引號(「),PHP會解釋的轉義序列的特殊字符:

\n linefeed (LF or 0x0A (10) in ASCII) 
\r carriage return (CR or 0x0D (13) in ASCII) 
\t horizontal tab (HT or 0x09 (9) in ASCII) 
\v vertical tab (VT or 0x0B (11) in ASCII) (since PHP 5.2.5) 
\e escape (ESC or 0x1B (27) in ASCII) (since PHP 5.4.0) 
\f form feed (FF or 0x0C (12) in ASCII) (since PHP 5.2.5) 
\\ backslash 
\$ dollar sign 
\" double-quote 
  • 雙引號字符串最重要的特徵是,變量名稱將被展開。
  • 當用雙引號或heredoc指定字符串時,變量在其中被解析爲
1

你不能使用」變量,但你可以在「使用它

echo "<a href=\"membersgoods.php?email=$email\"> Click here to see your purchased goods</a>"; 

echo '<a href="membersgoods.php?email='.$email.'"> Click here to see your purchased goods</a>'; 
+0

謝謝博揚,這對我很有幫助,但是看着佩卡的觀點,我想我需要在會議上做更多的事情。 – user2039822

0

你的推杆您在單引號字符串..

echo '<a href="membersgoods.php?email='.$email.'"> Click here to see your purchased goods</a>';

0

嘗試類似這樣的:

<?php 
    $query_string = 'mail=' . $_POST['email']; 
    echo '<a href="mySite.php?' . htmlentities($query_string) . '">click</a>'; 
?> 

希望這會有所幫助。

\好像IM遲到了:)

0

我覺得你合併形式的兩種方法:GET和POST。

如果您使用'get',所有屬性將寫入URL並且您可以訪問每$ _GET(或$ _REQUEST)。

如果你使用'post'沒有其他的事情,那麼這個動作將被寫入URL中,你可以通過$ _POST(或者$ _REQUEST)來訪問屬性。

With <form action="index.php" method="post">...</form>它會正常工作。

0

圍繞字符串的單引號可防止變量的擴展。

嘗試

echo '<a href="membersgoods.php?email='. $email .'"> Click here to see your purchased goods</a>' ; 

延伸閱讀:stackoverflow.com Question 14688343