所以我想创建一个登录脚本为我的网页使用PHP和MySQL。我一直在寻找关于这方面所有信息的良好教程的互联网,但它似乎大多数只是给一个脚本,并在这里说,你去。问题是我需要更多关于会话和cookie的信息。有没有人知道一个很好的地方了解这个东西?PHP登录问题
PHP登录问题
回答
老实说,我不知道你想要什么地方因为我自己学到了。因为真的很容易。
所有这一切的基本原则是验证输入的登录信息是否正确(如果您知道我在说什么,请通过您的BL和DA进行检查),然后将有关用户的任意信息存储在$ _SESSION变量像$_SESSION['name'] = 'guest'
,然后在每个页面的开始写一个简单的语句,需要登录来检查$ _SESSION数组的内容,如果没有设置,重定向到另一个页面等等...
这就是它! :D 希望我能回答你要找的东西! ; - ]
编辑: 下面是一个简单的登录页面:
<?php
session_start(); //required if you want to use the $_SESSION array
$username = $_REQUEST['txtUsername']; //storing the value of the "txtUsername" text box in the form sent by client after the form has been submited
$password = $_REQUEST['txtPassword']; //same as $username
if (isset($username) && isset($password))
{
/*
* this section depends on the implementation of your BL and DA layers.
* assume that my BL selects a member by it's username and returns an array
* containing his/her info
*/
require_once('mybl.php'); //assume that my BL tier is implemented in the "mybl.php" file
MyBL $bl = new MyBL();
$queryResult = $bl->selectByUsername($username);
//authenticating user
if ($queryResult['username'] == $username && $queryResult['password'] == $password)
{
//the user has been authenticated and can proceed to other pages available for members only
/*
* i'm storing the user's username in the session so that I could refer to it in other pages
* in case I want to update/modify database tables for this specific user.
*/
$_SESSION['username'] = $username;
//store anything else you want for the current user:
$_SESSION['name'] = $queryResult['name']; //for welcome prompt
header('Location: welcome.php'); //redirecting the user
}
else //in case of wrong username/password
{
$message = "Incorrect username/password";
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>LoginPage</title>
</head>
<body>
<form method="post" action="login.php">
<table style="border: 1px dashed">
<tr>
<td>Username:</td>
<td><input name="txtUsername" type="text" />
</tr>
<tr>
<td>Password:</td>
<td><input name="txtPassword" type="password" />
</tr>
<tr>
<td colspan="2" align="center"><input name="btnSubmit" type="submit" value="Login" />
</tr>
</table>
</form>
<span style="color: red;"><?php echo $message; ?> </span>
</body>
</html>
的欢迎页面:
<?php
session_start();
//checking to see if the user is logged in
if (!isset($_SESSION['username']))
header('Location: login.php'); //the user is not logged in, he/she is redirected to the login page.
/*
* Basically you might want to put this code at the beginning of every page that requires
* logging in. This way a user that hasn't logged in can't see the contents of the page
* and you don't have to worry about extra checking and conditions that could raise errors
* due to empty "$_SESSION" array.
*/
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Login successful</title>
</head>
<body>
Login successfull!<br />
Welcome <?php echo $_SESSION['name']; ?>
</body>
</html>
关于会话和cookie,你到底在寻找什么?
请确保您使用http://php.net/manual/en/index.php
但是,如果你提供更多的信息,我们可以帮助一点,你在一个更好的方向
编辑: 这看起来像你需要的所有功能相当全面的教程: http://www.evolt.org/node/60265
这里有一些参考资料,可以帮助:
- PHP session documentation
- Wikipedia article on what HTTP cookies are
- PHP cookie documentation(请注意,您将很少需要单独用于身份验证两个会话和饼干。)
我的认证PHP authentication with multiple domains and subdomains,不是那么安全的,将在稍后更新。
我认为你遇到的问题是一个安全的登录脚本发挥了MySQL和PHP的许多功能,这不仅仅是很多教程想要涉及的。
有一个很好的教程here,但它的成立,因此显示了如何构建登录程序都在PHP4和PHP5,所以观看数字化的标题,并确保您只使用适用的文件到您的版本PHP。请务必查看有关加密密码的部分。现在,你一定会做得更好。关于本教程的好处是,它包括每一步的意见,这样你就会知道他们在做什么,如果你需要它可以搜索更多信息。如果您需要关于特定部分的解释,您可以做的另一件事是在这里发布一部分脚本。
你必须明白,每一次使用在session_start();功能,您在您的服务器上创建一个新的会话,或者如果它已经创建它使一个参考,因此通过浏览器在这种识别每一位旅客,并在同一时间,你创建这个会话的服务器设置在报头中的cookie变量与变数称为PHPSESSID这个变量有一个与你的会话的ID散列。
在PHP中,您有一个名为$ _SESSION的预定义全局变量,这个变量可以用来为您的登录存储数据,例如标志,就像这样。
$ _SESSION ['login'] = true;
所以你可以使用这个变量来检查用户是否已经登录过,每次你需要显示一些只允许注册用户的东西。
我忘了告诉你,session_destroy();函数应该用它来注销,它会结束你的会话。 – alejandro 2010-11-11 20:18:54
- 1. PHP登录问题
- 2. PHP登录问题
- 3. Php登录问题
- 4. PHP登录脚本问题
- 5. PHP登录脚本问题
- 6. php登录阵列问题
- 7. PHP登录密码问题
- 8. PHP登录系统问题
- 9. PHP - 会话登录问题
- 10. php登录:与标题问题
- 11. php mysql登录系统问题
- 12. PHP的MySQL登录头问题
- 13. PHP登录脚本会话问题
- 14. PHP的登录系统问题
- 15. php浏览器simpleTest登录问题
- 16. PHP会议登录系统问题!
- 17. SMF卷曲登录问题php
- 18. PHP MySQL登录功能问题
- 19. PHP登录脚本小问题
- 20. PHP登录系统问题 - mysql_num_rows无效
- 21. mySQL和PHP登录页面问题
- 22. 登录和注册页面问题php
- 23. 使用mySQL和PHP登录问题
- 24. PHP登录认证问题(初学者)
- 25. 使用PHP的$ SETTINGS登录问题
- 26. 轨登录问题
- 27. Asp.net登录问题
- 28. 登录 - sqlite问题
- 29. 问题登录vb.Net?
- 30. CAS登录问题
这就是我想学的东西。你没有使用任何东西来帮助学习它? – shinjuo 2010-11-11 19:58:00
只是由他人写的一些简单的代码。没有什么复杂的。如果你想 – M2X 2010-11-11 19:59:43
这将是优秀的,也许你如何将它张贴在每个页面上的描述,我可以张贴的示例代码。我知道如何使用MySql并填充它的会话和登录我不确定 – shinjuo 2010-11-11 20:03:43