基于表单选择问题的PHP重定向

时间:2012-03-01 02:05:25

标签: php forms redirect

我已经设置了一个表单,允许用户从下拉列表中进行选择,单击提交按钮会根据他们的选择将它们重定向到相应的页面。这是PHP:

<?PHP
function redirect($where){ 
header("Location: $where");
}
if ($_REQUEST['os1'] == 'xp' && $_REQUEST['browser'] == 'ffx'){
redirect('http://mysite.com/index.php/prodemo/prodemo-categories/73-prodemo-xp-        firefox');
}elseif($_REQUEST['os1'] == 'xp' && $_REQUEST['browser'] == 'ie8'){
redirect('http://mysite.com/index.php/prodemo/prodemo-categories/72-prodemo-xp-ie');
}elseif($_REQUEST['os1'] == 'win7' && $_REQUEST['browser'] == 'ie8'){
redirect('http://mysite.com/index.php/prodemo/prodemo-categories/74-prodemo-win7-ie');
}elseif($_REQUEST['os1'] == 'win7' && $_REQUEST['browser'] == 'ffx'){
redirect('http://mysite.com/index.php/prodemo/prodemo-categories/75-prodemo-win7-  firefox');

}
?>

我手动告诉查询将用户带到哪里。

我的困境是我想要一条简单的线条说: “嗨, _ 。我怎么能帮到你?”

空白将填写在表单上输入的名称作为来电者的姓名。 以下是表单的示例:

<form action="" method="post" name="form1">
Caller's Name: <input type="text" name="callersname" /><br />
<select name="os1">     <option selected="selected" value="xp">XP</option> 
<option value="win7">Win7</option>    </select> <br />
<select name="browser"> <option selected="selected"    value="ie8">IE8</option> 
<option value="ffx">Firefox</option></select> <br />
<input   type="submit" value="Next" />

我是PHP的新手。如果我创建一个PHP页面来发布调用者的名字,那么如何避免页面重定向到该php页面而不是我已经选择了下拉菜单选项手动设置的重定向?

感谢任何建议

3 个答案:

答案 0 :(得分:2)

如果要将用户的名称存储在第一页以外的页面或处理表单值的同一页面(IE是要获取重定向的脚本),您要存储该信息可以在数据库中进行,也可以更简单地在会话中进行。

首先,在需要从中提取信息的每个页面上初始化会话:

session_start();

然后,创建一个会话变量(每个用户/浏览器都是唯一的),如下所示:

$_SESSION['user_name'] = $_REQUEST['callersname'];

现在,在页面上你想要检索他们的名字(IE Hi),就像这样:

echo "Hi {$_SESSION['callersname']} welcome to mcdonalds how may I help you?";

答案 1 :(得分:0)

在HTML中,表单将提交给表单标记的action属性值中给出的url。在上面的示例中,您有:

action=""

这告诉浏览器将表单提交到当前页面。

听起来你正试图在同一步骤中做两件有些无关的事情。您是否正在尝试获取呼叫者的姓名或让他们选择要访问的网址?如果你想同时做两件事,你可能会更好的方法是只接受os1和浏览器值作为POST变量,并根据这些变量的值动态更改页面,而不是将用户重定向到完全独立的页面。

答案 2 :(得分:0)

尝试使用$_POST代替$_REQUEST ...这可能是问题所在,添加action="yourpage.php"告诉代码将表单发送到当前页面或其他页面。 ..