【问题标题】:PHP Redirect based on form selections issue基于表单选择问题的PHP重定向
【发布时间】:2012-03-01 02:05:24
【问题描述】:

我设置了一个表单,允许用户从下拉列表中进行选择,单击提交按钮将根据他们的选择将他们重定向到适当的页面。这是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 页面,而不是我手动设置并选择了下拉菜单选项的重定向?

感谢您的建议

【问题讨论】:

  • 请澄清你的最后一段。
  • 您想在哪里写“嗨,_。有什么可以帮助您的吗?”?在您将用户重定向到的页面上?还是别的地方?你没有指定这个..另外,请澄清你的最后一段。

标签: php forms redirect


【解决方案1】:

如果您希望将用户名存储在第一页以外的页面或处理表单值的同一页面(即获取重定向的脚本)上,您希望将该信息存储在数据库中,或者在会话中更简单。

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

session_start();

然后,像这样创建一个会话变量(每个用户/浏览器唯一):

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

现在,在您希望检索其姓名的页面上(IE Hi),只需这样做:

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

【讨论】:

  • 谢谢!!这正是我所需要的!
  • 我看到 $_SESSION['user_name'] 按用户名保存会话的位置。您还提到这也可以由浏览器执行。通过浏览器执行此操作对我来说是最佳选择。我需要用什么代替“user_name”来通过浏览器创建会话变量?再次感谢所有帮助。
  • 忽略以上评论。我想到了。再次感谢大家!!我是新手,但对这个项目感到非常兴奋。
【解决方案2】:

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

action=""

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

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

【讨论】:

    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-25
      • 2020-06-28
      • 1970-01-01
      • 2011-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多