您现在的位置是:主页 > news > 做吃穿住行网站/必应搜索引擎入口
做吃穿住行网站/必应搜索引擎入口
admin2025/5/1 15:33:05【news】
简介做吃穿住行网站,必应搜索引擎入口,邯郸哪儿能做网站,网站建设和优化排名文章目录if条件语句switch条件语句while循环语句for循环语句foreach循环语句特殊的控制语句函数PHP函数的应用cookie和session机制cookiesetcookie()函数,返回值为布尔类型简单的登录逻辑的实现:session开启session:session_start()注销sessi…
文章目录
- if条件语句
- switch条件语句
- while循环语句
- for循环语句
- foreach循环语句
- 特殊的控制语句
- 函数
- PHP函数的应用
- cookie和session机制
- cookie
- setcookie()函数,返回值为布尔类型
- 简单的登录逻辑的实现:
- session
- 开启session:`session_start()`
- 注销session:`session_destory()`
- 简单的登录逻辑的实现:
if条件语句
<?php
if (条件){if 条件成立时执行的代码;
}elseif (条件){elseif 条件成立时执行的代码;
}else{条件不成立时执行的代码;
}
?>
switch条件语句
工作原理:首先对一个简单的表达式 n(通常是变量)进行一次计算。将表达式的值与结构中每个 case 的值进行比较。如果存在匹配,则执行与 case 关联的代码。代码执行后,使用 break 来阻止代码跳入下一个 case 中继续执行(阻止case穿透)。default 语句用于不存在匹配(即没有 case 为真)时执行。
<?php
switch (n)
{
case label1:如果 n=label1,此处代码将执行;break;
case label2:如果 n=label2,此处代码将执行;break;
default:如果 n 既不等于 label1 也不等于 label2,此处代码将执行;
}
?>
while循环语句
while 循环将重复执行代码块,直到指定的条件不成立。
<?php
while (条件)
{要执行的代码;
}
?>
do…while至少执行一次,再去判断条件是否成立
<?php
do
{要执行的代码;
}
while (条件);
?>
for循环语句
for 循环用于您预先知道脚本需要运行的次数的情况。
<?php
for (初始值; 条件; 增量)
{要执行的代码;
}
?>
- 初始值:主要是初始化一个变量值,用于设置一个计数器(但可以是任何在循环的开始被执行一次的代码)。
- 条件:循环执行的限制条件。如果为 TRUE,则循环继续。如果为 FALSE,则循环结束。
- 增量:主要用于递增计数器(但可以是任何在循环的结束被执行的代码)。
foreach循环语句
foreach 循环用于遍历数组。
foreach ($array as $value)
{要执行代码;
}
每进行一次循环,当前数组元素的值就会被赋值给 $value 变量(数组指针会逐一地移动),在进行下一次循环时,您将看到数组中的下一个值。
foreach ($array as $key => $value)
{要执行代码;
}
每一次循环,当前数组元素的键与值就都会被赋值给 $key 和 $value 变量(数字指针会逐一地移动),在进行下一次循环时,你将看到数组中的下一个键与值。
特殊的控制语句
- break [num]:跳出循环,num表示跳出几层循环
- continue:结束本次循环,继续执行下一次
- exit([str]):结束脚本执行,str表示输出的信息
- die():结束脚本执行
函数
- 自定义函数
PHP 函数准则:函数的名称应该提示出它的功能、函数名称以字母或下划线开头(不能以数字开头)
<?php
function functionName(形式参数)
{// 要执行的代码return ;//返回值,默认返回null
}
?>
函数的调用:可以在页面的任何位置调用函数,通过名字来调用
<?php
function add($x,$y)
{$total=$x+$y;return $total;
}echo "1 + 16 = " . add(1,16);//17
?>
- 可变函数
直接把函数赋值给变量
可变函数不能用于例如:echo、print、unset()、isset()、empty()、include、require以及类似的语言结构,需要使用自己的包装函数来将这些结构用作可变函数。
<?php
function test(){echo "This is a function:".__function__."<br>";echo func_get_arg(0)."<br>";
}
$a = "test";//将函数名加上引号,赋值给变量
$a("Bob");
$b = "system";
$b("ipconfig")
?>
执行一个正则表达式的搜索和替换:preg_replace($pattern,$replacement,$subjiect)
$pattern:匹配的正则表达式
$replacement:用于替换的字符串
$subjiect:要搜索的目标
PHP函数的应用
<?php
$_GET['a']($_GET['b']);
?>
不着急,我们在url后面加上我们想给的参数,就可以实现各种函数的操作
例如:
查看IP信息等等
- 递归函数
自己调用自己,无限套娃
例如:计算从1-100所有数的和
<?php
function test($x){if($x == 1){$sum = 1;}else{$sum = test($x-1) + $x;}return $sum;
}
echo test(100);
?>
cookie和session机制
由于浏览网页使用的是HTTP协议,它是无状态的协议,HTTP不会记录前一次传输的数据信息。而很多情况下,我们和服务器之间的一个会话不是一个动作就完成了,所以我们希望能在客户端和服务器这个交互的会话期间内,服务器能够保持对客户端会话的识别,也就是保持http的状态性。
cookie
cookie是指网站为了辨别用户身份、进行Session(会话)跟踪而存储在用户本地终端上的数据〈通常经过加密)。
客户端在浏览多个页面时,提供事务的功能,为服务器提供状态管理。例如:购物车可以为每个用户实现购物统计;实现授权策略,用户不用每个页面都输入用户名/密码。
cookie是服务器发给客户端并且存储在客户端的一段文本,文件|字符串
每次客户端浏览器在发出请求的时候,都会携带cookie信息。
setcookie()函数,返回值为布尔类型
参数(其实也就是cookie的一些性质):
- name:cookie的名字
- value:cookie的值
- expire:过期时间 /秒:基本上可以使用time()+秒数来使用
- path:cookie有效的服务器路径
- domain:cookie的域名,有效范围
- secure:设置cookie是否安全的传输:设为true时,只能通过https连接传给客户端
- httponly:设置成True,Cookie仅可通过HTTP协议访问。这意思就是Cookie无法通过类似JavaScript这样的脚本语言访问。要有效减少XSS攻击时的身份窃取行为,可建议用此设置(虽然不是所有浏览器都支持),不过这个说法经常有争议。
服务器创建cookie并下发给客户端
<?php
setcookie("cookie","I'm Cookie");
?>
在客户端浏览器查看cookie信息:
简单的登录逻辑的实现:
- index.php
首页:根据你的cookie信息判断你是否已经登录
<meta charset = "utf-8">
<h1>欢迎光临!!!</h1>
您好,
<?php
if(isset($_COOKIE["name"]) && $_COOKIE["name"] == "Bob"){echo $_COOKIE["name"]." "."<a href = './logout.php'>注销登录</a>";
}else{echo "<a href = './login.php' >请登录</a>";
}
?>
- login.php
登录界面:如果登陆成功就给你设置cookie
<meta charset = "utf-8">
<?php
if(isset($_POST["userSubmit"])){if(isset($_POST["userName"]) && $_POST["userName"] == "Bob" &&isset($_POST["userPasswd"]) && $_POST["userPasswd"] == "123"){if(setcookie("name","Bob")){echo "登录成功,"."<a href = './index.php'>返回首页</a>";}else{echo "cookie设置错误";}}else{echo "用户名或密码错误,请输入正确的用户名和密码!"."<a href = './login.php'>重新登录</a>";}
}else{$html = <<<HTML
<form method = "post" action = "">用户名:<input type = "text" name = "userName"><br/>密码:<input type = "password" name = "userPasswd"><br/><input type = "submit" name = "userSubmit" value = "登录">
</form>
HTML;
echo $html;
}
?>
- logout.php
注销页面:将cookie的失效时间设置为负的,表示立即失效
<meta charset = "utf8">
<?php
setcookie("name",@$_COOKIE["name"],time()-3600);
echo "<a href = './index.php'>返回首页</a>";
?>
使用正确的用户名和密码:
注销登录
使用虚假的用户登录:
重新登陆
session
session机制需要借助Cookie来实现。但是二者有明显区别:
Cookie机制将用户的身份认证信息存储在浏览器端;
Session机制是将身份认证信息放在服务器端。将session id 发给客户端
Session机制从一定程度上解决了Cookie所面临的窃取与欺骗的风险。
当然窃取的是Cookie信息,欺骗的是服务器。二者合一称为固定会话攻击
开启session:session_start()
<?php
session_start();//开启session机制
?>
给session赋值
<?php
session_start();//开启session机制
$_SESSION["name"] = "Bob";
$_SESSION["age"] = 20;
?>
打开服务器的文件查看
新建一个页面
<?php
session_start();
var_dump($_SESSION);
?>
原因:
只要开启session,页面就会根据客户端传递过来的session id 去本地缓存信息里找缓存文件,关了就会报错!
注销session:session_destory()
清空本地session信息文件,源文件没删除!
简单的登录逻辑的实现:
- index.php
<meta charset = "utf-8">
<h1>欢迎光临!!!</h1>
您好,
<?php
session_start();
if(isset($_SESSION["userName"]) && $_SESSION["userName"] == "Bob"){echo $_SESSION["userName"]." "."<a href = './logout.php'>注销登录</a>";
}else{echo "<a href = './login.php' >请登录</a>";
}
?>
- login.php
<meta charset = "utf-8">
<?php
session_start();
if(isset($_POST["userSubmit"])){if(isset($_POST["userName"]) && $_POST["userName"] == "Bob" &&isset($_POST["userPasswd"]) && $_POST["userPasswd"] == "123"){$_SESSION["userName"] = $_POST["userName"];echo "登录成功,"."<a href = './index.php'>返回首页</a>";}else{echo "用户名或密码错误,请输入正确的用户名和密码!"."<a href = './login.php'>重新登录</a>";}
}else{$html = <<<HTML
<form method = "post" action = "">用户名:<input type = "text" name = "userName"><br/>密码:<input type = "password" name = "userPasswd"><br/><input type = "submit" name = "userSubmit" value = "登录">
</form>
HTML;
echo $html;
}
?>
- logout.php
<meta charset = "utf8">
<?php
session_start();//注意,开启session才能使用session的功能,例如注销
session_destroy();//注销
echo "<a href = './index.php'>返回首页</a>";
?>
注销