我有一个论坛页面,希望用户使用预定义的mysql用户表中的用户名进行简单登录。我使用论坛中的login.php
表单文件链接,获取$_POST
用户名,然后使用调用函数的login_handle.php
文件连接到数据库,查询用户数组,然后尝试验证$_POST
用户名是否在查询列表数组中。
函数在下面,然后在login_handle.php
中调用我遇到了各种错误,并且不知道这是否是一个好方法。我还希望在表单和验证期间启动会话,该会话可以将$_POST
用户名作为$_SESSION
用户名获取并应用于后续论坛页面。
function isUsername($username){ //Test if proper Username from array.
$query = "SELECT username FROM users";
$result = mysql_query($query);
$usernames = mysql_fetch_assoc($result);
$isUname = true;
if(!in_array("username", $usernames)) {
echo "Please enter valid user name.<br>";
$isUname = false;
} //Search for proper username in username array.
return $isUname;
}
------------------handler call-----------
$username = $_POST["username"];
$password = $_POST["password"];
if(isUsername($username)==true){ // Check if username is valid.
//$Uname = $_SESSION['username'];
//echo "Username = " . $Uname;
echo '<a href="../fourm.php">go to forum</a>';
}
答案 0 :(得分:0)
首先,不推荐使用mysql。请使用mysqli。
其次,为什么不使用像...这样的东西。
function isUsername($username){
$query = "SELECT username FROM users WHERE username == '" . $username . "'";
第三:你搜索和研究了吗?
这些问题随处可见。
答案 1 :(得分:0)
虽然很简单,但您需要从$ _POST查询特定的用户名,而不是整个usertable。 我认为请求行数(如果用户在数据库中,幻影数量是一个很好的方法,你可以使它更大(&gt; =)而不是一个用户条件(==))。
function isUsername($username){ //Test if proper Username from array.
$query = "SELECT username FROM users where username='$username'";
$result = mysql_query($query);
$rows = mysql_num_rows($result);
$isUname = true;
if($rows==1) {
$isUname = true;
}else{
echo "Please enter valid user name.<br>";
$isUname = false;
}
return $isUname;
当我手动将txt数组分配给变量$ username进行比较时,我使用了几乎相同的函数。既然我正在使用用户表,我只想将查询用户的数组(想想mysql_fetch_assoc($ result)创建相同类型的assoc。数组)分配给$ username而不是之前使用的硬拷贝元素。使用查询生成的数组是否与$ usernames = array(“jes34”,“pes22”,“jis44”,“jll124”)不同;这阻止我这样做?
function isUsername($username){ //Test if proper Username from array.
$usernames=array("jes34","pes22","jis44","jll124");
$isUname = true;
if(!in_array($_POST["username"], $usernames)) {
echo "Please enter valid user name.<br>";
$isUname = false;
} //Search for proper username in username array.
return $isUname;
}
-----函数调用--- if(isUsername($ username)== true){do something}