gpt4 book ai didi

PHP/CURL - 向另一个页面发出 POST 请求并跟随 URL

转载 作者:搜寻专家 更新时间:2023-10-31 21:49:12 24 4
gpt4 key购买 nike

我将尽我所能尝试解释这一点,我希望我能理解,因为英语不是我的母语。

假设我在第 1 页上有一个表单,其中包含这 3 个输入:

$_POST["name"];
$_POST["amount"];
$_POST["email"];

在第二页 process.php 我还有另一个输入:

$_POST["message"];

最后在外部网站上有一个我想 POST 到的表单,而无需在他们的系统中输入任何内容:

<form action="display.php" method="post">
<input type="text" name="name"><br>
<input type="text" name="amount"><br>
<input type="text" name="email"><br>
<input type="text" name="message"><br>
<input type="submit">
</form>

然后我希望能够自动重定向到 www.example.com/display.php 从我的 process.php 页面并自动提交表单 并能够看到我的所有信息我刚刚进入

display.php 的示例:

Display.php

我无权访问外部网站或 display.php 上的代码,因此这意味着我无法编辑代码或使用任何 session 。

希望你能理解我,能帮助我,如果你能帮助我,我将不胜感激!

编辑:

我测试了答案中给出的一些代码,看起来很有希望,但它没有将 POST 数据传递到外部页面(出于测试目的,外部页面不是外部页面)

下面是用于测试的代码:

进程.php

<?php
$_POST["name"] = "name";
$_POST["amount"] = "amount";
$_POST["email"] = "email";
$_POST["message"] = "message";

$post = array();
$post[] = "name=" . $_POST["name"];
$post[] = "amount=" . $_POST["amount"];
$post[] = "email=" . $_POST["email"];
$post[] = "message=" . $_POST["message"];

$ch = curl_init('http://localhost/display');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
header('Content-Type: text/html');
echo curl_exec($ch);
?>

显示.php

<?php
echo $_POST["name"];
echo $_POST["amount"];
echo $_POST["email"];
echo $_POST["message"];
?>

但出于某种原因,这不起作用?

最佳答案

这个怎么样?它假定名称、金额和电子邮件将发布到 process.php

添加了故障排除代码。

process.php

 <?php

//[put database queries here]

// $message = ??????????????????


$message = 'Message';

$post = array(
'name'=>$_POST['name'],
'amount'=>$_POST['amount'],
'email'=>$_POST['email'],
'message'=>$message);

$ch = curl_init('http://www.example.com/display.php');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_ENCODING,"");

header('Content-Type: text/html');
$data = curl_exec($ch);
echo $data;
?>

这已经过测试并且也有效

重定向到实际站点。

<?php
$name = $_POST["name"];
$amount = $_POST["amount"];
$email = $_POST["email"];
$message = $_POST["message"];

echo <<< EOT
<html><head><style></style></head><body>
<form id="form" action="http://www.example.com/display.php" method="post">
<input type="hidden" name="name" value="$name"/>
<input type="hidden" name="amount" value="$amount"/>
<input type="hidden" name="email" value="$email"/>
<input type="hidden" name="message" value="$message"/>
</form>

<script>document.getElementById("form").submit();</script>
</body></html>
EOT;

?>

关于PHP/CURL - 向另一个页面发出 POST 请求并跟随 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47371587/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com