看下成果
ps:纯天然h5,绝不添加任何添加剂(css)以及化学成分(js)(<( ̄ ﹌  ̄)我就是喜欢纯天然,不接受任何反驳)
关于本文
用原生的php和html做了一个登陆注册,大概是可以窥见一般php开发的样子了。不过,low的地方区别提前说一下:
- 这个是多入口,一般程序都是单入口,单入口就是统一通过index.php进入,然后再引入其他文件,调用其代码,多入口就是每次通过不同文件进入(比如一会展示的login.php和register.php)
- 保留登陆信息用的是session,现在普遍是前后端分离,一般用cookie或者redis实现session的功能,很少直接使用session的
- 连接mysql使用的是mysqli,没有做封装,也没有使用pdo,除了能用没有其他优点了
- 这种样子的代码大概是上世纪的风格了,MVC都没用,看一看好了,真的开发再不济也要MVC分一下层
- 性能杠杆的,不要信任何框架的吹嘘,就性能而言,没有任何框架快得过原生。
准备工作
emmmm,首先用nginx或者Apache创建一个站点指向本地代码的目录,然后在host里配置127.0.0.1指向该站点。(这个就不教了啊,之前讲过),然后是一个user库的sql,和登陆和注册的前端代码页面(不好意思说这是代码):
- sql
CREATE TABLE `user` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id',
`username` varchar(64) NOT NULL DEFAULT '' COMMENT '账号',
`password` varchar(64) NOT NULL DEFAULT '' COMMENT '密码',
`nickname` varchar(64) NOT NULL DEFAULT '' COMMENT '昵称',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
- login.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Login</title>
</head>
<body>
<form action="login.php" method="post">
账 号 <input type="text" name="username"> <br>
密 码 <input type="password" name="password"> <br>
<button type="submit">提交</button>
</form>
<a href="register.html">没有账号?注册</a>
</body>
</html>
- register.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Register</title>
</head>
<body>
<form action="register.php" method="post">
账 号 <input type="text" name="username"> <br>
密 码 <input type="password" name="password"> <br>
昵 称 <input type="text" name="nickname"> <br>
<button type="submit">注册</button>
</form>
</body>
</html>
正文
- 首页index.php
假设我们的网站有个首页,需要判断用户是否登陆,登陆就欢迎他,没有登陆就让他去登陆,这个思路我们这么写
<?php
session_start();
if (!$_SESSION['nickname']) {
header("location:login.html");
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>index</title>
</head>
<body>
Hello <?php echo $_SESSION['nickname'] ?>
</body>
</html>
- 这行session_start() 是开启session,必须在最开始写,保证我们可以使用session相关的功能
- 如果当前session里没有存用户的昵称,那我们就认为该用户没有登陆,跳转到登陆界面
- 跳转是通过header的方式,参数重location后边是目标地址
- <?php echo $_SESSION['nickname'] ?>这段代码可以镶嵌在.php文件的html代码的任何一个地方,echo出来的字符在html中具有等同的功能
- 这样的就是前后端代码混杂,如果项目庞大之后非常难于维护
- 登陆部分login.php
这部分处理登陆请求,假设用户输入了账号密码这样的数据(前端和后端都应该对数据进行校验和处理,本文略去),然后拿到用户信息,判断用户密码是否正确,让用户成功登陆或者重新输入。
<?php
session_start();
$username = $_POST['username'];
$password = $_POST['password'];
$password_md5 = md5('study'.$password);
//连接mysql
$db = new MySQLi("localhost","root","root","allcanadmin",'8889');
$sql = "select * from `user` where `