您好我有这样的数据库:
ID Name Password
1 Hans *****
现在,当我登录时,我得到名称的PHP会话。
现在我想获取我在Login中输入Name的ID并保存在NameSession中,并将其保存到SESSION。
我在互联网上搜索过,因为它看起来并不那么难,但我找不到任何东西。
到目前为止,这是我的代码。
$sql = "SELECT * FROM login WHERE Login='".$loginname."' and Password = '".$loginpassword."'";
$result = mysql_query($sql);
if (mysql_num_rows($result)>0) { //...wenn ein Datensatz mit diesem Nicknamen gefunden wurde:
echo "Willkommen ".$loginname; //Fehlermeldung
//Session registieren
$_SESSION['loginname'] = $loginname;
$_SESSION['UserID'] = $User_ID;
//Text ausgeben
header('Location: home.php');
exit();
}
答案 0 :(得分:1)
获取特定记录的相应id
。
假设您的表结构是ID Name Password
,正如您在问题中提到的那样。根据你的SQL查询应该是这样的:
"SELECT * FROM login WHERE Name ='".$loginname."' and Password = '".$loginpassword."'";
改变这个:
if (mysql_num_rows($result)>0) { //...wenn ein Datensatz mit diesem Nicknamen gefunden wurde:
echo "Willkommen ".$loginname;
到此:
if (mysql_num_rows($result)>0) { //...wenn ein Datensatz mit diesem Nicknamen gefunden wurde:
$row = mysql_fetch_array($result);
echo $row['ID'];
//saving the id and username in sessions
$_SESSION['loginname'] = $loginname;
$_SESSION['UserID'] = $row['ID'];
注意:这仍然是不好的做法,请研究
mysqli
或PDO
。
答案 1 :(得分:0)
更改
$_SESSION['UserID'] = $User_ID;
到
$_SESSION['UserID'] = $result['ID'];
或者如果您在sql查询后包含explode($result)
,$ID
变量将可用。
假设您的查询只返回了1行,您可能希望执行$result
数组(所有返回的行)的循环,具体取决于您希望在登录时使用多远工作流程。