我试图通过URL传递变量,使用header函数作为重定向页面的方式。但是当页面被重定向时,它传递的是实际的变量名,而不是与变量关联的值。我是PHP的新手,不完全理解语法,所以任何进一步的解释,以正确的方式做到这一点将是非常感激的。
header('location: index.php?id=".$_POST[ac_id]."&err=".$login."');
你想:
header("Location: index.php?id=".$_POST['ac_id']."&err=".$login);
你在这个字符串中组合了'
和"
,这就是为什么它不能正确插入变量的原因。在上面的例子中,您严格使用"
打开字符串,并将变量与字符串连接。
你的引号中有引号。试试这个:
header('location: index.php?id=' . urlencode($_POST['ac_id']) . '&err=' . urlencode($login));
urlencode()函数负责url中的所有保留字符。
我要做的是使用http_build_query()
,如果你认为你将有一个或两个以上的URL变量。
header('Location: index.php?' . http_build_query(array(
'id' => $_POST['ac_id'],
'err' => $login
)));
另外,从技术上讲,你不能在location头中使用相对路径。虽然它可以在大多数浏览器上工作,但根据rfc,它是无效的。您应该包含完整的URL。
尝试SESSION存储。页头用于重定向页面。如果你真的想传递值只有通过头,你才会生成url。头(地点:destination.php ?value1 = 1, value2 = 3 ');但这对var来说不是一个好的实践。只需将值存储在SESSION全局变量中。B4 header()重定向调用。@接收页你必须测试,如果会话值isset() n !empty()然后…否则…
在我的情况下,很多时候header()不能正常工作。代替头函数,我使用window.location.href。你可以这样试试,
echo "<script>
window.location.href='index.php?id=".$_POST[ac_id]."&err=".$login';
</script>";
header('location: index.php?id='.$_POST['ac_id'].'&err='.$login);
试试这个:
header("location: index.php?id=$_POST[ac_id]&err=$login");
PHP变量在双引号字符串中展开