php登录页面的是怎么做的

我是初学者,想先做一php登录页面。我是把用户名和密码提交给一个php页面,并对其与数据库中的账号密码进项对比,要是一致,就header到另一个页面c.php,如果不对就header跳转到登录页面login.php并提示错误。但是假如我不从login.php页面登录。而是直接访问c.php也能看到c.php的信息。请问如何设置权限只让通过登录验证的用户才能访问c.php及后续页面,直接访问c.php及后续页面均跳转到登录页面。我是初学菜鸟,请大神详细的说明,谢谢。一定要详细,谢谢啦

先给你说一下,c.php页面, 在c.php取得一个session会话, 判断这个会话是否存在, 不存在则说明没有登陆, 那就跳转到登陆页面!
接着说登陆页面, 登陆处理页, 获取用户输出的用户名和密码, 与数据库进行比对,如果比对成功, 将用户名写入session会话, 方便在c.php比对是否登陆!
大概过程就是这样!
如果你要代码的话, 很快就可以给你写出来!
但,问题是,你能问这样的问题, 说明你没有php基础, 那就算把代码写给你,又如何呢?
所以, 个人建议, 你还是从基础学起, 别管他什么登陆不登陆!
有了基础, 你自然知道如何做登陆注册等!

比如你这个问题就涉及到一个基础:
session会话!
session是服务器端会话, 而且具有唯一性!还有一定的过期时效!
每个客户端请求服务器后, 储存的会话变量是不一样的,而且都是唯一的,就是换一种浏览器, 都会不同, 根据这个原理, 拿session来做登陆, 岂不是刚好解决你的问题?
当然, 还有cookie等, 也可以!追问

回答的非常棒啊,确实是没基础,刚学习php,还不到一个月,谢谢你的回答,我会好好学习基础知识的。

追答

所以啊!
很多新手都是这样, 一开始接触php, 就开始学做某些什么功能!
你基础都没有啊,怎么学呢?
就说这个登陆吧, 你在制作的时候,首先是涉及到html标记性语言, 比如表单、表单域,具体来说就是表单如何写,表单属性如何写, 文本框如何写,密码框如何写, 提交按钮如何写!
接着就是php, php如何接收表单数据, sql语句如何写, 需要用到那些mysql函数, 如何使用php的if判断语句,等等等等!
基础没有, 就是给你说个过程, 甚至给你详细代码, 你也一知半解不是?

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-10-08
session_star();
if(!isset($_SESSION['login_status']))  //不存在就直接login页面,你可以在每个页头加载这个来判断
    header('Location:login.php');
$username=$_POST['name'];
$pass=$_POST['password'];

$sql="select * from 用户表单 where username='{$username}'";
$result=mysql_query($sql,$link);

if($result && mysql_num_rows($result)>0){        //判断用户名是否存在
    $user=mysql_fetch_assoc($result);
    if($user['pass']==md5($pass)){
        $_SESSION['login_status'] = 1 //让后续判断是不是已经登录了(存放在服务器端,关闭浏览器就没有,或者你可以用cookie来判断)
        echo '登录成功!';
    }else{
         echo "密码错误!";
    }
}else{
        echo "账号不存在!";
    }

追问

代码写的很好,但是是个初学者,对session对话还不是很了解,所以不能完全看懂你的代码。非常感谢你做的回答。

本回答被提问者采纳
第2个回答  2014-08-31
$username=$_POST['name'];
$pass=$_POST['password'];

$sql="select * from 用户表单 where username='{$username}'";
$result=mysql_query($sql,$link);

if($result && mysql_num_rows($result)>0){ //判断用户名是否存在
$user=mysql_fetch_assoc($result);
if($user['pass']==md5($pass)){
echo '登录成功!';
}else{
echo "密码错误!";
}
}else{
echo "账号不存在!";
}追问

谢谢你回答,你回答的不是我想问的,你这段代码我已经写出来了,我是想问在通过验证后跳转的另一个页面后,如何人不直接访问跳转后的页面,看题吧,我说的很详细了

第3个回答  2018-05-28
你问题的意思是想说,每个用户登录后不让别人看到自己登录页面的信息对吧?其实页面是公共的,不存在谁看到自己的信息,不可能每个用户都有一个独立的php文件页面。用户登录后就会在浏览器保存一个会话.这个ip在一定时间内在你这个网站不管跳到那个页面用户名 id都会存在的,你只要在属于用户的页面的<?php开头第一行做个登录检测,就有了当前的登录用户名 id,然后在数据库的查询语句中以当前登录用户动态id作为条件,那每个用户都是只能看到自己的内容了,也就不存在谁看到谁的了。你都能写登录代码了,就不用再给你写代码吧?