if(isset($_POST['submit'])){
$uname=$_POST['username'];
$pwd=$_POST['password'];
$acc_type=$_POST['acc_type'];
$_SESSION['user_type']=$acc_type;
if($acc_type=='Teacher'){
$sql="select userid,password from teacherinfo where userid='$uname'";
}
else if($acc_type=='Student'){
$sql="select userid,password from studentinfo where userid='$uname'";
}
else if($acc_type=='Admin'){
$sql="select userid,password from admininfo where userid='$uname'";
}
$query = mysql_query($sql);
$count = mysql_num_rows($query);
if($count>0){
$row_data = mysql_fetch_row($query);
if($row_data[1]==$pwd){
$_SESSION['userid']=$row_data[0];
$url="profile.php";
header("Location:$url");
}
else{
echo "Password Miss match!";
}
}
else{
echo "User not Found!";
}
}
注意:未定义的变量:第39行的C:\ xampp \ htdocs \ MJ \ index.php中的sql警告:mysql_num_rows()要求参数1为资源,在C:\ xampp \ htdocs \ MJ \ index中给出布尔值第40行的.php
答案 0 :(得分:2)
查看PHP网站上的代码,您不会将sql语句链接到您对数据库的连接。查看下面的代码,您将看到一个名为$link
的变量,然后提供要使用的数据库,然后作为sql语句变量$result
中的第二个变量放入。
<?php
$link = mysql_connect("localhost", "mysql_user", "mysql_password");
mysql_select_db("database", $link);
$result = mysql_query("SELECT * FROM table1", $link);
$num_rows = mysql_num_rows($result);
echo "$num_rows Rows\n";
?>
作为评论状态,您确实需要停止使用mysql并转移到PDO,此站点应该为您提供足够的信息以启动并将语句保护到数据库 - https://code.tutsplus.com/tutorials/why-you-should-be-using-phps-pdo-for-database-access--net-12059 < / p>
除此之外,您还需要查看哈希密码,目前您使用的是纯文本,这不安全。使用诸如password_hash()
- http://php.net/manual/en/function.password-hash.php之类的东西 - 将提供一种更安全的密码存储方式。一旦存储起来,您可以使用password_verify()
在将来检查提供的密码。