<input type=”file” name=”pic” />
<input type=”submit” value=”提交” />
</form>
Action.php:
$name=$_FILES[‘pic’][‘name’];
$type=$_FILES[‘pic’][‘type’];
$tmp=$_FILES[‘pic’][‘tmp_name’];
$error=$_FILES[‘pic’][‘error’];
$size=$_FILES[‘pic’][‘size’];
$maxsize=102410245;
If($size>$maxsize){
Exit(‘图片大小超出’);
}
$name_arr=array(‘gif’,’png’,’jpg’,’jpeg’);
$ext=pathinfo($name,PATHINFO_EXTENSION);
If(!in_array($ext,$name_arr)){
Exit(‘图片类型禁绝确’);
}
二、网站涌现mysql 压力太大,mysql 占用的cpu 太高,该当从哪些方面入手查找问题根源?
1、 数据库设计方面,设计构造良好的数据库,许可部分数据冗余。
选取最适用的字段属性,尽可能把字段设置为NOT NULL,这样在查询的时候,数据库不用去比较NULL值。
2、系统架构设计方面,表散列,把海量数据散列到几个不同的表里面,集群,数据库查询和写入分开。
3、写高效sql语句,以提高效率。
利用连接(join)来代替子查询
利用联合(union)来代替手动创建的临时表
4、所得皆必须,只从数据库取必须的数据。
5、必要的时候用不同的存储引擎,比如Innodb可以减少去世锁,HEAP可以提高一个数量级的查询速率。
6、利用事务
7、利用外键
8、利用索引
三、怎么防止sql注入?
1、过滤掉一些常见的数据库操作关键字:select,insert,update,delete,and,等
或者通过系统函数:addslashes(须要被过滤的内容)来进行过滤。
2、在PHP配置文件中
Register_globals=off;设置为关闭状态 //浸染将注册全局变量关闭。
比如:吸收POST表单的值利用$_POST[‘user’],如果将register_globals=on;直策应用$user可以吸收表单的值。
3、SQL语句书写的时候只管即便不要省略小引号(tab键上面那个)和单引号
4、提高数据库命名技巧,对付一些主要的字段根据程序的特点命名,取不易被猜到的
5、对付常用的方法加以封装,避免直接暴漏SQL语句
6、开启PHP安全模式
Safe_mode=on;
7、打开magic_quotes_gpc来防止SQL注入
Magic_quotes_gpc=off;默认是关闭的,它打开后将自动把用户提交的sql语句的查询进行转换,把’转为\’,这对防止sql注入有重大浸染。
因此开启:magic_quotes_gpc=on;
8、掌握缺点信息
关闭缺点提示信息,将缺点信息写到系统日志。
9、利用mysqli或pdo预处理。
四、数据库索引有几类,分别是什么?什么时候该用索引
普通索引、主键索引、唯一索引
并非所有的数据库都以相同的办法利用索引,作为通用规则,只有当常常查询列中的数据时才须要在表上创建索引。
五、数组中下标最好是什么类型的,为什么?
数组的下标最好是数字类型的,数字类型的处理速率快。
六、++i和i++哪一个效率高,为什么?
++i效率比i++的效率更高,由于++i少了一个返回i的过程。
七、magic_quotes_gpc()、magic_quotes_runtime()的意思是什么?
Magic_quotes_gpc()是php配置文件中的,如果设置为on则会自动POST,GET,COOKIE中的字符串进行转义,在’之前加\
Magic_quotes_runtime()是php中的函数,如果参数为true则会数据库中取出来的单引号、双引号、反斜线自动加上反斜杠进行转义。
八、你对Memcach的理解,优点有哪些?
Memcache是一种缓存技能,在一定的韶光内将动态网页经由解析之后保存到文件,下次访问时动态网页就直接调用这个文件,而不必在重新访问数据库。利用memcache做缓存的好处是:提高网站的访问速率,减轻高并发时做事器的压力。
Memcache的优点:稳定、配置大略、多机分布式存储、速率快