使用curl发布数据 - 实际上刷新到下一页

时间:2012-04-03 19:07:55

标签: php post curl

我正在尝试使用Post在页面之间发送帖子数据。不是表格 - 就像我可能在页面之间传递验证错误(在几个地方使用它)。

cURL正在执行,但它只是在底部的新页面上进行处理。如何执行cURL Post并加载以下页面?

所以我的目标是在页面之间发送数据。我不想使用GET或cookie,因为我不想依赖用户,我宁愿不使用$ _SESSION,因为它不是直接关于会话在页面之间发送私有数据。

由于

$ch = curl_init($some_url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, 'myvar=something');
curl_exec($ch);
curl_close($ch);

我怀疑代码是否有任何相关性,因为它是关于执行任务而不是代码语法(在这个例子中可能有一个,但你必须相信我,因为它检索正常而不是代码有问题)。

3 个答案:

答案 0 :(得分:0)

你为什么使用cURL?为什么不使用AJAX

$(function() {

   // Send data asynchronously
   $.ajax({
      url: '/path/to/your/script.php',
      type: 'POST',
      data: 'var1=value1&var2'=$('input.some_class').val(),
      success: function(data) {
         // Send the user to another page
         window.location.href = '/to/infinity/and/beyond';
      }
   });

});

答案 1 :(得分:0)

您可以将$_SESSION超全局分成数组,这些数组描述当前用户/会话以及表单创建的任何错误。例如,

$_SESSION = array(
  'user' => array(), // user data goes here
  'errors' => array() // validation data goes here
);

if (!$_POST['myvar'] == 'something') {
  $_SESSION['errors']['myvar'] = 'You must specify a value for <code>myvar</code>';
}

然后,您可以使用以下调用在后续页面上输出错误:

if (isset($_SESSION['errors'])) {
  foreach($_SESSION['errors'] as $error) {
    echo '<li>' . $error . '</li>';
  }
}

答案 2 :(得分:0)

使用ajax for exec

$(function() {

   /
      data: 'var1=value1&/ Send data asynchronously
   $.ajax({
      url: '/path/to/your/script.php',
      type: 'POST',var2'=$('input.some_class').val(),
      success: function(data) {
         // Send the user to another page
         window.location.href = '/to/infinity/and/beyond';
      }
   });

});