• sessionfunctionphp实战第六天


    最近研究sessionfunction,稍微总结一下,以后继续补充:

        今天学习了做后台页面,很失败就不展示了。

        php方面:以下代码可以屏蔽php注意级别的错误,即 抛出任何非注意错误

    error_reporting(E_ALL&~E_NOTICE);

        开启session的方法,开启后就可以应用$_SESION咯。

        session是保存在服务端的东西噢。启动后会给 浏览器发送一个 session的ID,是cookies方法的

    session_start();

        如果浏览器禁用了cookies那也没关系,可以把session写到URL里就好咯.嘿嘿

    session_name.'='.session_id()

     附上我写好的 adminAction,只有登岸功能哦

    <?php
    	/**
    	 * 
    	 **/
    	class adminAction extends Action
    	{
    		protected $db='';
    		function __construct()
    		{
    			// code...
    			// //$smarty->force_compile = true;
    			/*$this->db = new MySQL("127.0.0.1","root","1234","myly","data");
    			$this->db->table('data');*/
    			$this->db = MySQL::getClass();
    			//var_dump($this->db);
    			$this->db -> connect("127.0.0.1","root","1234","myly");
    
    			$this->db -> table('user');
    
    			parent::__construct();
    		}
    
    		public function index()
    		{
    			if($this->is_login()){
    				echo "<script>window.location.href='admin.php?m=admin&a=admin';</script>";
    			}else{
    				echo "<script>window.location.href='admin.php?m=admin&a=login';</script>";
    			}
    		}
    
    		private function is_login()
    		{
    			return $_SESSION['login'];
    
    		}
    
    		public function login()
    		{
    			if (!empty($_POST['userName']) && !empty($_POST['password'])) {
    				$userName=$_POST['userName'];
    				$password=md5($_POST['password']);
    				/*var_dumP($_POST);
    				var_dump($password);
    				var_dump($password);*/
    				if($_SESSION['userData']=$this->db->where("userName='{$userName}' and password='{$password}'")->fine()){
    					echo "<script>window.location.href='admin.php?m=admin&a=admin';</script>";
    					$_SESSION['login']=true;
    					
    				}else{
    
    					echo "登录失败";
    				}
    			}
    
    			$this->display();
    		}
    
    		public function ulogin()
    		{
    			echo "<script>window.location.href='admin.php?m=admin&a=login';</script>";
    			unset($_SESSION);
    		}
    
    		public function admin()
    		{
    			if(!$this->is_login()){
    				echo "<script>window.location.href='admin.php?m=admin&a=login';</script>";
    			}
    			//var_dump($_SESSION);
    			$this->assign('userName',$_SESSION['userData']['userName']);
    			$this->display();
    		}
    
    		function add(){
    			/*var_dump($this->db
    				->data(
    					array('userName' => 'admin',
    						  'password' => md5('admin'),
    						  'time'     => time()
    				))
    				->add());
    				*/
    		}
    		
    	}
    ?>
        每日一道理
    漫漫人生路,谁都难免会遭遇各种失意或厄运。在凄风苦雨 惨雾愁云的考验面前,一个强者,是不会向命运低头的。风再冷,不会永远不息;雾再浓,不会经久不散。风息雾散,仍是阳光灿烂。

        提交表单用的 login.html

    <html>
    <head>
    	<title>瀑布流留言板 后台登岸</title>
    </head>
    <body>
    	<form action="admin.php?m=admin&a=login" method="post">
    		<input type="text" name="userName" value="admin">
    		<input type="password" name="password" value="admin">
    		<input type="submit" value="登岸">
    	</form>
    </body>
    </html>

        登岸成功后用的 admin.html

    <html>
    <head>
    	<title>欢迎 <{$userName}></title>
    </head>
    <body>
    
    </body>
    </html>

        这个就是我的登岸功能了。

        

        修改了 mysql.class.php 加了一个函数 fine,这样返回的数组就是 一维的咯,方便些

    /**
         +----------------------------------------------------------
         * 获得数据表的单条记载,返回一维数组
         +----------------------------------------------------------
         * @access public
         +----------------------------------------------------------
         * @param 
         +----------------------------------------------------------
         */
        public function fine(){
            $select_sql = 'select ';
            $fields = isset($this->query_list['fields'])?$this->query_list['fields']:'*';
            $select_sql.=$fields;
            $select_sql.= ' from `'.$this->query_list['table'].'` ';
            
            isset($this->query_list['join'])?($select_sql.=$this->query_list['join']):'';
            isset($this->query_list['where'])?($select_sql.=' where '.$this->query_list['where']):'';
            isset($this->query_list['group'])?($select_sql.=' group by'.$this->query_list['group']):'';
            isset($this->query_list['having'])?($select_sql.=' mysql having '.$this->query_list['having']):'';
            isset($this->query_list['order'])?($select_sql.=' order by '.$this->query_list['order']):'';
            isset($this->query_list['limit'])?($select_sql.=' 1,1'):'';
            //echo '<br>----->'.$select_sql.'<---------<br>';
            return $this->query($select_sql)[0];
        }

    文章结束给大家分享下程序员的一些笑话语录: 开发时间
      项目经理: 如果我再给你一个人,那可以什么时候可以完工?程序员: 3个月吧!项目经理: 那给两个呢?程序员: 1个月吧!
    项目经理: 那100呢?程序员: 1年吧!
    项目经理: 那10000呢?程序员: 那我将永远无法完成任务.

    --------------------------------- 原创文章 By
    session和function
    ---------------------------------

  • 相关阅读:
    HTTP协议相关知识点
    收集—— css实现垂直居中
    Nginx、lls、Apache三种服务器的日志格式及其字段含义
    XXE
    不安全的url跳转问题
    SSRF
    暴力破解
    跨站脚本xss
    CSRF跨站请求伪造
    RCE
  • 原文地址:https://www.cnblogs.com/xinyuyuanm/p/3098703.html
Copyright © 2020-2023  润新知