假设我有以下文件[index.php / admin.php / access.php]
1)文件index.php是登录表单
<form method="post" name="login" id="login" action="check.php">
Username : <input name="loginid" id="loginid" type="text">
Password : <input name="password" id="password" type="password">
</form>
它应该将条目(用户,通行证)发送到文件check.php,以便检查用户名和密码是否正确,我想用这种方式
2)文件check.php
在文件check.php,它应该执行以下功能 - 检查用户,通行证是否正确 - 如果正确则创建cookie或以某种方式 - 如果错误或空,请将我发回login.php
这里说的是我的db信息
$sql= "select * from settings where admuser='$loginid' and admpass='$password'";
$result = mysql_query($sql) or die("query failed: $sql");
3)文件access.php
如果我已经登录,那么这个文件应该进行比较,以便如果没有将我发送回login.php
4)文件admin.php [需要access.php检查我是否登录]
<?php
include('access.php');
echo "balah blah blah";
?>
所以任何人都可以尽可能简单地写这个例子
这个例子将有助于我研究它作为研究案例 因为我以前尝试但失败了所以我真的不知道为什么,这是我的最后一个问题Login not working after php updated但是我发现我需要编写适用的学习案例代码。
谢谢你的帮助
答案 0 :(得分:4)
你的做法肯定是错的。使用mysql_query()而不检查变量首先导致SQL注入(维基百科)。你应该使用PDO。这是教程的链接(Google上的“php pdo教程”的第一个链接):http://www.phpro.org/tutorials/Introduction-to-PHP-PDO.html
此外,没有必要检查cookie或这类东西,PHP有一些名为sessions
的东西。您可以在此处了解详情:http://www.tizag.com/phpT/phpsessions.php
在进一步学习之前花更多时间学习这些基础知识,它们非常重要:)
答案 1 :(得分:1)
您可以使用简单的if()循环在filecheck.php页面上设置会话。
$loginid = mysql_real_escape_string(strip_tags($_POST['loginid']));
$loginpass = mysql_real_escape_string(strip_tags($_POST['loginpass']));
$sql = mysql_query("SELECT loginid, loginpass FROM settings WHERE loginid='$loginid' AND loginpass='$loginpass'");
if(mysql_num_rows($sql) != 0){
//create $_SESSION
session_start();
$_SESSION['id'] = $loginid;
setcookie("id","id",time()+3600*24*30);
}else{
//the user doesn't match any of the ones in the database. Tell them to try another login}
要通过网站保持会话活动,只需调用`session_start();每个网页顶部的声明。 通过获取用户名和密码与数据库的匹配并创建$ _SESSION ['username'];只有您可以使用已有效登录的用户和密码创建。
要注销,您可以使用session_destroy();
声明。
关于会话的一个想法是会话将在您关闭网页时结束。理想的登录系统将包含会话和cookie。这样您就可以在登录时设置cookie和会话。当您关闭网页并稍后返回它时,cookie仍然存在,您可以使用cookie重新创建会话。这样就不再需要用户每次返回页面时都必须登录。
要重置session['id']
,您可以执行以下操作:
if(!isset($_SESSION['id'])){
if(isset($_COOKIE['id'])){
$_SESSION['id'] = $_COOKIE['id'];
echo '<p>Welcome back ' . $_SESSION['id'] . '</p>';
}
}elseif(isset($_SESSION['id'])){
echo '<p>Welcome back ' . $_SESSION['id'] . '</p>';
}else{
echo '<p>Please login</p>';
}