2015-11-01 103 views
0

有沒有什麼辦法通過按鈕觸發onClick事件並用cURL PHP或其他方法獲得結果?在PHP中提交遠程站點的按鈕cURL

<button class="yt-uix-button yt-uix-button-size-small yt-uix-buttondefault business-email-button" type="button" onclick=";return false;"> 
    <span class="yt-uix-button-content">View email address</span> 
</button> 
+0

'onclick'事件嵌入在html中的JavaScript。在這種情況下,點擊什麼也不做,除非你在其他地方有jQuery的東西。在PHP中,您可以模仿jQuery get/post,如果您找到相應的JavaScript代碼!請向我們展示更多代碼! 「'return false'」只是表示 - 忽略按鈕被按下! –

回答

0

您不能用CURL直接模擬點擊。你必須分析你發送給服務器的請求(HTTP標題),當你點擊按鈕時,使用諸如Chrome DevTools之類的工具。你可以使用它像this

一旦你知道請求URL和參數(如果有的話),你可以建立一個捲曲的請求,並得到這樣的迴應:

$ch = curl_init(); 

// params example 
$post = [ 
    'username' => 'user1', 
    'password' => 'pass1' 
]; 

// Request URL 
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/"); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $post); 

// server response 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 

$server_response = curl_exec ($ch); 

curl_close ($ch); 
0

是有辦法少做。首先檢查CURL方法在這裏發佈。 http://hayageek.com/php-curl-post-get/

然後,您將不得不使用Ajax或jQuery創建一個按鈕onClick的腳本,我將在下面發佈jQuery和Javascript的兩個示例。

的jQuery與PHP

1)首先它保存爲HTML文件

<script type="text/javascript" src="http://code.jquery.com/jquery-2.1.4.min.js"></script> 
<script type="text/javascript" language="javascript"> 
$(document).ready(function() { 
    $("#name").click(function(event){ 
    $.post("jQueryPost.php", 
    {name: "Miguel", surename: "Makonnen"}, 
    function(data) { 
    $('#result').html(data);} 
    ); 
    }); 
}); 
</script> 
<div id="result"> 
</div> 
<input type="button" id="name" value="Check Name" /> 

2)然後保存這爲遠程PHP文件,並將它命名爲jQueryPost.php

<?php 
if($_POST["name"]) { 
    $NAME = $_POST['name']; 
    $SURENAME = $_POST['surename']; 
    echo "Name ".$NAME."<BR>"; 
    echo "Surname: ".$SURENAME."<BR>"; 
} 
?> 

使用「onClick」,上面的腳本將發送一個帶有Name + Surename的POST請求給遠程PHP文件。遠程PHP文件將處理請求並將其作爲回調發送到您的HTML文件。您可以將PHP的內容更改爲任何您想要的內容。

的Javascript AJAX與PHP

1)首先這是你的HTML文件。

<script type="text/javascript"> 
function XmlHttp_Request() { 
    var xmlHttp = null; 
    if(window.XMLHttpRequest) {  // Firefox, IE7+, Opera Support 
    xmlHttp = new XMLHttpRequest(); 
    } 
    else if(window.ActiveXObject) { // fInternet Explorer 5, 6 Support 
    xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
    return xmlHttp; 
} 

// Post Ajax Data 
function ajaxPost(Filename, Finalise) { 
    var request = XmlHttp_Request(); 

    // Post Parameters 
    var postData = 'name='+document.getElementById('myname').innerHTML; 
    request.open("POST", Filename, true); // Our Post tRequest 
    request.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
    request.send(postData);  // Post Data 

    // Check request status 
    request.onreadystatechange = function() { 
    if (request.readyState == 4) { 
     document.getElementById(Finalise).innerHTML = request.responseText; 
    } 
    } 
} 
</script> 

<button onclick="ajaxPost('ajaxPost.php', 'finalise')">Check Name</button> 
<div id="myname"></div> 
<div id="finalise"></div> 

2)然後它保存爲爲名爲ajaxPost.php遠程PHP文件。

<?php 
if (isset($_POST['name'])) { 
    echo "Name: Miguel <BR>"; 
    echo "Surname: Makonnen"; 
} 
?> 

這將簡單地發送一個響應基於Ajax請求與名稱+姓氏從按鈕點擊遠程PHP文件。就像我提到的那樣,您可以使用Curl腳本更改PHP的內容。它不應該那麼辛苦。祝你好運