为什么这个会话表单不起作用?
Why isn't this session form working?
我设置了这个将 $_POST 数据转换为 $_SESSION 数据的登录表单。然后我使用这些数据来确定用户是否应该登录,但是它不起作用。我做错了什么?
*** 我检查了浏览器的 cookie,它存储了会话令牌(如果有帮助的话)
login.php:
<?php session_start(); ?>
<form action="page.php" method="post">
Username: <input type="text" name="username" value="" /><br />
Password: <input type="password" name="password" value="" /><br />
<br />
<input type="submit" name="submit" value="Submit" />
<?php
if (isset($_POST['submit'])) {
$username = $_POST['username'];
$password = $_POST['password'];
$submit = $_POST['submit'];
$_SESSION['username'] = $username;
$_SESSION['password'] = $password;
$_SESSION['submit'] = $submit;
}
?>
</form>
page.php:
<?php session_start(); ?>
<?php
$username = isset($_SESSION["username"]) ? $_SESSION["username"] : "";
$password = isset($_SESSION["password"]) ? $_SESSION["password"] : "";
$submit = isset($_SESSION["submit"]) ? $_SESSION["submit"] : "";
if(($username == "username") && ($password == "password") && ($submit == "Submit")) {
echo "You are logged in";
} else {
echo "Denied access";
}
?>
我在包含 session_start();
的页面上收到此错误
根据this post,这是一个由Chrome引起的错误,是一个误导性的错误报告,不会影响任何东西。
在页面顶部添加 session_start();
并修复操作。
<?php session_start();?>
<form action="" method="post">
Username: <input type="text" name="username" value="" /><br />
Password: <input type="password" name="password" value="" /><br />
<br />
<input type="submit" name="submit" value="Submit" />
<?php
if (isset($_POST['submit'])) {
$username = $_POST['username'];
$password = $_POST['password'];
$submit = $_POST['submit'];
$_SESSION['username'] = $username;
$_SESSION['password'] = $password;
$_SESSION['submit'] = $submit;
header('page.php');
}
?>
</form>
和
<?php
session_start();
$username = isset($_SESSION["username"]) ? $_SESSION["username"] : "";
$password = isset($_SESSION["password"]) ? $_SESSION["password"] : "";
$submit = isset($_SESSION["submit"]) ? $_SESSION["submit"] : "";
if(($username == "username") && ($password == "password") && ($submit == "Submit")) {
echo "You are logged in";
} else {
echo "Denied access";
}
?>
<form action="page.php" method="post">
Username: <input type="text" name="username" value="" /><br />
Password: <input type="password" name="password" value="" /><br />
<br />
<input type="submit" name="submit" value="Submit" />
</form>
page.php
<?php
session_start();
if (isset($_POST['submit'])) {
$username = $_POST['username'];
$password = $_POST['password'];
$submit = $_POST['submit'];
$_SESSION['username'] = $username;
$_SESSION['password'] = $password;
$_SESSION['submit'] = $submit;
}
$username = isset($_SESSION["username"]) ? $_SESSION["username"] : "";
$password = isset($_SESSION["password"]) ? $_SESSION["password"] : "";
$submit = isset($_SESSION["submit"]) ? $_SESSION["submit"] : "";
if(($username == "username") && ($password == "password") && ($submit == "Submit")) {
echo "You are logged in";
} else {
echo "Denied access";
}
?>
首先,您需要使用 session_start()
格式 page.Also 启动 session 您需要使用 header 将 session 发送到 login.php。使用下面的代码
<?php session_start();?>
<form action="" method="post">
Username: <input type="text" name="username" value="" /><br />
Password: <input type="password" name="password" value="" /><br />
<br />
<input type="submit" name="submit" value="Submit" />
<?php
if (isset($_POST['submit'])) {
$username = $_POST['username'];
$password = $_POST['password'];
$submit = $_POST['submit'];
$_SESSION['username'] = $username;
$_SESSION['password'] = $password;
$_SESSION['submit'] = $submit;
header('page.php');
}
?>
</form>
希望对您有所帮助
您的表单将 post 发送到 page.php。因此,您需要将会话条件移动到 page.php。
或者,您可以将表单发送给自己,然后再重定向:
<?php session_start();?>
<form action="" method="post">
Username: <input type="text" name="username" value="" /><br />
Password: <input type="password" name="password" value="" /><br />
<br />
<input type="submit" name="submit" value="Submit" />
<?php
if (isset($_POST['submit'])) {
$username = $_POST['username'];
$password = $_POST['password'];
$submit = $_POST['submit'];
$_SESSION['username'] = $username;
$_SESSION['password'] = $password;
$_SESSION['submit'] = $submit;
header('page.php');
}
$username = isset($_SESSION["username"]) ? $_SESSION["username"] : "";
$password = isset($_SESSION["password"]) ? $_SESSION["password"] : "";
$submit = isset($_SESSION["submit"]) ? $_SESSION["submit"] : "";
if(($username == "username") && ($password == "password")) {
echo "You are logged in";
} else {
echo "Denied access";
}
?>
</form>
当您在表单 submit
上向另一个页面 page.php
执行操作时。那么,为什么您在同一页面上获取表单数据?
请试试这个它会起作用:
HTML 形式:
<form action=page.php method="post">
Username: <input type="text" name="username" value="" /><br />
Password: <input type="password" name="password" value="" /><br />
<br />
<input type="submit" name="submit" value="Submit" />
</form>
page.php :
<?php
session_start();
if (isset($_POST['submit'])) {
$username = $_POST['username'];
$password = $_POST['password'];
$submit = $_POST['submit'];
$_SESSION['username'] = $username;
$_SESSION['password'] = $password;
$_SESSION['submit'] = $submit;
}
$username = isset($_SESSION["username"]) ? $_SESSION["username"] : "";
$password = isset($_SESSION["password"]) ? $_SESSION["password"] : "";
$submit = isset($_SESSION["submit"]) ? $_SESSION["submit"] : "";
if(($username == "username") && ($password == "password") && ($submit == "Submit")) {
echo "You are logged in";
} else {
echo "Denied access";
}
?>
我设置了这个将 $_POST 数据转换为 $_SESSION 数据的登录表单。然后我使用这些数据来确定用户是否应该登录,但是它不起作用。我做错了什么?
*** 我检查了浏览器的 cookie,它存储了会话令牌(如果有帮助的话)
login.php:
<?php session_start(); ?>
<form action="page.php" method="post">
Username: <input type="text" name="username" value="" /><br />
Password: <input type="password" name="password" value="" /><br />
<br />
<input type="submit" name="submit" value="Submit" />
<?php
if (isset($_POST['submit'])) {
$username = $_POST['username'];
$password = $_POST['password'];
$submit = $_POST['submit'];
$_SESSION['username'] = $username;
$_SESSION['password'] = $password;
$_SESSION['submit'] = $submit;
}
?>
</form>
page.php:
<?php session_start(); ?>
<?php
$username = isset($_SESSION["username"]) ? $_SESSION["username"] : "";
$password = isset($_SESSION["password"]) ? $_SESSION["password"] : "";
$submit = isset($_SESSION["submit"]) ? $_SESSION["submit"] : "";
if(($username == "username") && ($password == "password") && ($submit == "Submit")) {
echo "You are logged in";
} else {
echo "Denied access";
}
?>
我在包含 session_start();
的页面上收到此错误根据this post,这是一个由Chrome引起的错误,是一个误导性的错误报告,不会影响任何东西。
在页面顶部添加 session_start();
并修复操作。
<?php session_start();?>
<form action="" method="post">
Username: <input type="text" name="username" value="" /><br />
Password: <input type="password" name="password" value="" /><br />
<br />
<input type="submit" name="submit" value="Submit" />
<?php
if (isset($_POST['submit'])) {
$username = $_POST['username'];
$password = $_POST['password'];
$submit = $_POST['submit'];
$_SESSION['username'] = $username;
$_SESSION['password'] = $password;
$_SESSION['submit'] = $submit;
header('page.php');
}
?>
</form>
和
<?php
session_start();
$username = isset($_SESSION["username"]) ? $_SESSION["username"] : "";
$password = isset($_SESSION["password"]) ? $_SESSION["password"] : "";
$submit = isset($_SESSION["submit"]) ? $_SESSION["submit"] : "";
if(($username == "username") && ($password == "password") && ($submit == "Submit")) {
echo "You are logged in";
} else {
echo "Denied access";
}
?>
<form action="page.php" method="post">
Username: <input type="text" name="username" value="" /><br />
Password: <input type="password" name="password" value="" /><br />
<br />
<input type="submit" name="submit" value="Submit" />
</form>
page.php
<?php
session_start();
if (isset($_POST['submit'])) {
$username = $_POST['username'];
$password = $_POST['password'];
$submit = $_POST['submit'];
$_SESSION['username'] = $username;
$_SESSION['password'] = $password;
$_SESSION['submit'] = $submit;
}
$username = isset($_SESSION["username"]) ? $_SESSION["username"] : "";
$password = isset($_SESSION["password"]) ? $_SESSION["password"] : "";
$submit = isset($_SESSION["submit"]) ? $_SESSION["submit"] : "";
if(($username == "username") && ($password == "password") && ($submit == "Submit")) {
echo "You are logged in";
} else {
echo "Denied access";
}
?>
首先,您需要使用 session_start()
格式 page.Also 启动 session 您需要使用 header 将 session 发送到 login.php。使用下面的代码
<?php session_start();?>
<form action="" method="post">
Username: <input type="text" name="username" value="" /><br />
Password: <input type="password" name="password" value="" /><br />
<br />
<input type="submit" name="submit" value="Submit" />
<?php
if (isset($_POST['submit'])) {
$username = $_POST['username'];
$password = $_POST['password'];
$submit = $_POST['submit'];
$_SESSION['username'] = $username;
$_SESSION['password'] = $password;
$_SESSION['submit'] = $submit;
header('page.php');
}
?>
</form>
希望对您有所帮助
您的表单将 post 发送到 page.php。因此,您需要将会话条件移动到 page.php。
或者,您可以将表单发送给自己,然后再重定向:
<?php session_start();?>
<form action="" method="post">
Username: <input type="text" name="username" value="" /><br />
Password: <input type="password" name="password" value="" /><br />
<br />
<input type="submit" name="submit" value="Submit" />
<?php
if (isset($_POST['submit'])) {
$username = $_POST['username'];
$password = $_POST['password'];
$submit = $_POST['submit'];
$_SESSION['username'] = $username;
$_SESSION['password'] = $password;
$_SESSION['submit'] = $submit;
header('page.php');
}
$username = isset($_SESSION["username"]) ? $_SESSION["username"] : "";
$password = isset($_SESSION["password"]) ? $_SESSION["password"] : "";
$submit = isset($_SESSION["submit"]) ? $_SESSION["submit"] : "";
if(($username == "username") && ($password == "password")) {
echo "You are logged in";
} else {
echo "Denied access";
}
?>
</form>
当您在表单 submit
上向另一个页面 page.php
执行操作时。那么,为什么您在同一页面上获取表单数据?
请试试这个它会起作用:
HTML 形式:
<form action=page.php method="post">
Username: <input type="text" name="username" value="" /><br />
Password: <input type="password" name="password" value="" /><br />
<br />
<input type="submit" name="submit" value="Submit" />
</form>
page.php :
<?php
session_start();
if (isset($_POST['submit'])) {
$username = $_POST['username'];
$password = $_POST['password'];
$submit = $_POST['submit'];
$_SESSION['username'] = $username;
$_SESSION['password'] = $password;
$_SESSION['submit'] = $submit;
}
$username = isset($_SESSION["username"]) ? $_SESSION["username"] : "";
$password = isset($_SESSION["password"]) ? $_SESSION["password"] : "";
$submit = isset($_SESSION["submit"]) ? $_SESSION["submit"] : "";
if(($username == "username") && ($password == "password") && ($submit == "Submit")) {
echo "You are logged in";
} else {
echo "Denied access";
}
?>