在PHP cURL中提交远程站点的按钮

时间:2015-11-01 21:17:44

标签: javascript php curl

有没有办法通过按钮触发onClick事件并使用cURL PHP或任何其他方法获取结果?

<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>

2 个答案:

答案 0 :(得分:0)

您不能直接使用CURL模拟点击。当您单击按钮时,您必须使用Chrome DevTools等工具分析发送到服务器的请求(HTTP标头)。您可以像this一样使用它。

一旦您知道请求URL和参数(如果存在),您就可以构建一个CURL请求并获得如下响应:

$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);

答案 1 :(得分:0)

是的,有几种方法可以做到这一点。首先查看CURL方法发布在这里。 http://hayageek.com/php-curl-post-get/

然后你必须使用Ajax创建脚本或jQuery for button onClick,我将在下面发布两个jQuery和Javascript示例。

使用PHP

jQuery

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”上面的脚本将向远程PHP文件发送带有Name + Surename的POST请求。远程PHP文件将处理请求并将其作为回调发送到您的HTML文件。您可以将PHP的内容更改为您想要的任何内容。

使用PHP

Javascript AJAX

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"; 
}
?>

这将只是在Button Click上从远程PHP文件发送一个基于Ajax请求的响应,其中包含Name + Surname。就像我提到的那样,您可以使用Curl脚本更改PHP的内容。它不应该那么难。祝你好运