2016-08-15 102 views
1

這裏是我當前的代碼:如何從textarea表單發佈數據?

<?php 
$apikey='IGNORE-THIS-VARIABLE'; 

// All URLS to be sent are hold in an array for example 
$urls=array('http://www.site1.com','http://www.site2.com/'); 

// build the POST query string and join the URLs array with | (single pipe) 
$qstring='apikey='.$apikey.'&urls='.urlencode(implode('|',$urls)); 

// Do the API Request using CURL functions 
$ch = curl_init(); 
curl_setopt($ch,CURLOPT_POST,1); 
curl_setopt($ch,CURLOPT_URL,'http://www.example.com/api.php'); 
curl_setopt($ch,CURLOPT_HEADER,0); 
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); 
curl_setopt($ch,CURLOPT_TIMEOUT,40); 
curl_setopt($ch,CURLOPT_POSTFIELDS,$qstring); 
curl_exec($ch); 
curl_close($ch); 
?> 

我的PHP代碼工作,但這裏是我遇到問題的行:

$urls=array('http://www.site1.com','http://www.site2.com/'); 

基本上我只是想有一個文本區域我用戶可以在其中輸入URL列表(每行一個),然後使用上面的PHP代碼發佈它。

我的代碼工作時,我只是有內置的代碼,就像你可以在上面看到的網址,但我只是無法弄清楚如何使它與文本區...任何幫助,將不勝感激工作。

+0

什麼是網頁從您提交?你如何讓用戶在你的表單上輸入這些URL,因爲我不記得多行文本框,只有textarea –

+0

是的,我讓用戶提交URL。對不起,我的意思是一個textarea。表單在'submit.php'上,並且被髮布到'api.php'。 – Edward

回答

2

你可以像下面(在同一PHP頁面上): -

<form method = "POST"> 

<textarea name="urls"></textarea><!-- add a lable that please enter new line separated urls --> 

<input type = "submit"> 

</form> 

<?php 

if(isset($_POST['urls'])){ 
    $apikey='IGNORE-THIS-VARIABLE'; 

    // All URLS to be sent as new-line separated string and explode it to an array 
    $urls=explode('\n',$_POST['urls']); //Or $urls=explode('\\n',$_POST['urls']); 
    // if not worked then 
    //$urls=explode(PHP_EOL,$_POST['urls']); 

    // build the POST query string and join the URLs array with | (single pipe) 
    $qstring='apikey='.$apikey.'&urls='.urlencode(implode('|',$urls)); 

    // Do the API Request using CURL functions 
    $ch = curl_init(); 
    curl_setopt($ch,CURLOPT_POST,1); 
    curl_setopt($ch,CURLOPT_URL,'http://www.example.com/api.php'); 
    curl_setopt($ch,CURLOPT_HEADER,0); 
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); 
    curl_setopt($ch,CURLOPT_TIMEOUT,40); 
    curl_setopt($ch,CURLOPT_POSTFIELDS,$qstring); 
    curl_exec($ch); 
    curl_close($ch); 
} 
?> 

注: - 你可以在兩個不同的頁面分開的形式和邏輯。我認爲這就是塞that。

您可以使用文本區域,然後你必須再由\n爆炸或者如果不工作,然後通過PHP_EOL爆炸初始URL字符串和休息的代碼同上

+0

工作幾乎完美,但我們可以讓它成爲一個textarea,其中的URL是按行分隔的嗎? – Edward

+0

@edward。你的意思是像標籤?能夠添加多個? –

+0

您應該檢查服務器請求方法。 –

1

可以傳遞到窗體價值在波紋管箱是。 HTML表單中的任何標籤都具有name屬性,爲任何textarea,input或select標籤分配名稱。

<form method="post" name="first_form"> 
    <input type="text" name="url" value="" /> 
    <textarea name="note"></textarea> 
    <input type="submit" value="Post" /> 
</form> 

在PHP中,您可以使用兩個方法$ _GET或$ _POST傳遞值。 分配你給的HTML標記($ _ POST [「音符」]或$ _POST [「鏈接」]),你也可以使它像一個數組$ _ POST標籤名稱。

<?php 
    if(isset($_POST)){ 

    // display the posted values from the HTML Form 
    echo $_POST['note']; 
    echo $_POST['url']; 

    } 
?> 

代碼:

$apikey='IGNORE-THIS-VARIABLE'; 

    // All URLS to be sent are hold in an array for example 
    $urls=array('http://www.site1.com','http://www.site2.com/'); 

    // build the POST query string and join the URLs array with | (single pipe) 
    $qstring='apikey='.$apikey.'&urls='.urlencode(implode('|',$urls)); 

    // Do the API Request using CURL functions 
    $ch = curl_init(); 
    curl_setopt($ch,CURLOPT_POST,1); 
    curl_setopt($ch,CURLOPT_URL,'http://www.example.com/api.php'); 
    curl_setopt($ch,CURLOPT_HEADER,0); 
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); 
    curl_setopt($ch,CURLOPT_TIMEOUT,40); 
    curl_setopt($ch,CURLOPT_POSTFIELDS,$qstring); 
    curl_exec($ch); 
    curl_close($ch);