【发布时间】:2012-12-13 14:50:34
【问题描述】:
我正在创建一个后端有登录页面的内容管理网站。
我已经为内容管理系统的主菜单创建了一个工作登录页面。
下面的图片显示了我的代码。
第一步 - 用户访问内容管理系统主菜单的 URL: 代码如下所示。
<?php
session_start();
echo $_SESSION['valid_user'];
if(!isset($_SESSION['valid_user']))
{
$URL="error.php";
header("Location: $URL");
}
?>
可能会发生两件事。 1 如果他们在被引导到错误页面之前没有登录。 然后他们可以选择访问登录页面并使用他们的用户名和 pswd 登录。
我已经声明了 ?php start_session();?在顶部
<?php
$login = $_POST['name'];
$loginpass =$_POST['password'];
if((isset($login)) || (isset($loginpass))){
//echo "<p> form has been submitted</p>";
include("connect.php");
$query = "select * from logins where
username='$login' and pswd=MD5('$loginpass')";
$result = mysql_query($query) or die($query."<br/><br/>".mysql_error());
$count=mysql_num_rows($result);
echo $count;
if($count > 0){
echo "<p>you are logged in as $login please
go to <a href='home2.php'>edt home</a>.</p>";
echo "<p><a href='logout.php'>log out</a> $login?</p>";
$_SESSION['valid_user'] = $login;
}else{
echo "<p>sorry login failed</p>";
}
}else{
//echo "<p> form hasn't been submitted</p>";
//Visitor needs to enter a name and password
echo "<h1>Please Log In</h1> <form method='post' action='index2.php'>";
echo "<p>Username: <input type='text'name='name'></p>";
echo "<p>Password: <input type='password' name='password'></p>";
echo "<p><input type='submit' name='submit' value='Log In'></p></form>";
}
?>
到目前为止,所有这些功能对我来说都很好。
但是,我想确保如果用户绕过主页 url 并决定直接跳转到编辑菜单中的某个部分,他们将被强制登录(如果他们尚未登录),或者 php 将如果他们已登录,请检查他们的凭据。
这是我想要放置验证的页面顶部的代码示例。我不确定顶部是否已经有数据库表连接会影响会话变量。
<?php
include("connect.php");
//echo "all good here";
//grab the data from the table 'designs'
$query ="SELECT * FROM designs ORDER BY id";
//send SQL statement to MySQL server
$display = mysql_query($query);
$num = mysql_numrows($display);
mysql_close();
?>
我知道我想在所有的 php 页面上放置 php 脚本来检查 'vaild_user' 会话变量是否已设置,并让用户能够通过指向 logout.php 文件来注销。我只是不知道在这一点上如何去做。
我对这一切都很陌生,而且我相信大多数人都会按照清晰的指南进行大致了解。
任何人都可以提供任何帮助将不胜感激
再次感谢!
【问题讨论】:
-
请在执行任何其他操作之前清理您的数据库输入:roshanbh.com.np/2007/12/…
标签: php mysql database session-variables