php源码之搭建站点实现登录页面的方法
这篇文章主要介绍了关于php源码之搭建站点实现登录页面的方法,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下
主要:
站点搭建
实现登录页面
分析及改进
站点搭建
1) 在apache安装目录下: 【conf\extra\httpd-vhosts.conf】加入站点配置
1 <VirtualHost *:80> 2 #站点根目录 3 DocumentRoot "D:\htdocs\Demo" 4 #站点绑定的域名 5 ServerName www.test.com 6 #站点别名 7 ServerAlias test.com 8 <Directory "D:\htdocs\Demo"> 9 #允许所有访问 10 #allow from all 11 Require all granted 12 #允许分布式权限配置(允许重写)(.htacess) 13 AllowOverride All 14 #不显示站点目录的文件结构 15 Options -indexes 16 </Directory> 17 </VirtualHost>
2) host文件添加域名解析。 host文件位置:【C:\Windows\System32\drivers\etc\hosts】
1 127.0.0.1 www.test.com test.com
3) 重启apache。 完成站点配置。
实现登录页面
1)创建项目目录blog 【D:\htdocs\Demo\blog】, 初始化git,并提交到码云
在项目目录中右键》Git Bash 前提:已经安装git
1 git init 2 git remote add origin 3 git pull origin master
2)用户数据表pbg_users
1 CREATE TABLE `pbg_users` ( 2 `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '用户主键', 3 `username` varchar(20) NOT NULL COMMENT '用户名', 4 `pwd` char(32) NOT NULL COMMENT '密码', 5 `email` varchar(50) NOT NULL DEFAULT '' COMMENT '注册邮箱', 6 `token_email` varchar(32) NOT NULL DEFAULT '' COMMENT '邮箱验证', 7 `flag` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '是否是管理员,1-管理员,2-普通用户', 8 `created_at` datetime DEFAULT NULL COMMENT '注册时间', 9 `updated_at` datetime DEFAULT NULL COMMENT '最后一次登录时间', 10 `login_ip` varchar(20) NOT NULL DEFAULT '' COMMENT '最后登录的ip地址', 11 `login_times` smallint(6) NOT NULL DEFAULT '0' COMMENT '登录次数', 12 PRIMARY KEY (`id`), 13 UNIQUE KEY `username` (`username`), 14 UNIQUE KEY `email` (`email`) 15 ) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
3) 登录界面【login.html】
1 <!DOCTYPE html> 2 <html lang="zh-CN"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>登录</title> 6 <link rel="stylesheet" type="text/css" href="layui/css/layui.css"> 7 <link rel="stylesheet" type="text/css" href="css/style.css"> 8 </head> 9 <body> 10 <p class="container"> 11 <p class="content"> 12 <form action="login.php" class="layui-form" method="post"> 13 <p class="layui-form-item"> 14 <h2>登录</h2> 15 </p><hr> 16 17 <p class="layui-form-item"> 18 <label class="layui-form-label">用户名:</label> 19 <p class="layui-input-block"> 20 <input type="text" name="username" class="layui-input" required lay-verify="required" placeholder="请输入用户名" autocomplete="off" > 21 </p> 22 </p> 23 24 <p class="layui-form-item"> 25 <label class="layui-form-label">密 码:</label> 26 <p class="layui-input-block"> 27 <input type="password" name="pwd" required lay-verify="required" placeholder="请输入密码" class="layui-input"> 28 </p> 29 </p> 30 31 <p class="layui-form-item"> 32 <p class="layui-input-block"> 33 <button lay-submit class="layui-btn">登录</button> 34 <button type="reset" class="layui-btn layui-btn-primary">重置</button> 35 </p> 36 </p> 37 </form> 38 </p> 39 </p> 40 <script type="text/javascript" src="layui/layui.js"></script> 41 <script> 42 layui.use('form', function(){ 43 var form = layui.form; 44 }); 45 </script> 46 </body> 47 </html>
4) 登录页面样式调整【css/style.css】
1 @charset "UTF-8"; 2 3 body { 4 background-color: #1E9FFF; 5 } 6 7 /*登录*/ 8 .container { 9 position: absolute; 10 left: 50%; 11 top:50%; 12 width: 500px; 13 margin-left: -250px; 14 margin-top: -200px;" 15 } 16 .content{ 17 background: #ffffff; 18 padding: 20px; 19 border-radius: 4px; 20 box-shadow: 5px 5px 50px #444444; 21 }
查看样式表
5)登录操作: 处理登录信息 【login.php】
1 <?php 2 /** 3 * 登录数据处理 4 * User: young 5 */ 6 header("content-type:text/html;charset=utf-8"); 7 //1-接收登录信息 8 $data = array(); 9 $data['username'] = trim($_POST['username']); 10 $data['pwd'] = trim($_POST['pwd']); 11 12 //2-连接数据库 13 $conn = @mysql_connect('localhost','root','root') or die('连接数据库失败!'); 14 // mysql_set_charset("utf8"); 15 // mysql_select_db("web"); 16 mysql_query('set names utf8',$conn); 17 mysql_query('use web',$conn); 18 19 //3-查询数据库 校验登录信息 20 $sql = "select username,pwd from pbg_users where username='{$data['username']}'"; 21 $res = mysql_query($sql,$conn); 22 23 //4-登录结果提示信息 24 if($res != false){ 25 $user = mysql_fetch_array($res); 26 if( $user['pwd'] == md5($data['pwd']) ){ exit('登录成功'); } 27 } 28 echo "用户名或密码不正确!"; 29 header('refresh:3; url=login.html');
点击查看
6)登录界面效果
分析改进
1)准备优化
文件目录结构,实现MVC结构
访问形式: 实现单入口文件访问
2)提交代码:
1 git add -A 2 git commit -m "第一次提交 && 登录页" 3 git push origin master
查看本项目源码: https://gitee.com/NewbiesYang/young_blog
小结:本次主要完成:
1. 站点配置
2. 登录数据表和登录页制作,登录逻辑简单实现
3. 下一步优化改进
以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!
相关推荐:
Atas ialah kandungan terperinci php源码之搭建站点实现登录页面的方法. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Alipay Php ...

JWT adalah standard terbuka berdasarkan JSON, yang digunakan untuk menghantar maklumat secara selamat antara pihak, terutamanya untuk pengesahan identiti dan pertukaran maklumat. 1. JWT terdiri daripada tiga bahagian: header, muatan dan tandatangan. 2. Prinsip kerja JWT termasuk tiga langkah: menjana JWT, mengesahkan JWT dan muatan parsing. 3. Apabila menggunakan JWT untuk pengesahan di PHP, JWT boleh dijana dan disahkan, dan peranan pengguna dan maklumat kebenaran boleh dimasukkan dalam penggunaan lanjutan. 4. Kesilapan umum termasuk kegagalan pengesahan tandatangan, tamat tempoh, dan muatan besar. Kemahiran penyahpepijatan termasuk menggunakan alat debugging dan pembalakan. 5. Pengoptimuman prestasi dan amalan terbaik termasuk menggunakan algoritma tandatangan yang sesuai, menetapkan tempoh kesahihan dengan munasabah,

Artikel membincangkan pengikatan statik lewat (LSB) dalam PHP, yang diperkenalkan dalam Php 5.3, yang membolehkan resolusi runtime kaedah statik memerlukan lebih banyak warisan yang fleksibel. Isu: LSB vs polimorfisme tradisional; Aplikasi Praktikal LSB dan Potensi Perfo

Artikel membincangkan ciri -ciri keselamatan penting dalam rangka kerja untuk melindungi daripada kelemahan, termasuk pengesahan input, pengesahan, dan kemas kini tetap.

Menghantar data JSON menggunakan perpustakaan Curl PHP dalam pembangunan PHP, sering kali perlu berinteraksi dengan API luaran. Salah satu cara biasa ialah menggunakan perpustakaan curl untuk menghantar post ...

Artikel ini membincangkan menambah fungsi khusus kepada kerangka kerja, memberi tumpuan kepada pemahaman seni bina, mengenal pasti titik lanjutan, dan amalan terbaik untuk integrasi dan debugging.

Penerapan prinsip pepejal dalam pembangunan PHP termasuk: 1. Prinsip Tanggungjawab Tunggal (SRP): Setiap kelas bertanggungjawab untuk hanya satu fungsi. 2. Prinsip Terbuka dan Tutup (OCP): Perubahan dicapai melalui lanjutan dan bukannya pengubahsuaian. 3. Prinsip Penggantian Lisch (LSP): Subkelas boleh menggantikan kelas asas tanpa menjejaskan ketepatan program. 4. Prinsip Pengasingan Antara Muka (ISP): Gunakan antara muka halus untuk mengelakkan kebergantungan dan kaedah yang tidak digunakan. 5. Prinsip Inversi Ketergantungan (DIP): Modul peringkat tinggi dan rendah bergantung kepada abstraksi dan dilaksanakan melalui suntikan ketergantungan.

Sesi rampasan boleh dicapai melalui langkah -langkah berikut: 1. Dapatkan ID Sesi, 2. Gunakan ID Sesi, 3. Simpan sesi aktif. Kaedah untuk mengelakkan rampasan sesi dalam PHP termasuk: 1. Gunakan fungsi Sesi_Regenerate_ID () untuk menjana semula ID Sesi, 2. Data sesi stor melalui pangkalan data, 3.
