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']
之后使用分号
我目前正在尝试创建一个 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']
之后使用分号