Php 登录后显示mysql行
你好,这是我在这里的第一篇帖子,我非常需要帮助。 我正在为一家会员旅游和度假公司开发一个网站,在用户成功登录并重定向到search-flights.php后,我想使用登录详细信息在my-account.php中显示用户详细信息,以检索特定的mysql行。我该怎么做呢?我已经对此进行了很长一段时间的研究,但我还没有找到任何与我需要做的事情相距甚远的解决方案 这是我的一些代码,请记住,我对php和mysql相当陌生Php 登录后显示mysql行,php,mysql,Php,Mysql,你好,这是我在这里的第一篇帖子,我非常需要帮助。 我正在为一家会员旅游和度假公司开发一个网站,在用户成功登录并重定向到search-flights.php后,我想使用登录详细信息在my-account.php中显示用户详细信息,以检索特定的mysql行。我该怎么做呢?我已经对此进行了很长一段时间的研究,但我还没有找到任何与我需要做的事情相距甚远的解决方案 这是我的一些代码,请记住,我对php和mysql相当陌生 <form method="POST" id="login-form"
<form method="POST" id="login-form" action="./Scripts/checklogin.php">
<fieldset class="userdata">
<p id="form-login-username">
<label for="modlgn-username">User Name</label>
<input id="modlgn-username" name="myusername" class="inputbox" size="18" type="text">
<p id="form-login-password">
<label for="modlgn-passwd">Password</label>
<input id="modlgn-passwd" name="mypassword" class="inputbox" size="18" type="password">
</p>
<p id="form-login-remember">
<label for="modlgn-remember">Remember Me</label>
<input id="modlgn-remember" name="remember" class="inputbox" value="yes" type="checkbox">
</p>
<input type="image" class="move" value="Login" src="images/Login.png" alt="Log in Button" title="Log in" />
<input name="option" value="com_users" type="hidden">
<input name="task" value="user.login" type="hidden">
<input name="return" value="aW5kZXgucGhwP0l0ZW1pZD00MzU=" type="hidden">
<input name="e4b8befc8354bc2ee27d826c9dcc850f" value="1" type="hidden"> </fieldset>
</form>
<?php
// check-login.php
$host="localhost"; // Host name
$username="********"; // Mysql username
$password="********"; // Mysql password
$db_name="choliday_members"; // Database name
$tbl_name="members"; // Table name
// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
// username and password sent from form
$myusername=$_POST['myusername'];
$mypassword=$_POST['mypassword'];
// To protect MySQL injection (more detail about MySQL injection)
$myusername = stripslashes($myusername);
$mypassword = stripslashes($mypassword);
$myusername = mysql_real_escape_string($myusername);
$mypassword = mysql_real_escape_string($mypassword);
$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'";
$result=mysql_query($sql);
// Mysql_num_row is counting table row
$count=mysql_num_rows($result);
// If result matched $myusername and $mypassword, table row must be 1 row
if($count==1){
// Register $myusername, $mypassword and redirect to file "login_success.php"
session_register("myusername");
session_register("mypassword");
header("location:../members/search-flights.php");
}
else {
echo "Wrong Username or Password";
}
?>
用户名
暗语
记得我吗
会话\u寄存器已弃用
改用$\u会话[];)
比如:
$_SESSION['username'] = $myusername;
然后。。。如果你管理好会话,在“我的帐户”中,你可以使用$\u会话,其值为login…我们不会为你编写代码,但为了给你一点帮助,以下是你的代码的错误:
不要选择*
,选择你需要的,仅此而已
不存储密码,而是散列
使用或代替mysql
如果用户的密码中有斜杠怎么办
如果你真的因为做这项工作而得到报酬,请先获得更多的知识。了解如何创建一个像样的web应用程序。自学一些概念,比如等等。像你这样的代码给PHP和web开发带来了坏名声
执行正确和故障保护错误处理
祝你学习PHP好运 对用户进行身份验证后,您需要为此用户会话生成一个唯一密钥,并将其保存
$\u会话['key]=“aksbh7823b5iubsvd874bosidhvjbi3i4btv”
通常,这是一个唯一的字符串,您可以将其与用户标识(主键)一起存储在会话表中
通过将此唯一键放置在全局$\u会话
范围中,现在可以从另一个请求获取此值,前提是会话仍然存在
<?php
session_start();
$key = $_SESSION['key'];
$sql = "
SELECT b.* FROM sessions AS a
INNER JOIN users AS b ON b.id = a.user_id
WHERE key = '" . $key ."'
";
$result = mysql_query($sql);
?>
将用户ID存储到会话中,并在需要时使用它从sql中调用用户详细信息。那么多刚接触PHP和MySQL的人是如何在编写需要这种专业技能的网站时不断获得工作的?这就像我今晚看到的第20个问题。请注意,mysql方法被弃用,取而代之的是PDO和/或mysqli@Barmar:是的,有时我感觉更像DailyWTF。问题在于重定向或选择行?
<?php
session_start();
$key = $_SESSION['key'];
$sql = "
SELECT b.* FROM sessions AS a
INNER JOIN users AS b ON b.id = a.user_id
WHERE key = '" . $key ."'
";
$result = mysql_query($sql);
?>