PHP cURL中远程站点的提交按钮
Submit button of remote site in 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>
您不能直接用CURL模拟点击。当你点击按钮时,你必须使用Chrome DevTools等工具分析发送到服务器的请求(HTTP头)。你可以这样使用它。
一旦你知道了请求的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);
是的,有几种方法可以做到这一点。首先查看这里发布的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",上面的脚本将向远程PHP文件发送一个带有名称+Surename的POST请求。远程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";
}
?>
这将简单地在Button Click上从远程PHP文件中发送一个基于Ajax请求的Name+Surname响应。正如我前面提到的,您可以使用Curl脚本更改PHP的内容。不应该那么难。祝好运
相关文章:
- Javascript生成的表单未提交
- 将输入字段中的文本提交到我的数据库,同时将其添加到我的列表中
- HTML表单提交时未执行外部函数
- 在POST中将html表作为csv提交
- 我应该使用Ng提交还是点击表格
- 我想使用模态通过php文件发送邮件,并且我希望在提交关闭后关闭pop
- 提交后保留下拉选择的值
- 键入最后一位数字后自动提交
- 阻止表单元素提交
- JS表单提交"无法使用Chrome数据保护程序加载此页面.尝试重新加载页面.调试信息:POST CISmtuK
- Jquery提交表单而不刷新
- 将图像上传ajax与表单提交ajax相结合
- Jquery表单验证插件-如果选中复选框,如何在提交时执行某些操作
- 自定义表单验证和提交
- 带有验证和隐藏字段值的提交按钮
- 如何在 API 调用后和 if 语句中启用提交按钮
- Jquery函数在错误的时间提交
- 如何在用户提交链接时添加提取推文并将其发布到站点的功能
- PHP cURL中远程站点的提交按钮
- 多个表单提交到跨域站点