解析错误:语法错误,第19行Z:\ home \ ser.ser \ www \ sign_up.php中的意外T_VARIABLE
我也遇到$q = mysql_query("SELECT * FROM users WHERE (login="$login")");
请帮助。
<?php
include 'mysql_connect.php';
$login = $_POST['login'];
$password = $_POST['password'];
$b_arr['b_dd'] = $_POST['B_DD'];
$b_arr['b_mm'] = $_POST['B_MM'];
$b_arr['b_yy'] = $_POST['B_YY'];
$b_date = $b_arr['b_yy'].$$b_arr['b_mm'].$b_arr['b_dd'];
if (!isUserExist($login)) {
reg($login, $password, $b_date);
} else {
echo 'This user is exist !';
}
function reg($login, $password, $b_date) {
// NEXT LINE ERROR
$query = mysql_query("INSERT INTO users VALUES ("$login", "$password", "$b_date")");
// END ERROR
}
function isUserExist($login) {
$q = mysql_query("SELECT * FROM users WHERE (login="$login")");
$result = mysql_fetch_array($q);
if ($result) {
return true;
}
}
?>
答案 0 :(得分:0)
连接中有错误。 请看这里:https://www.diffnow.com/?report=jgv1m
<?php
include 'mysql_connect.php';
$login = $_POST['login'];
$password = $_POST['password'];
$b_arr['b_dd'] = $_POST['B_DD'];
$b_arr['b_mm'] = $_POST['B_MM'];
$b_arr['b_yy'] = $_POST['B_YY'];
$b_date = $b_arr['b_yy'].$$b_arr['b_mm'].$b_arr['b_dd'];
if (!isUserExist($login)) {
reg($login, $password, $b_date);
} else {
echo 'This user is exist !';
}
function reg($login, $password, $b_date) {
// NEXT LINE ERROR
$query = mysql_query("INSERT INTO users VALUES ('".$login."', '".$password."', '".$b_date."')");
// END ERROR
}
function isUserExist($login) {
$q = mysql_query("SELECT * FROM users WHERE (login='".$login."')");
$result = mysql_fetch_array($q);
if ($result) {
return true;
}
}
?>
答案 1 :(得分:0)
警告:此代码很危险。请阅读SQL Injection以及为什么您的代码存在问题。简而言之,任何放入数据库的内容都必须进行清理。
现在,更多问题:
您没有正确处理字符串。如果您希望使用这种危险的查询方法,则需要将值连接成一个字符串。要将变量添加到字符串,请使用.
运算符。因此,要修复此行,您需要使用以下内容:
$qry_str = "INSERT INTO users VALUES ('" . $login . "', '" . $password . "', '" . $b_date . "')";
$query = mysql_query($qry_str);
注意:我将其分成两行以提高可读性,而isUserExist()
函数也有同样的问题。