使用PHP和会话登录页面
我已经为用户创建了一个数据库和一个带有用户名和密码的表。我想用简单的使用PHP和会话登录页面,php,html,mysql,session,login,Php,Html,Mysql,Session,Login,我已经为用户创建了一个数据库和一个带有用户名和密码的表。我想用简单的HTML和PHP创建一个登录页面,但是我找不到任何解决PHP代码问题的方法。所以有一个登录页面(index.HTML)和Chklogin.PHP和一个login\u success.PHP. 当我在用户表中输入用户名和密码时,它不会显示登录成功页面 以下是我的Chklogin.php代码: <?php $host="localhost"; // Host name $username="root"; // usernam
HTML
和PHP
创建一个登录页面,但是我找不到任何解决PHP代码问题的方法。所以有一个登录页面(index.HTML)
和Chklogin.PHP
和一个login\u success.PHP.
当我在用户表中输入用户名和密码时,它不会显示登录成功页面
以下是我的Chklogin.php代码:
<?php
$host="localhost"; // Host name
$username="root"; // username
$password="root"; // password
$db_name="TA"; // Database name
$tbl_name="user"; // Table name
mysql_connect("$host", "$username", "$password");
mysql_select_db("$db_name");
$myusername=mysql_real_escape_string($_POST['username']);
$mypassword=mysql_real_escape_string($_POST['password']);
$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'";
$result=mysql_query($sql);
$count=mysql_num_rows($result);
if($count==1){
// Register $myusername, $mypassword and redirect to file "login_success.php"
session_start();
$_SESSION['username'] = $myusername;
$_SESSION['password'] = $mypassword;
header("location: login_success.php");
}
else {
echo "Wrong Username or Password";
}
?>
以及登录_success.php的代码:
<?php
session_start();
if(!$_SESSION['username']){
header("Location: index.html");
exit;
}
echo 'Welcome, '.$_SESSION['username'];
header("Location: student-page.html");
?>
和用户名!=''用户名不为空,SQL语句限制为1
。否则,在某些情况下,可能会有人在没有正确凭据的情况下登录session\u start()
和header()
需要放在所有echo
、打印
等输出之前(还有空格)。为什么?会话通常以浏览器的cookie开始,cookie在标题中发送。收割台需要在实际有效负载之前移动退出
在头()之后(
)-并非所有客户端都遵循头信息,在某些情况下,您的脚本可能会继续导致奇怪的效果错误报告(E_ALL)代码>和ini\u集('display\u errors',true)代码>最重要的
和用户名!=''用户名不为空,SQL语句限制为1
。否则,在某些情况下,可能会有人在没有正确凭据的情况下登录session\u start()
和header()
需要放在所有echo
、打印
等输出之前(还有空格)。为什么?会话通常以浏览器的cookie开始,cookie在标题中发送。收割台需要在实际有效负载之前移动退出
在头()之后(
)-并非所有客户端都遵循头信息,在某些情况下,您的脚本可能会继续导致奇怪的效果错误报告(E_ALL)代码>和ini\u集('display\u errors',true)代码>最重要的
你需要检查的东西
1.
$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'";
echo $sql; // Because you have to be sure the query is correct
2.
$count=mysql_num_rows($result);
echo $count; // Because the number can be > 1
or add LIMIT 1 to the query
3.
if($count==1){
echo 'ok'; // to see if everything is okay
}
4. If all 3 of the above are True then check the path to this file
header("location: login_success.php");
你需要检查的东西
1.
$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'";
echo $sql; // Because you have to be sure the query is correct
2.
$count=mysql_num_rows($result);
echo $count; // Because the number can be > 1
or add LIMIT 1 to the query
3.
if($count==1){
echo 'ok'; // to see if everything is okay
}
4. If all 3 of the above are True then check the path to this file
header("location: login_success.php");
您正在数据库中存储纯文本。请不要使用
mysql.*
函数。他们现在被弃用了!!取而代之的是,请使用或,数据放在数据库中的位置,数据库结构是什么,其中包含什么数据在文件开头启动会话,并且标题中的位置应以大写字母开头,我认为它区分大小写(未测试)@RoyalBg不区分大小写。您是否在数据库中存储纯文本。请不要使用mysql.*
函数。他们现在被弃用了!!取而代之的是,请使用或,数据放在数据库中的位置,数据库结构是什么,其中包含什么数据在文件开头启动会话,并且标题中的位置应以大写字母开头,我认为它区分大小写(未测试)@RoyalBg不区分大小写。我尝试添加echo函数,但登录时,它显示一个空页面。它没有显示“错误的用户名或密码”或NULL。我尝试添加了echo函数,但在登录时,它显示了一个空页面。它不会显示“错误的用户名或密码”或NULL。