没有表单方法的POST(PHP)

时间:2011-04-22 08:20:23

标签: php html post

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

就像在get中一样,您只需附加一个?即可发送任何内容。你能为帖子做点什么吗?

我还读了另一个说使用会话的帖子。但是会话作为cookie保存在用户计算机上,并且cookie是不安全的。

那么还有其他办法吗?就像描述第一页中的内容然后将其传递给第二页一样。

如果有人能解释我POST方法是如何工作的话会很好吗?它是如何传递数据的?

7 个答案:

答案 0 :(得分:8)

你应该使用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 documentation
AJAX function documentation
AJAX tutorial

答案 1 :(得分:5)

只需使用会话。

Cookie中会话的存储由上述答案指示,仅限于会话ID。如果您有安全意识,Cookies甚至可以配置为仅作为HTTP-cookies发送。

在请求页面上,设置所需的会话键值对。在请求的页面上请求先前设置的会话密钥(检查它是否存在)。在您的php.ini中,您可以选择将会话cookie用作仅限HTTP,这样您就可以获得更高的安全性。

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

答案 2 :(得分:1)

服务器端您可以使用cURL扩展名来实现此目的。教程:here 我不是100%确定你在寻找服务器端的解决方案吗?

答案 3 :(得分:1)

您可以使用Ajax请求将POST请求发送到服务器。或服务器端的cURL。

答案 4 :(得分:0)

如果你想从浏览器发帖并使它看起来像一个链接,你需要一些JavaScript:

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

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

答案 5 :(得分:0)

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

答案 6 :(得分:0)

一种方法是使用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函数。