PHP 解析错误 - 创建 PHP 脚本来验证用户并通过

PHP Parse Error - Creating a PHP script to verify user and pass

我目前正在尝试创建一个 php 文件,该文件可以验证用户对用户的输入并通过 sql 数据库并返回给用户的响应...通过网站.但我不断收到此错误:

解析错误:语法错误,第 24 行 /srv/disk7/1855095/www/hmfs.dx.am/index.php 中的意外“$row”(T_VARIABLE)

<?php
define('DB_HOST', 'localhost');
define('DB_HOST', 'practice');
define('DB_HOST', 'root');
define('DB_PASSWORD','');

$con=mysql_connect(DB_HOST,DB_USER,DB_PASSWORD) or die("Failed to connect to MySQL: " . mysql_error()); 
$db=mysql_select_db(DB_NAME,$con) or die("Failed to connect to MySQL: " . mysql_error());
 /* 
 $ID = $_POST['user']; 
 $Password = $_POST['pass']; 
 */ 
 function SignIn() 
 {
 session_start(); //starting the session for user profile page 
 if(!empty($_POST['user'])) 
 //checking the 'user' name which is from Sign-In.html, is it empty or have some text 
{
        $query = mysql_query("SELECT * FROM UserName 
where userName = '$_POST[user]' AND pass = '$_POST[pass]'") or die(mysql_error()); 
    $row = mysql_fetch_array($query)  
    if(!empty($row['userName']) AND !empty($row['pass'])) 
    {
        $_SESSION['userName'] $row['pass'];
        echo "SUCESSFULLY OGIN TO USER PROFILE PAGE...";


    }
    else
    }
        echo "SORRY...YOU ENTERED THE WRONG ID AND PASSWORD...PLEASE RETRY...";
    }
}
}
if(isset($_POST['submit']))
{
SignIn();
}

?>

有什么帮助吗? :(

您的错误消息说要查看第 24 行,您会在其中找到:

$_SESSION['userName'] $row['pass'];

这不是一个有效的陈述。应该是

$_SESSION['userName'] = $row['pass'];

尽管我不会在会话中存储密码(会话数据可能存储在共享的临时目录中)。

另请注意,您的代码极易受到 SQL 注入攻击。阅读准备好的语句,不要使用自 2013 年以来不推荐使用的 mysql_。请改用 mysqli_PDO

此外,对于真实世界的代码,您应该 hash your passwords 存储它们。

改变

$_SESSION['userName'] $row['pass'];

$_SESSION['userName'] = $row['pass'];

这里有一些提示

  • 1)不要使用mysql。它已被弃用并且非常脆弱。请改用 Mysqli 或 PDO。
  • 2) 切勿在查询本身中检查密码。因为在您的代码中,如果我输入您的用户名和 ' OR 1=1 作为我的密码,我将登录您的帐户。 Select 通过用户名然后通过 PHP
  • 检查密码
  • 3) 你的错误是因为缺少一个;在 $row = mysql_fetch_array($query) 的末尾或者因为 $_SESSION['userName'] 和 $row['pass'];
  • 之间缺少 =

很简单 你忘了在 $_SESSION['userName']

之后使用分号