PHP中的会话无法正常工作。为什么?
我对登录过程验证码:PHP中的会话无法正常工作。为什么?
<div id="login">
<form action="ButtonClicker.php">
<label for="user">User</label>
<input type="text" id="user" name="user" tabindex="1" autofocus>
<label for="password">Password</label>
<input type="password" id="password" name="password" tabindex="2">
<input type="submit" value="sing in">
</form>
</div>
<br>
<?php
if(isset($submit)) {
$_SESSION["user"] = $_GET["user"];
$_SESSION["password" = $_GET["password"];
}
?>
和下一页的我有这样的:
<?php
echo $_SESSION["user"];
?>
在这两个页面我之前整个代码:
<?php
session_start();
?>
当我登录,所以下一页写:
注意:未知变量:_session
有人可以告诉,怎么了?
会话没有因为如果条件正在检查的变量提交的,而不是$_GET['submit']
,你也没有指定的名称提交按钮
<input type="submit" name="submit" value="sign in">
<?php
if(isset($_GET['submit'])) {
$_SESSION["user"] = $_GET["user"];
$_SESSION["password"] = $_GET["password"];
}
?>
保存未定义的变量的
错误是由于$_SESSION['user'] & ['password ']
没有设置,因为$submit
为NULL的变量,你也错过了关闭方括号中password
这可能是因为你忘了在你的php文件中开始会话。 尝试添加
session_start();
功能在每一页上。然后只有PHP将能够存储您的会话变量。
他没有提到他在问题中的含义该功能在顶部的两个页面上? –
您需要调用session_start()
函数,并将所有会话变量值存储在全局变量$_SESSION
中。
他没有提到他在这两个页面上都有这个功能的问题吗? –
你需要用表格的方法来传递输入值。 更改您这样的代码:
<div id="login">
<form method="post">
<label for="user">User</label>
<input type="text" id="user" name="user" tabindex="1" autofocus>
<label for="password">Password</label>
<input type="password" id="password" name="password" tabindex="2">
<input type="submit" name="submit" value="sign in">
</form>
</div>
<br>
<?php
if(isset($_POST["submit"])) {
$_SESSION["user"] = $_POST["user"];
$_SESSION["password"] = $_POST["password"];
}
?>
不需要使用POST因为默认方法是GET,'他为什么没有指定它,但你的想法是好的 –
你有没有在所有的PHP文件session_start()? –
我认为你应该使用大写字母作为像$ _SESSION ['user'],$ _GET ['user']这样的超级全局变量,并且确保你是否开始会话 –