【问题标题】:Submitting a form after processing in PHP在 PHP 中处理后提交表单
【发布时间】:2011-04-13 01:26:42
【问题描述】:

我们有一个表单,它可以获取一大堆详细信息,然后将其提交给一个邮件程序,该程序会向某些人发送电子邮件。

我需要在表单和邮件程序之间进行一些额外的处理,该程序检查数据库中的信息,然后相应地更改表单数据。

我认为我可以为此使用 curl,但是一旦我完成处理,我需要提交表单并让事情按照他们想要的方式运行,就好像 php 不存在一样,似乎我做不到这与 curl。

问题是我可以用 curl 做到这一点吗?或者有没有更好的方法来解决这个问题。 (虽然我可以对邮件和表单进行细微的更改,但它们应该尽可能保持不变)。

编辑:我不确定我可以输入什么信息,但我会尝试简化它。

目前:表单 -> 邮件程序

我正在尝试做的事情:表单 -> php ->邮件程序

邮件程序接受 POST 变量,所以我想要做的是获取 post 变量,更改其中一些,然后将它们发送到邮件程序,之前的过程看起来相同。

【问题讨论】:

  • 我认为您发布的信息不足以令人满意地回答这个问题。
  • 邮件脚本也是PHP吗?你控制它,还是表单发布到远程服务器?
  • 不,它是用另一种语言编写的应用程序,我几乎无法控制它。
  • 看看我的说法是不是真的,你的<form>action属性是指向邮件程序的,但是你要先指向你的php文件,处理一下,然后你会通过这个表格到邮件程序。对吗?
  • 是的,目前确实如此,但 curl 显然不会转到邮件程序生成的页面。但是 curl 缺少一个我不知道的属性。使用 curl 让它工作

标签: php post curl forms


【解决方案1】:

使用这个:

http://wezfurlong.org/blog/2006/nov/http-post-from-php-without-curl/

<?php
function do_post_request($url, $data, $optional_headers = null)
{
  $params = array('http' => array(
              'method' => 'POST',
              'content' => $data
            ));
  if ($optional_headers !== null) {
    $params['http']['header'] = $optional_headers;
  }
  $ctx = stream_context_create($params);
  $fp = @fopen($url, 'rb', false, $ctx);
  if (!$fp) {
    throw new Exception("Problem with $url, $php_errormsg");
  }
  $response = @stream_get_contents($fp);
  if ($response === false) {
    throw new Exception("Problem reading data from $url, $php_errormsg");
  }
  return $response;
}

需要 PHP5。在 PHP 中整理您需要的所有数据并输出帖子值。

【讨论】:

    【解决方案2】:

    使 PHP 文件生成一个表单,该表单的属性填充了处理后的值。然后你最后使用 Javascript 提交表单。

    【讨论】:

      【解决方案3】:

      简短的回答是 curl 可以满足我的需要:

       `curl_setopt($curl_connection, CURLOPT_FOLLOWLOCATION, 1);`
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-05-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-11-10
        相关资源
        最近更新 更多