是否可以使用PHP编写表单提交文件?
使用PHP可以创建一个伪表单提交而不生成表单吗?只需初始化和声明变量,然后通过POST或GET方法将它们传递到另一个页面?当然。您可以使用cURL来实现这一点,这个链接应该解释一些基本知识:-但是在互联网上有数百个cURL教程可以做类似的事情 一旦你掌握了卷曲的窍门,它就很容易理解和使用 下面是一个代码示例:是否可以使用PHP编写表单提交文件?,php,forms,methods,submit,Php,Forms,Methods,Submit,使用PHP可以创建一个伪表单提交而不生成表单吗?只需初始化和声明变量,然后通过POST或GET方法将它们传递到另一个页面?当然。您可以使用cURL来实现这一点,这个链接应该解释一些基本知识:-但是在互联网上有数百个cURL教程可以做类似的事情 一旦你掌握了卷曲的窍门,它就很容易理解和使用 下面是一个代码示例: <? define('POSTURL', 'http://www.test.com/search.php'); define('POSTVARS', 'listID=29&
<?
define('POSTURL', 'http://www.test.com/search.php');
define('POSTVARS', 'listID=29&request=suba&SubscribeSubmit=Subscribe&EmailAddress=');// POST VARIABLES TO BE SENT
$ch = curl_init(POSTURL);
curl_setopt($ch, CURLOPT_POST ,1);
curl_setopt($ch, CURLOPT_POSTFIELDS ,POSTVARS);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION ,1);
curl_setopt($ch, CURLOPT_HEADER ,0); // DO NOT RETURN HTTP HEADERS
curl_setopt($ch, CURLOPT_RETURNTRANSFER ,1); // RETURN THE CONTENTS OF THE CALL
$data = curl_exec($ch);
?>
这样的办法应该行。肯定行。您可以使用cURL来实现这一点,这个链接应该解释一些基本知识:-但是在互联网上有数百个cURL教程可以做类似的事情 一旦你掌握了卷曲的窍门,它就很容易理解和使用 下面是一个代码示例:
<?
define('POSTURL', 'http://www.test.com/search.php');
define('POSTVARS', 'listID=29&request=suba&SubscribeSubmit=Subscribe&EmailAddress=');// POST VARIABLES TO BE SENT
$ch = curl_init(POSTURL);
curl_setopt($ch, CURLOPT_POST ,1);
curl_setopt($ch, CURLOPT_POSTFIELDS ,POSTVARS);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION ,1);
curl_setopt($ch, CURLOPT_HEADER ,0); // DO NOT RETURN HTTP HEADERS
curl_setopt($ch, CURLOPT_RETURNTRANSFER ,1); // RETURN THE CONTENTS OF THE CALL
$data = curl_exec($ch);
?>
类似的东西应该可以使用。您正在寻找的是一个用于创建此类请求的库。您正在寻找的是一个用于创建此类请求的库。理论上,您可以在Apache中生成此表单提交的内部请求;实际上,您必须像其他建议的那样使用PHP的http流包装器或curl。理论上,您可以在Apache中生成此表单提交的内部请求;实际上,您必须像其他建议的那样使用PHP的http流包装器或curl。您可以尝试这样做
$_POST = array(
'lname'=>urlencode($last_name),
'fname'=>urlencode($first_name),
'title'=>urlencode($title),
'company'=>urlencode($institution),
'age'=>urlencode($age),
'email'=>urlencode($email),
'phone'=>urlencode($phone)
);
$_GET = array(); // no get
$_SERVER['REQUEST_METHOD'] = "POST";
$_SERVER['REQUEST_URI'] = '/anotherpage.php';
// set REQUEST_PATH, REQUEST_PATHINFO, REQUEST_SCRIPTNAME etc
// now it will be like this anotherpage.php was requested with a form
include("anotherpage.php");
如果你想避免卷曲,但我不推荐,因为它很快就会变得凌乱。你可以尝试这样做
$_POST = array(
'lname'=>urlencode($last_name),
'fname'=>urlencode($first_name),
'title'=>urlencode($title),
'company'=>urlencode($institution),
'age'=>urlencode($age),
'email'=>urlencode($email),
'phone'=>urlencode($phone)
);
$_GET = array(); // no get
$_SERVER['REQUEST_METHOD'] = "POST";
$_SERVER['REQUEST_URI'] = '/anotherpage.php';
// set REQUEST_PATH, REQUEST_PATHINFO, REQUEST_SCRIPTNAME etc
// now it will be like this anotherpage.php was requested with a form
include("anotherpage.php");
如果你想避免卷曲,但我不推荐它,因为它会很快变得凌乱。我不确定你是否可以设置POST选项,但只要GET是可以接受的,你就可以很容易地做到这一点(我不是专家,不需要测试就可以解决这个问题,并且保证没有bug,所以你必须测试):
这将使您的帖子变成GET。我不确定您是否可以设置帖子选项,但只要GET是可接受的,您就可以非常轻松地完成此操作(我不是专家,无法在不进行测试的情况下快速完成此操作,也不能保证没有bug,因此您必须进行测试):
这将使您的帖子变成GET。是的,但您可能需要自己写出HTTP标题。。。我对这个问题的了解不足以给你们一个实际的答案,但我知道这是可能的。这个问题的目的是什么?这种模拟的目标是什么?这种模拟的目标是在表单的action属性中未定义的页面之间传递数组或类。在页面之间传递的变量将用于另一个页面上的显示。是的,但您可能需要自己写出HTTP头。。。我对这个问题的了解不足以给你们一个实际的答案,但我知道这是可能的。这个问题的目的是什么?这种模拟的目标是什么?这种模拟的目标是在表单的action属性中未定义的页面之间传递数组或类。页面间传递的变量将用于另一个页面上的显示。我认为cURL不用于在服务器内传递数据,而应用于服务器到服务器的提交。只要您通过本地主机点击脚本,它就会正常执行。您要做的是服务器到服务器的传输,碰巧它是同一台服务器。如果您试图在内部传递数据,只需从任何PHP页面调用该函数/代码即可。无需通过HTTP协议与您自己的服务器通信。调用函数或代码不是一个合适的解决方案。页面之间传递的变量将用于另一页面上的显示。它将决定一些HTML是如何构建的。我认为cURL不是用来在服务器内传递数据的,而是应该用于服务器到服务器的提交。只要您通过本地主机点击脚本,它就会正常执行。您要做的是服务器到服务器的传输,恰好是同一台服务器。如果您试图在内部传递数据,只需从任何PHP页面调用该函数/代码即可。无需通过HTTP协议与您自己的服务器通信。调用函数或代码不是一个合适的解决方案。页面之间传递的变量将用于另一页面上的显示。它将决定一些HTML是如何构建的。据我所知,cURL不是用来在服务器内传递数据的,而是用来在服务器之间传递数据的。感谢您的教程。没有理由不能使用它在服务器内传递数据。如果不使用cURL或其他库,您将无法在任何地方发布数据,我不知道还有其他任何库接近cURL。您可以使用PHP的http流包装器。但每个人似乎都喜欢卷发。@事实上,我已经注意到了对卷发的喜爱。应该是更干净的方法来完成这项任务,但从我的一些代码来看,情况并非如此。我的理解是,cURL不是用来在服务器内传递数据,而是用来在服务器之间传递数据。感谢您的教程。没有理由不能使用它在服务器内传递数据。如果不使用cURL或其他库,您将无法在任何地方发布数据,我不知道还有其他任何库接近cURL。您可以使用PHP的http流包装器。但每个人似乎都喜欢卷发。@事实上,我已经注意到了对卷发的喜爱。应该是更干净的方法来完成这项任务,但是从我的一些代码来看,它不是这样的。我想我可以这样做。谢谢你的示例代码。我想我可以这样做。感谢您提供的示例代码。我喜欢您提供的示例代码,但我可以看到哪里会很快变得混乱。我喜欢您提供的示例代码,但我可以看到哪里会很快变得混乱。