2012-09-17 112 views
3

我正在嘗試使用cURL登錄。PHP,cURL發佈數組?

來自登錄頁面的HTML正在做一些我從未見過的事情。

<input type="text" name="user_session[login]"/> 
<input type="password" name="user_session[password]"/> 

我曾嘗試:

user_session[login]=blablabla&user_session[password]=blablabla 

但沒有什麼,什麼想法?

+0

因此,一個數組將在另一側包含密鑰'login'和'password'以及它們相應的值構造,那麼問題是什麼?還需要首先用cURL登錄才能搜索到SO,您需要在表單中添加所有輸入,然後按照您的要求輸入哪些輸入不被使用/必需。 – dbf

+0

@dbf,但只是做'user_session [登錄]'會使'PHP'明白它是'數組'?它不會被視爲一個字符串嗎? – Gerep

+1

簡而言之,通過HTTP發送的所有內容都是二進制的,二進制文件中的所有內容都將轉換爲字符串(並不總是,但在大多數情況下),字符串的結構將被解釋爲數組,對象,int等等。是的,它會明白,這將最終成爲一個陣列。 – dbf

回答

0

請確保您對密鑰進行了URL編碼。我不認爲這些括號是安全的。 PHP會將這些參數解析爲一個數組,但是如果您只是想模擬一個表單提交,那麼腳本所做的並不重要。如果將PHP 5函數http_build_query與數組['user_session' => ['login' => 'NAME', 'password' => 'PASS']]一起使用,它應該返回所需的查詢字符串,正確轉義(可以在?之後附加到URL中,或者用作POST數據與curl_setopt($resource, CURL_POSTFIELDS, http_build_query($args)))。

如果仍不起作用,請發表整個表格;除括號外,您的提交可能還有其他一些問題。