我正在尝试将参数传递给php函数。 但是没有发生任何事情,我的意思是代码没有将index.php中的参数传递给newPHPClass.php 是否可以在表单动作中调用函数? 这是我的代码。
的index.php
<?php include '../con_db/connect.php'; ?>
<?php include '../class/newPHPClass.php'; ?>
<form action="index.php" method="post">
<label>Username:</label><input type="text" name="username"/><br/>
<label>Password:</label><input type="text" name="password"/><br/>
<input type="submit" value="Submit" name="submit"/>
</form>
<?php
if (isset($_POST['submit'])) {
$username = $_POST['username'];
$password = $_POST['password'];
$check = new newPHPClass();
$check->checkLogin($username, $password);
}
?>
和班级
include '../con_db/connect.php';
class newPHPClass {
public function checkLogin($username, $password) {
$select = mysql_query('SELECT * FROM users WHERE username = "' . $username . '" AND password = "' . $password . '"');
if (count($select) > 0) {
echo "true";
return true;
} else {
echo "false";
return false;
}
}
答案 0 :(得分:1)
您的INSERT
语法错误,
$select = mysql_query("INSERT FROM users (username, password)
VALUES ('$username', '$password')");
您当前的查询容易被SQL Injection
攻击,请花点时间阅读以下文章,
Best way to prevent SQL injection in PHP?
更新1
$sql = "SELECT COUNT(*) totalCount
FROM users
WHERE username = '$username' AND password = '$password'");
$result = mysql_query($sql, $link) or die(mysql_error());
$row = mysql_fetch_assoc($result);
if($row["totalCount"] > 0)
{
echo "true";
return true;
}
else
{
echo "false";
return false;
}
答案 1 :(得分:0)
类中的语法完全搞砸了。首先,为什么要调用INSERT来检查登录。其次它是INSERT INTO,即使它是你需要的INSERT,它不是。
$select = mysql_query("SELECT * FROM users WHERE username = '$username' AND password = '$password'");
if($select->num_rows()==1){
echo "true";
return true;
} else {
echo "false";
return false;
}
}
永远不要检查&gt;登录时为0,您只需要返回一行。将查询放在“而不是”里面意味着它可以读取变量,而不会像查询那样连接查询。