我正在创建一个在后端带有登录页面的内容管理网站。
我为内容管理系统的主菜单创建了一个工作登录页面。
下图显示了我的代码。
第一步 - 用户访问内容管理系统主菜单的 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();
?>
我知道我想在所有检查“vaild_user”会话变量的php页面上放置php脚本,并且还让用户能够通过指向logout.php文件来注销。我只是不知道在这一点上如何去做。
我对这一切都很陌生,并且通常会遵循清晰的指南,就像我确定的大多数人一样。
任何人都可以提供的任何帮助将不胜感激
再次感谢!。