要求:使用PDO开发论坛,论坛要有登陆注册退出登录,修改资料,发帖子,帖子分类,回帖,加好友,送礼物,私信,30秒内间隔发帖等功能。sql考虑防注入,使用绝对路径等。php
开发中遇到的问题html
1.如何实现sql防注入
2.会话的使用
3.PHP令牌的使用
4.面向对象和面向过程的区别
5.引用传递和值传递的区别以及应用
6.资源文件的设置成相对路径mysql
解决方式
一.相对mysqli, PDO支持12种数据库驱动和命名参数绑定是其最大优势
sql防注入
1.pdo prepare防注入原理
PHP是将SQL模板和变量是分两次发送给MySQL的,由MySQL完成变量的转义处理,既然变量和SQL模板是分两次发送的,那么就不存在SQL注入的问题了
可理解为将传入变量中的特殊字符转译成普通字符处理
select * from u_user_info where u_name = '999' and u_password ='222' or '1' ='1'; 运行改语句会sql注入,当使用预处理后
二.会话的理解
cookie和session会话
cookie存在客户端,session存在服务器,session更安全,session文件存放在MAMP/tmp/php.
三.php表单令牌验证能够有效的防止表单重复提交
token通过加密后传到客户端,用户每次发出请求时,传一个token和服务器端的验证是否一致,不一致则提示用户非法登陆。
token和session的使用
CSRF:攻击者盗用了你的身份,以你的名义发送恶意请求。包括:以你名义发送邮件,发消息,盗取你的帐号,甚至于购买商品,虚拟货币转帐......形成的问题包括:我的隐私泄露以及财产安全。
四.面向对象和面向过程
面向过程的重用性更高。小项目可用面向对象的方式,linux
五.引用传递和值传递正则表达式
按值传递:函数内对值的任何改变在函数外部都会被忽略。redis
引用传递:函数内对值的任何改变在函数外部也能反映出这些修改。sql
应用场景:按值传递时,php必须复制值,而按引用传递则不须要复制值,故引用传递通常用于大字符串或对象。数据库
六.php获取当前文件的绝对路径
dirname(__file__)
__FILE__ PHP魔术常量,返回当前执行PHP脚本的完整路径和文件名
几个 PHP 的“魔术常量”
名称 说明
__LINE__ 文件中的当前行号。
__FILE__ 文件的完整路径和文件名。若是用在包含文件中,则返回包含文件名。自 PHP 4.0.2 起,__FILE__ 老是包含一个绝对路径,而在此以前的版本有时会包含一个相对路径。
__FUNCTION__ 函数名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该函数被定义时的名字(区分大小写)。在 PHP 4 中该值老是小写字母的。
__CLASS__ 类的名称浏览器
须要掌握安全
7.天天一个linux
8.http协议返回码表明含义
9.考虑将面向过程开发改成面向对象开发
10.mvc模式单入口index文件
11.如何实现php的低耦合和可扩展性
13如何将PHP项目部署到服务器
14.redis和memcached的优缺点
八.信息提示2.服务器成功地接受了客户端请求。3重定向4.客服端错误5。服务器错误
php获取当前文件的绝对路径
十.mvc单入口 全部的用户请求都会经过index单入口进入,域名,路由器设置,将用户请求转发到不一样的控制器,初始化类时,自动引入相关文件。
http协议返回码表明
参考资料
session和cookie
http://www.javashuo.com/article/p-ovldkjkz-t.html
谷歌浏览器调试技巧
http://blog.csdn.net/shenlei19911210/article/details/50992137
Csrf攻击方式
https://www.cnblogs.com/hyddd/archive/2009/04/09/1432744.html
单入口
http://blog.csdn.net/fengqiuzhihua/article/details/7913899
Http协议处理状态和返回值
http://blog.csdn.net/x_chengqq/article/details/51160498
http://www.php.cn/code/3906.html
http://blog.csdn.net/aixiaoyang168/article/details/49304823
http://localhost:8888/wendy/reg.php
http://www.javashuo.com/article/p-parpjzao-ba.html 数据库
http://blog.sina.com.cn/s/blog_6742643c0100r9qp.html
http://php.net/manual/zh/book.pdo.php
http://www.17sucai.com/preview/171072/2016-04-07/usercenter/index.html 我的中心页面
https://www.w3cschool.cn/phpkfbmgf/wyohkn.html 目录结构
* http://www.doc88.com/p-0187151320278.html 论坛开发文档参考
http://blog.csdn.net/eastmount/article/details/44241583
论坛博客参考
Bbs表情功能
http://blog.sina.com.cn/s/blog_6d4bfb040100lzm4.html
http://www.jb51.net/article/88805.htm 3种方法轻松处理php开发中emoji表情的问题
http://www.jb51.net/article/46458.htm正则表达式
http://www.educity.cn/develop/168810.html php目录
http://www.jb51.net/article/30568.htm php class 类的应用
http://blog.csdn.net/meeeen7/article/details/52136474 pdo操做类参考代码
http://www.javashuo.com/article/p-dcivjsao-bt.html
页面是否登录验证
http://www.jb51.net/article/36044.htm
Php中用PDO查询Mysql来避免SQL注入风险的方法
http://blog.csdn.net/herion_liu/article/details/53188359
sql注入