在没有Javascript的post方法中使用变量重定向到url

时间:2012-06-27 14:20:32

标签: php html

如果条件满足,我想将我的页面重定向到另一个页面 说, samplepage1.php

$id = $_POST['id'];
$name=$_POST['name'];
if($max>$count){
//action on the same page
}
else{
//redirect to URL:index.php/samplepage2.php with the values $id & $name in POST METHOD
}

我需要一个解决方案,以便必须将值发布到' samplepage2.php'通过帖子,但严格不使用javascript实现自动提交(我不喜欢javascript的帮助,好像用户可以在浏览器中关闭它)

3 个答案:

答案 0 :(得分:3)

@nickb的评论是正确的。如果您的表单或其他任何内容处理javascript并且会对您的页面能够做什么和不能做什么产生影响,那么试图找出如何容纳$ _POST就毫无意义。

但是,处理此问题的一种方法是将$ _POST切换为该页面的$ _SESSION。

类似于:

$_SESSION['form1'] = $_POST;

当你到达下一页(确保你在每个页面的开头都有session_start())时,如果你真的想要,可以将其切换回来。一旦你完成它,不要忘记unset($_SESSION['form1'])

答案 1 :(得分:1)

试试这个:

$id = $_POST['id'];
$name=$_POST['name'];
if($max>$count){
//action on the same page
}
else{
$url = 'http://yourdomain.com/samplepage2.php';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, 'id='.$id);
curl_exec($ch);
curl_close($ch);$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, 'name='.$name);
curl_exec($ch);
curl_close($ch); 
}

答案 2 :(得分:1)

如果您的服务器上启用curl,则可以使用curl将POST数据发送到其他表单,

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "index.php/samplepage2.php");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, true);

$data = array(
    'id' => 'value of id',
    'name' => 'value of name'
);

curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$output = curl_exec($ch);
$info = curl_getinfo($ch);
curl_close($ch);