PHP基础知识部分:
-
有以下php语句:function fun( $a, &$b ){…},请问”&“号的意义是什么?
-
假如我们定义了一个类A:
class A{
public $id;
public function fun($p){….}
}
请编写函数fun,使它修改成员$id的值为$p。
-
假设$str=’abc’,请问字符串 “123{$str}”和 ‘123{$str}’ 有什么不一样?
-
如果语句<?=’c’?>执行出错,会是什么原因引起的(提示:short tag)?
编程部分:
假如有以下数组:
$Data = array( ‘A’ => 1, ‘B’=>2, ‘F’=>3, ‘G’=>4,…)
$Index = array(‘A’=>’X1’, ‘B’=>’X2’, ‘C’=>’X3’, ‘D’=>’X4’, …, ‘Z’=>’X26’)
其中,$Data是原始数组,$Index是$Data的键名对应表,即我们希望把$Data的键名换成它在$Index中对应的值,得到一个新的数组:
$Data2 = array( ‘X1’ => 1, ‘X2’=>2, ‘X6’=>3, ‘X7’=>4,…)
现在的需求是,已知$Index表(常量),请编写一个函数,实现把输入的数组$Data转换成$Data2(假设$Data的元素个数未知,而且不会出现键名不在$Index中的情况)
该函数的定义如下:function transIndex($Data){
}
简答部分:
防注入检查。假设我们有一个php文件,是根据用户表单提交数据来查询数据库的,即:有以下代码:
$sql = “select * from table1 where username = ‘{$_POST[‘username’]'”;
mysql_query($sql,$link);
这样的语句其实是有安全隐患的,因为用户如果提交了包含单引号’的内容,上面的sql语句的select部分就会执行结束,且把引号后面的内容当作新的语句来执行,如果引号后面包含危险的sql指令,后果是很严重的。这就是sql注入的问题。
请讲讲你对防止sql注入的理解和防御措施。
前端部分:
请说说网页遮掩层的实现原理