Re: [請益] Curl的問題

看板PHP作者 (烽火連天依山盡)時間12年前 (2012/02/09 23:59), 編輯推噓2(2024)
留言26則, 2人參與, 最新討論串2/2 (看更多)
※ 引述《sulddrea (David Harrison)》之銘言: : 又要問問題了... : 我想要讓會員註冊時,根據他們輸入的資訊同時去創建社團頁面自動創建。 : 我舉其中一格來當例子 : 輸入頁面: : <input type=text name=AAA id=BBB > : 然後是在<Form action>的地方放入我想接的Curl的連結嗎? : ex: <Form action:www.xxx.com/curl.php : method:post> ??? : 如果輸出頁面(就是CURL的目的地)的對應格子是: : <input type="text" name="CCC" id="DDD" > : 那Curl.php裡面要怎麼寫?? : 這樣嗎: : $post_data['CCC'] = $_POST['AAA']; : 謝謝>< 其實依照你的問題,我先假設在同域名(或同空間)之下執行的動作 pageA: 填社團名稱 pageB: 接收處理頁面 pageC: 取得社團名稱並填寫資料 ┌──┐ ┌─┐ ┌─┐ │ A │→│B│→│C│ └──┘ └─┘ └─┘ page A 中使用 <form method="post" action="pageB.php"> <input type="text" name="club" /> <input type="submit" value="送出" /> </form> page B 接收到 club name 後 <?php $club = $_POST["club"]; query("insert"); /// -- 自己補成 insert sql header("Location: c.php"); ?> 再來就是到 page C <?php $sql = "select"; // 撈資料 $ret = mysql_fetch_assoc(mysql_query($sql)); $clubname = $ret["club_name"]; echo $clubname; ?> ///////////////// 採用三頁的方式主要是以提交後先插入資料庫在撈出來 如此可以在 page C 中先確認 clubname 是否存在之類的 <?php if($clubname=="") { ... } ?> 但如果不要這麼麻煩,其實就採用兩頁 畢竟看開始的問題好像是先輸入社團名後的下一頁顯示輸入的名稱 這樣的話 page A 的 form 就可以直接送到 page C <form method="post" action="pageC.php"> <input type="text" name="club" /> <input type="submit" value="送出" /> </form> 在 pageC 就接收 club <?php $clubname = $_POST["club"]; ?> 這樣的好處是不需要先連資料庫也不用先做處理之類的 但如果是資料在其他 server ,本機只負責將 form post 過去 且又不想要跑出同域的話,那可以採用 post 的方式 (如果高興想在 onsubmit 時用 js 跑 ajax 我也不反對XD) 架構就變成 ┌─┐ ┌─┐     ┌─┐ │A│→│B│┐  ┌→│C│ └─┘ └─┘│ ┌─┐└─┘        └→│X│          └─┘ A 一樣是填入資料後送到 page B 但 page B 才是寫跑 curl 的程式碼,而 X 則是負責接收處理 page B: <?php $clubname = $_POST["club"]; $curl = curl_init("x"); // 印象中要絕對路徑 curl_setopt($curl,CURLOPT_POST,1); // 採用 POST 送出 curl_setopt($curl,CURLOPT_POSTFIELDS,"club=".urlencode($clubname")); // 這個 post 的值可以用 array 帶也可以用字串,但要加 urlencode $ret = curl_exec($curl); // 執行 curl,取得回傳 curl_close($curl); // 關閉 header("Location: c.php"); ?> page X: 在這個檔案裏面就做存入資料庫的動作,如上面原本 B 的動作 那如果要給 page B 回應是否成功,可以用 echo 的方式 (例如我成功會回傳1,失敗回傳0,後面再接 msg) page C 就一樣處理後續的動作 基本上我覺得第二個狀況應該比較符合你吧(只要兩頁, echo POST 即可那種) 但我其實沒很仔細看需求XD 所以看完如果有我說錯方向的部分請歡迎提出 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.32.186.193

02/10 00:09, , 1F
好感動@O@! 我其實最有進展的就是第二種,直接action到創
02/10 00:09, 1F

02/10 00:10, , 2F
社團頁面,所以第一面打好資料後,按下submit直接到該頁
02/10 00:10, 2F

02/10 00:11, , 3F
並且對應的欄位也都填好了,但是只差我不會讓他自動按
02/10 00:11, 3F

02/10 00:12, , 4F
enter...(而且有個很惱人的限制...第三面(創建面)不能編
02/10 00:12, 4F

02/10 00:13, , 5F
輯(根本不知道他是哪一堆php頁面組成的...)所以才想說Cur
02/10 00:13, 5F

02/10 00:14, , 6F
l好像最棒,因為會做第二種方法(直接填寫資料),並幫我按
02/10 00:14, 6F

02/10 00:15, , 7F
enter...
02/10 00:15, 7F

02/10 00:22, , 8F
那這樣的解釋還算能解決嗎@@? 我怕我會錯意就是了
02/10 00:22, 8F

02/10 00:22, , 9F
我找到第三頁的php了...但是要讓他自動submit好像都要先
02/10 00:22, 9F

02/10 00:23, , 10F
找到form的id(name),這個我找不到...
02/10 00:23, 10F

02/10 00:24, , 11F
恩,非常感謝你@O@,我就照著你說的再去試試看囉!
02/10 00:24, 11F

02/10 00:30, , 12F
最後一個小問題...HTML的表格裡面(不用到PHP)有辦法讓第
02/10 00:30, 12F

02/10 00:32, , 13F
格的value=第一格+第二格輸入的value嗎?
02/10 00:32, 13F

02/10 00:34, , 14F
<input type=text name=name3 value=['name1']+['name2']
02/10 00:34, 14F

02/10 00:34, , 15F
XD?
02/10 00:34, 15F

02/10 08:56, , 16F
要這樣做就用JS,去判斷1跟2是否為數字
02/10 08:56, 16F

02/10 08:56, , 17F
然後兩個相加後套入第三格就可以了:D
02/10 08:56, 17F

02/10 08:56, , 18F
如果知道 submit 出去的值是甚麼,或許可以直接把值
02/10 08:56, 18F

02/10 08:57, , 19F
用curl post 送到第三頁就可以了(還是我又理解錯了QQ)
02/10 08:57, 19F

02/10 10:46, , 20F
<button name="execute" id="execute" type="submit">
02/10 10:46, 20F

02/10 10:47, , 21F
那顆按鈕長這樣!
02/10 10:47, 21F

02/10 10:48, , 22F
JS@@ 可是那兩格都是文字唷 1:qwe 2:asd 3=qweasd @@
02/10 10:48, 22F

02/10 10:55, , 23F
他應該有用 form 包起來,form 裡面有 action 可以知道
02/10 10:55, 23F

02/10 10:55, , 24F
post 出去的路徑。
02/10 10:55, 24F

02/10 10:55, , 25F
另外如果不用比對數值的話,直接用JS把1跟2的內容用+串起來
02/10 10:55, 25F

02/10 10:55, , 26F
就可以達到你的要求了
02/10 10:55, 26F
文章代碼(AID): #1FC-r9TB (PHP)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
文章代碼(AID): #1FC-r9TB (PHP)