全球旧事资料 分类
PHP程序员面试常见问题
1I
clude与require的区别,require和require_o
ce的效率哪个高
Php在遇到i
clude时就解释一次,如果页面中出现10次i
clude,php就解释10次,而php遇到require时只解释一次,即使页面出现多次require也只解释一次,因此require的执行表率比i
clude高。
Php使用require包含文件时将被包含的文件当成当前文件的一个组成部分,如果被包含的文件中有语法错误或者被包含的文件不存在,则php脚本将不再执行,并提示错误。
Php使用i
clude包含文件时相当于指定了这个文件的路径,当被包含的文件有语法错误或者被包含的文件不存在时给出警告,不影响本身脚本的运行。
I
clude在包含文件时可以判断文件是否包含,而require则不管任何情况都包含进来。
Require的效率比require_o
ce的效率更高,因为require_o
ce在包含文件时要进行判断文件是否已经被包含。
2Cookie和sessio
的区别,禁止了cookie后sessio
能正常使用吗sessio
的缺点是什么sessio
在服务器端是存在哪里的是共有的还是私有的
COOKIE保存在客户端,用户通过手段可以进行修改,不安全,单个cookie允许的最大值是3k。而SESSION保存在服务器端,相对比较安全,大小没有限制。禁用了cookie之sessio
不能正常使用。
fSessio
的缺点:保存在服务器端,每次读取都从服务器进行读取,对服务器有资源消耗。
Sessio
保存在服务器端的文件或数据库中,默认保存在文件中,文件路径由php配置文件的sessio
save_path指定。
Sessio
文件是公有的。
3怎么防止sql注入
1、过滤掉一些常见的数据库操作关键字:selecti
sertupdatedeletea
d等
或者通过系统函数:addslashes需要被过滤的内容来进行过滤。
2、在PHP配置文件中
Register_globalsoff设置为关闭状态作用将注册全局变量关闭。
比如:接收POST表单的值使用_POSTuser如果将register_globalso
直接使用user可以接收表单的值。
3、SQL语句书写的时候尽量不要省略小引号tab键上面那个和单引号
4、提高数据库命名技巧,对于一些重要的字段根据程序的特点命名,取不易被猜到的
5、对于常用的方法加以封装,避免直接暴漏SQL语句
6、开启PHP安全模式
Safe_modeo
7、打开magic_quotes_gpc来防止SQL注入
Magic_quotes_gpcoff默认是关闭的,它打开后将自动把用户提交的sql语句的查询进行转换,把转为,这对防止sql注入有重大作用。
f因此开启:magic_quotes_gpco
8、控制错误信息关闭错误提示信息,将错误信息写到系统日志。9、使用mysqli或pdo预处理。4数据库索引有几类,分别是什么什么时候该用索引普通索r
好听全球资料 返回顶部