我希望有人可以帮我解决我的问题。基本上我试图创建的是一个登录系统,而客户可以登录查看他们的包裹详细信息(地址,帐单号码等)。但是我很困惑我如何根据登录的用户显示客户结果登录时显示客户信息
到目前为止,我有2个表格,一个叫做userlogin和一个叫做userinfo。 用户登陆只包含用户名和密码的数据,而用户信息将包含所有的客户信息(地址,账单号等)。这两个表共用一行具有相同的值,user_id。我尝试过使用MYSQL内部连接等,但我不确定哪里出错,为什么我不能返回一个用户信息,而是显示所有结果,或者不显示任何结果。
这是我的2页的代码,首先是登录页面。
//Login.php
session_start();
if($user_is_valid) {
//Store the id in the session
$_SESSION['user_id'] = $user_id;
//Redirect to the home-page
header('Location: home.php');
exit;
}
////// Login Section.
$Login=$_POST['Login'];
if($Login){ // If clicked on Login button.
$username=$_POST['username'];
$password=$_POST['password']; // Encrypt password with md5() function.
// Connect database.
//connect
$con = mysql_connect("*****","*****","*****");
if (!$con){
die('Could not connect: ' . mysql_error());
}
//datebase
mysql_select_db("*****", $con);
// Check matching of username and password.
$result=mysql_query("select * from userlogin where username='$username' and password='$password'");
if(mysql_num_rows($result)!='0'){ // If match.
$_SESSION ['user']['id'] = $result ['id'];
session_register("username"); // Craete session username.
header("location:home.php"); // Re-direct to main.php
exit;
}
else { // If not match.
$message="--- Invalid Username or Password ---";
}
} // End Login authorize check.
这里是主页(将显示客户信息的页面)。
//Home.php
if(!strlen(trim($_SESSION['username']))) {
header("Location:login.php");
exit();
}
session_start();
echo $_SESSION['user_id']; //This will output the value we set earlier
$con = mysql_connect("*****","*****","*****");
if (!$con){
die('Could not connect: ' . mysql_error());
}
//datebase
mysql_select_db("*****", $con);
//select
$user_id = $_GET['user_id'];
$result = mysql_query("SELECT userinfo.name as name, userinfo.address as address, userlogin.username as username
FROM userinfo
INNER JOIN userlogin ON userlogin.user_id = userinfo.user_id
WHERE userlogin.user_id = userinfo.user_id");
while($row = mysql_fetch_array($result)){
echo $row['name'] . '</br> ';
echo $row['username'] . '</br> ';
echo $row['address'] . '</br> ';
}
在坚果壳
所以,我所要做的是创建一个系统,而用户可以去到我们的网站,登录,然后有显示自己对他们的信息,但我不能确定在哪里出了问题,老实说我迷惑了自己。
我明白,我可能没有很好的解释这一点,或者我的代码可能不是很干净,但是请任何反馈,问题,或者如果你能指出我在正确的方向我会不胜感激!谢谢!
我认为首先会真正帮助你的是整理你的代码。这听起来很迂腐,但在确定代码流是否是你认为的是至关重要的。特别是第二个示例的第3 /第4行在你跳出PHP并返回时很容易产生歧义,而且很难确定你的条件语句是否仍在评估中。我知道,也许有一些是它在这个网站上的格式,但它有助于每个人都有一致的编码标准。我会尽我所能编辑。 – M1ke
在使用您的SQL查询中未转义的值之前对请求进行消毒或使用准备好的查询。 您的第二页home.php上的user_id变量是从 中检索到的查询字符串,但它似乎并未实际传递给home.php。怎么把当前登录的用户的ID存储在会话中? 您还应该考虑任何人(在您当前的设置中)都可以通过更改请求中的user_id来查看任何用户的详细信息。您需要声明当前登录用户的身份并确定他们有权访问哪些资源。 – oens
同意Morteza;在这里你已经有了一些正确的代码,但开始开发Web应用程序的方式并不是盲目破解东西 - PHP是一门很好的语言,但是很容易在早期找到坏习惯。还有其他反馈意见我会给你的查询(你不需要别名或连接),但正确启动是最好的建议。 – M1ke