提交后自动提交php表单

时间:2014-01-22 15:09:45

标签: javascript php

首先让我说我根本不是一个PHP程序员,但我正在帮助(或尝试)一个客户端,应该快速设置一个远程登录页面。

基本上我有一个2表单字段 - user&密码 - 提交给自己。使用ID,API密钥,UTC时间戳,表单用户名和表单密码构建字符串。这将转换为UTF-8,然后转换为base64。

然后需要将此字符串作为名为strAuth的表单变量发布到远程页面。

我正在使用登录表单并正确构建字符串,但不确定将其自行重新发布的最佳方法。

<?php
  $bpid = '193493';
  $rkey = '3CE1334241ADA18CD';
  $ts = gmdate("Y-m-d H:i:s", $timestamp = time());
  $user = $_POST["user"];
  $pass = $_POST["pass"];
  $str = $bpid . ',' . $rkey . ',' . $ts . ',' . $user . ',' . $pass;
  $ustr = mb_convert_encoding($str,'UTF-8');
  $bstr = base64_encode($ustr);

上面构建了一个字符串,如果我手动检出并且工作正常。使用PHP自动发布此内容的最佳方法是什么?我尝试了这个,但它生成了第二个提交按钮,但不会自动发送数据。

if (!empty($_POST)) {
  echo "
<form action=\"remoteurltologin\" method=\"post\" id=\"loginForm\">
<input name=\"strAuth\" type=\"hidden\" value=\"$bstr\">
<input type=\"submit\">
</form>
<script type=\"text/javascript\">
   $('#loginForm').submit();
  </script>";
};

感谢和抱歉的noob问题!

4 个答案:

答案 0 :(得分:2)

您应该尝试使用curl而不是打印表单并在前端提交:

$curl = curl_init();
curl_setopt_array($curl, array(
    CURLOPT_RETURNTRANSFER => 1,
    CURLOPT_URL => 'remoteurltologin',
    CURLOPT_POST => 1,
    CURLOPT_POSTFIELDS => array(
        'strAuth' => $bstr
    )
));

$resp = curl_exec($curl);
curl_close($curl);

答案 1 :(得分:1)

我想你想使用cURL php库:http://php.net/manual/en/book.curl.php

希望这有帮助!

答案 2 :(得分:0)

也许你没有调用jQuery脚本,所以使用原生javascript

if (!empty($_POST)) {
  echo "
<form action=\"remoteurltologin\" method=\"post\" id=\"loginForm\">
<input name=\"strAuth\" type=\"hidden\" value=\"$bstr\">
<input type=\"submit\">
</form>
<script type=\"text/javascript\">
   document.getElementById('loginForm').submit();
  </script>";
};

答案 3 :(得分:0)

如果您不想要提交按钮,请删除:

<input type=\"submit\">

该按钮仅用于为人们提供点击提交的内容。在你的情况下,它不需要在那里。

对于表单,以autofocus形式提供输入,然后使用JS onfocus提交。 PS:我把提交包装在一个函数中。

    if (!empty($_POST)) {
      echo "
    <form action=\"remoteurltologin\" method=\"post\" id=\"loginForm\">
    <input name=\"strAuth\" type=\"hidden\" value=\"$bstr\" autofocus onfocus='submitAgain()'>
    <input type=\"submit\">
    </form>
    <script type=\"text/javascript\">
     function submitAgain() {
       document.getElementById('loginForm').submit();
      }
      </script>";
    };