for()循环
for(): 计数式循环
for(循环变量的初始化; 循环条件; 更新循环条件) {…}
//创建一个数组
$arr = ['admin', '123456', '男', '安徽'];
// 为了优化输出结果, 把结果转为字符串输出
//创建一个空变量用于接收返回值
$result = '';
for ($i = 0; $i < count($arr); $i++) {
// $result = $result . $arr[$i] .'<br>';
// 上面的简写
$result .= $arr[$i] .'<br>';
}
echo $result;
for()循环遍历 关联数组
next()
向后移动,同时会获得当前数组元素的值prev()
向前移动,同时会获得当前数组元素的值end()
移动到最后一个数组元素,并获得它的值reset()
移动到第一个数组元素,并获得它的值key()
获得当前数组指针指向的数组元素的键名current()
获得当前数组指针指向的数组元素的值
while()循环
根据循环条件,只要条件满足就一直执行循环体中的语句
入口判断例子
$i = 0;
while ($i < count($arr)) {
$result .= $arr[$i] .'<br>';
// 必须将循环变量的更新操作写到while中
// ++ 相当于 $i = $i + 1
$i++;
}
echo $result;
常用函数
count()
: 计算数组元素的数量strlen()
: 计算字符串长度trim()
, rtrim()
, ltrim()
: 是从字符串二边,右边, 左边删除指定的字符,默认删除的是空格mt_rand(min, max)
: 产生指定范围的随机数
手写语法
PHP表单验证方法
使用PHP表单做一个会员登陆验证的表单
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>会员登陆</title>
<style>
body {
background-color: #edeff0;
}
.dl {
width: 450px;
height: 300px;
display: flex;
flex-direction: column;
font-size: 14px;
color: #282828;
margin: auto;
background-color: #fff;
box-sizing: border-box;
border-radius: 10px;
}
.dl {
box-shadow: 0 0 8px #ccc;
}
.dl > h3 {
align-self: center;
border-bottom: 3px solid lightcoral;
font-weight: normal;
font-size: 20px;
}
.dl > form {
display: flex;
flex-direction: column;
padding: 20px;
}
.dl > form > span {
display: flex;
flex-flow: row nowrap;
height: 60px;
}
.dl > form > span > label {
width: 80px;
position: relative;
display:block;
}
.dl > form input {
height: 30px;
flex: 1;
padding-left: 15px !important;
box-shadow: none;
border: 1px solid #ccc;
border-radius: 4px;
}
.dl > form input:hover {
border: 1px solid green;
}
.dl > form > span > button {
background-color: green;
border: none;
color: #ffffff;
font-size: 20px;
width: 120px;
height: 35px;
margin: auto;
}
</style>
</head>
<body>
<div class="dl">
<h3>会员登陆</h3>
<!-- method:提交验证方式,不指定的话默认为GET-->
<form action="yz.php" method="post">
<span>
<label for="username">用户名:</label>
<!-- required:必填 autofocus:光标定位-->
<input type="text" name="username" id="username" placeholder="输入你的会员名" required autofocus>
</span>
<span>
<label for="password">密码:</label>
<input type="password" name="password" id="password" required>
</span>
<span><button>登陆</button></span>
</form>
</div>
</body>
</html>
<?php
//$_REQUEST: 请求数据的超全局变量,里面保存的是用户所有的请求数据
//$_POST:用post方法传递过来的信息
// 判断用户的请求类型是否合法
//前台页面设置的是POST类型的请求,如果不是POST类型则不运行
//$_SERVER[]获取全局信息,里面包含传递信息的方法等
//$_SERVER['REQUEST_METHOD']:获取请求类型
//这里假设会员名为admin 密码为123456
if ($_SERVER['REQUEST_METHOD'] = 'POST') {
if (!empty($_POST['username'])) $username = $_POST['username'];
if (!empty($_POST['password'])) $password = $_POST['password'];
// 判断用户名是否正确
if ($username === 'admin') {
// 判断密码正不正确
if ($password === '123456') {
echo '登陆成功';
} else {
exit('<script>alert("密码错误");history.back();</script>');
}
} else {
exit('<script>alert("用户名错误");history.back();</script>');
}
} else {
// 如果不是POST请求返回错误信息
exit('<h3 style="color:red">请求类型错误!</h3>');
}
用户名验证不成功返回信息:
密码验证不成功返回信息:
用户名和密码都成功返回信息:
备忘
$_REQUEST
: 请求数据的超全局变量,里面保存的是用户所有的请求数据$_SERVER[]
获取全局信息,里面包含传递信息的方法等$_SERVER['REQUEST_METHOD']
:获取请求类型
$_POST
:用post方法传递过来的信息$_GET[]
用get方法传递过来的信息
count()
判断数组元素个数strlen()
判断字符串长度
密码加密方式:md5()
产生32位加密字符串sha1()
;40位随机字符串;
三元运算符, 将双分支进行简化条件 ? true : false
// $_POST['grade'] = isset($_POST['grade']) ? $_POST['grade'] : 70;
// echo $_POST['grade'];
// $grade = isset($_POST['grade']) ? $_POST['grade'] : 80;
// // php7+
// $grade = $_POST['grade'] ?? 90;
// echo $grade;
(2)、isset()
;和 empty()
;区别:empty()
;判断传递过来的值是否为空, 0
, null
, false
;isset()
;检查请求变量是否设置, 并且值不能为NULL,用在设置请求变量默认值;
JS弹窗函数:<script>alert("弹出信息");</script>;
JS返回上页函数:<script>history.back();</script>