POST没有表单方法(PHP)


POST without Form Method (PHP)

有没有办法在不使用表单的情况下使用POST方法将内容从一个页面传递到另一个页面?

就像在get中一样,你可以用你想要发送的任何东西附加一个?。你能帮我做点事吗?

我还读了另一个线程,它说使用会话。但是会话是以cookie的形式保存在用户计算机上的,而cookie是不安全的。

那还有别的办法吗?比如在第一页描述一些东西,然后把它传递到第二页。

如果有人能解释一下POST方法是如何工作的,那就太好了。它是如何传递数据的?

你应该使用jQuery。您可以使用它的ajax()功能。访问下面的链接,阅读它的完整描述和功能列表,以帮助您。

下面是一个示例代码:

<hmtl>
    <head>
        <script type="http://code.jquery.com/jquery-1.5.1.min.js"></script>
    </head>
    <body>
        <div class="my-fake-form">
            <input id="posting-value-1" type="text" />
            <a id="submit-form-link" href="#submit">Submit this Div!</a>
        </div>
    </body>
</html>
Ajax代码:

function fake_form_submit ()
{
    var post = $('input#posting-value-1').val();
    $.ajax({
    'url': 'your-php-file.php',
    'type': 'POST',
    'dataType': 'json', 
    'data': {post: post},
    'success': function(data)
     {
         if(data.finish)
         {
            $("div.my-fake-form").attr("innerHTML","Form Submited!");
         }
         else
         {
            $("div.my-fake-form").attr("innerHTML","Form Not Submited!");   
         }
     },
     beforeSend: function()
       {
            $(document).ready(function () {
                $("div.my-fake-form").attr("innerHTML","Loading....");
            });
       },
        'error': function(data)
        {
          $(document).ready(function () {
            $("div.my-fake-form").attr("innerHTML","ERROR OCCURRED!");
          });
        }
      });
}
$(document).ready(function () {
    $('a#submit-form-link').click(function (e) {
       e.preventDefault();
       fake_form_submit();
    });
});
PHP:

<?php
$post = $_POST['post'];
//Do Something with the value!
//On Succes return json encode array!
echo json_encode(array("finish" => true));
?>

AJAX文档AJAX函数文档
AJAX教程

就用sessions。

会话在cookie中的存储,如上面的答案所示,仅限于会话的ID。如果您有安全意识,甚至可以将cookie配置为仅作为http cookie发送。

在请求页面上,设置所需的会话键值对。在请求的页面上请求先前设置的会话密钥(首先检查它是否存在)。在你的php.ini中,你可以选择使用会话cookie作为HTTP-only,这样你有更多的安全性。

此外:发布数据可以像使用AJAX或cURL一样简单,如上面所述。

服务器端可以使用cURL扩展实现此功能。教程:我不能100%确定您正在寻找服务器端解决方案。

您可以使用Ajax请求向服务器发送POST请求。

如果你想从浏览器中POST,让它看起来像一个链接,你需要一些javascript:

可以使用submit()函数。例如,请参阅http://www.javascript-coder.com/javascript-form/javascript-form-submit.phtml。

但是如果你想让它像GET一样,为什么不使用GET呢?

对于从页面发送POST请求,您可以使用JQuery。post(在这种情况下,您必须使用库)或cURL(在php中)

一种方法是使用JavaScript提交一个不可见的表单。HTML:

<button id="my-button">Go to other page</button>
<form id="my-form" method="POST" action="/other-page" style="display: none">
  <input type="hidden" name="param1" value="value1">
  <input type="hidden" name="param2" value="value2">
</form>
JavaScript (jQuery):

$("#my-button").click(function(e) {
    $("#my-form").submit();
});

你也可以使用链接(<a>标签)代替按钮等。

这将使浏览器转到另一个页面。如果你想保持在当前页面上,只是在后台发布一些数据,使用jQuery或类似库中的ajax函数。