2011-04-12 39 views
0

我正在嘗試將POST發佈到具有兩個具有重複名稱元素的表單的頁面。問題是一個表單獲取密碼值,另一個表單獲取登錄值。 (我可以通過打印出curl_exec($ ch)來看到這一點;)我將包括我的代碼,目標URL和formdata。我該如何解決?cURL + PHP:使用相同表單名稱的重複表單提交表單

// my target url and form data 
$target = "http://www.example.com/login"; 
$formdata = "id=$login&password=$password&Submit=Log In"; 

形式:

<form id="login" name="login" method="post" action="login"> 

      <label for="id">LOGIN ID</label> <input type="text" value="" name="id" maxlength="50" size="30"><br> 
      <label for="password">Password ID</label> <input type="password" name="password" maxlength="12" size="30"> 
      <div align="center"><button class="siteSprite signInSm" value="Log In" name="Submit" type="submit"></button></div> 
</form> 


<form section="login" id="loginform" name="loginform" action="http://www.example.com/login" method="post"> 
<input type="text" size="20" value=" Log-in" onfocus="this.value=''" name="id"></td> 
<input type="password" value="Password" maxlength="15" size="12" onfocus="this.value=''" name="password"> 
<input type="submit" class="siteSprite signInSm" value="Sign-In"> 
</form> 
+0

有沒有辦法說我想提交到第二個表單值? Like&name [1] = UserNameHere – brant 2011-04-12 17:14:42

回答

1

你必須做一些事情來指示兩種形式得到提交。您可以提交一個字段名稱相同,但不同的值在每一個,或者使用提交按鈕:

<form ...> 
    <input type="hidden" name="whichform" value="1" /> 
    <input type="submit" name="Submit" value="form 1" /> 
</form> 

<form ...> 
    <input type="hidden" name="whichform" value="2" /> 
    <input type="submit" name="Submit" value="form 2" /> 
</form> 

然後

if ($_SERVER['REQUEST_METHOD'] == 'POST') { 
    if (($_POST['Submit'] == 'form 1') || ($_POST['whichform'] == '1')) { 
     .... handle form #1 .... 
    } 
    if (($_POST['Submit'] == 'form 2') || ($_POST['whichform'] == '2')) { 
     .... handle form #1 .... 
    } 

使用這兩種方法的工作原理相同,只是挑一個這是最有意義/最簡單的,並從那裏開始。

+1

可能需要修復第二個表單上的數字。 :) – drudge 2011-04-12 17:21:00

+0

沒錯。謝謝。我真的需要醒來......上午11點30分,在工作時仍然沒有意識到。不好。 – 2011-04-12 17:25:41

+0

嘗試9:30上午,沒有咖啡。 ;) – drudge 2011-04-12 17:29:59

1

$formdata = "id=$login&password=$password&Submit=Sign-In";可能會訣竅;注意第二個表單有一個提交按鈕的值,第一個表單有一個<button>,它不會發送一個值(或者可能通過腳本或其他東西發送一個不同的值)

我只是注意到提交按鈕沒有名稱;嘗試通過它沒有提交參數,即:

$formdata = "id=$login&password=$password