php动态网页教程
用PHP写动态网页,态网本质就是页教让服务器在把HTML发给浏览器之前,先执行一段代码,态网把变化的页教内容塞进去。你访问一个.php文件,态网服务器不会直接把文件内容吐出来,页教而是态网先交给PHP解析器跑一遍,跑完的页教结果才是浏览器看到的HTML。这个机制决定了PHP能做的态网事:根据数据库里的数据生成页面、处理表单提交、页教管理用户登录状态。态网
先看一段最基础的页教代码。
<?态网php $name = "张三"; $time = date("Y-m-d H:i:s"); ?> <html> <body> <p>你好,<?页教php echo $name; ?></p> <p>当前时间:<?php echo $time; ?></p> </body> </html> 这段代码里,<?态网php ?> 标签之外的部分原样输出,标签之内的代码在服务器上执行。echo 把变量的值打印到HTML里。浏览器收到的只有纯HTML,看不到任何PHP代码。你右键查看源代码,只能看到“你好,张三”和具体时间。
变量是PHP里最常用的东西。不需要声明类型,直接 $name = "张三" 就行。字符串用单引号或双引号包起来,双引号里可以嵌变量,单引号不行。这个细节新手经常踩坑:echo "你好,$name" 会输出“你好,张三”,而 echo '你好,$name' 会原样输出“你好,$name”。我刚开始写PHP的时候就因为这个调试了半小时,盯着屏幕怀疑人生。
动态网页的核心在于数据处理。假设你要做一个简单的留言板,用户提交表单后,PHP接收数据、存进数据库、再从数据库读出来显示。接收表单数据用 $_POST 或 $_GET 超全局数组。
<?php if ($_SERVER["REQUEST_METHOD"] == "POST") { $message = htmlspecialchars($_POST["message"]); // 存入数据库或文件 file_put_contents("messages.txt", $message . "\n", FILE_APPEND); } ?> <form method="post"> <textarea name="message"></textarea> <input type="submit" value="提交"> </form> htmlspecialchars() 这个函数必须加上。不加的话,用户在留言里写 <script>alert('xss')</script>,这段脚本就会在其他访客的浏览器里执行。这是XSS攻击最常见的入口。很多人写练手项目时忽略这一步,上线后被人挂马都不知道怎么回事。
连接数据库用PDO比较稳妥。MySQLi也行,但PDO支持多种数据库,预处理语句写起来更清晰。
<?php $pdo = new PDO("mysql:host=localhost;dbname=test;charset=utf8mb4", "root", "password"); $stmt = $pdo->prepare("SELECT * FROM messages ORDER BY id DESC LIMIT 20"); $stmt->execute(); $messages = $stmt->fetchAll(PDO::FETCH_ASSOC); ?> <?php foreach ($messages as $msg): ?> <div class="message"><?php echo htmlspecialchars($msg["content"]); ?></div> <?php endforeach; ?> foreach 的替代语法 foreach: ... endforeach; 在HTML模板里混排时比花括号更易读。这种写法在WordPress模板里到处都是,刚开始看可能不习惯,用多了会觉得比大括号清爽。
会话管理是另一个绕不开的点。用户登录后,你得记住他是谁。session_start() 开启会话,$_SESSION 存用户ID。Cookie存在浏览器端,Session数据存在服务器端,浏览器只存一个Session ID。默认情况下PHP的Session文件存在 /tmp 目录,网站访问量大了之后这个目录会堆积大量小文件。生产环境一般把Session存到Redis或数据库里。
文件包含也是PHP动态网页的常见操作。include 和 require 的区别在于出错时的行为:include 报warning继续执行,require 报fatal error直接停。头部、尾部、数据库连接这些几乎每个页面都要用的代码,单独写成文件,用 require_once 引入,改一处就全站生效。
PHP不是唯一的选择,Python的Django、Node.js的Express都能做同样的事。但PHP的部署成本极低——找个虚拟主机,上传文件就能跑,不需要配置进程管理器、不需要反向代理。全球大概七成以上的网站服务端脚本用的是PHP,WordPress、Wikipedia、Facebook早期都是PHP写的。你可以说它语法不优雅,但它干活确实利索。
学PHP动态网页,别光看语法。找个实际需求,比如做一个带增删改查的通讯录,从表单到数据库到页面渲染完整走一遍。遇到问题查官方文档,PHP手册的中文翻译质量不错。写上两三个小项目,基本就通了。
(责任编辑:综合)
-
一个下午,我盯着日志文件里的一串十六进制字符,后背发凉。那是攻击者留下的payload,编码后指向服务器上的`/etc/passwd`。文件包含漏洞,就这么悄无声息地躺在一个老旧的PHP后台模板参数里
...[详细]
-
我见过太多团队死在bug管理上。不是死于bug太多,而是死于bug管理工具太难用。Jira那种重型武器,配上一套复杂的权限流和自定义字段,光配置就能耗掉你一个下午。等配置完,开发早把代码写完了。小团队
...[详细]
-
2021年5月,甘肃兰州,一段视频在网络上疯传。黄河兰州段的水面上,漂浮着大量白色泡沫,像一条巨大的“牛奶河”蜿蜒而下。当地居民说,这种景象不是第一次见了,但这次特别严重。后来查明,是上游一家化工厂违
...[详细]
-
上周陪一个做注塑机的老板去宁波看展会,他问了我一句:“我想给车间配一套废热回收,国外牌子哪个靠谱?”我当场没答上来,回来后翻了一整晚资料,又打了七八个电话,这才发现这问题背后藏着一整片信息荒原。 国外
...[详细]
-
我认识一个干了十二年模具的老师傅,老周。他手艺没得说,但去年厂子搬迁,他不想跟着去,五十二岁的人重新找工作,碰了一鼻子灰。不是技术不行,是人家一看简历,连面试机会都不给。后来他儿子帮他在一个找师傅平台
...[详细]
-
我直接说结论:365网站不是一个单一实体,而是一类域名的统称。市面上挂着“365”名头的网站,从线上彩票到理财平台,从视频站到商城,鱼龙混杂。你问它合不合法,得先搞清楚你问的是哪一个。 拿最常见的“3
...[详细]
-
nikto是个开源扫描器,圈内人都拿它当Web服务器的“体检仪”。可这玩意儿有个怪癖——它既是你的盾,又是你的刀。我见过太多人把它当成一次性工具,扫完就扔,结果漏洞报告躺在文件夹里发霉,服务器照样被脱
...[详细]
-
漏洞处理这事儿,圈里人常念叨“三原则”:及时性、最小权限、可追溯。可你要真信了这套,迟早栽跟头。我见过太多安全工程师把“原则”当圣经,结果在真实攻防里被现实抽得鼻青脸肿。今天干脆把话说透——有些被奉为
...[详细]
-
CTF比赛里,最劝退新手的不是密码学,不是逆向工程,而是——你根本不知道题目想让你干嘛。我见过太多人打开一道PWN题,盯着十六进制发呆半小时,最后愤然关电脑。别急,这很正常。 先搞清楚比赛分类。W
...[详细]
-
“内网”这词听着神秘,其实多数人天天都在用。公司打卡、学校选课、医院挂号,那些打不开的“内部系统”,本质就是一台没接到公网的服务器。想进去,靠的不是黑客技术,而是搞明白“门”开在哪。 最常见的门,叫V
...[详细]

淘宝天猫实时销量监控
国外网购平台有哪些
面向防火墙漏洞的动态分析方法
cmd获取别人ip地址
安徽网课云课堂
