• 设为首页
  • 点击收藏
  • 手机APP
    手机扫一扫下载
    华域联盟APP
  • 关注官方公众号
    微信扫一扫关注
    华域联盟公众号
hot天融信关于ThinkPHP5.1框架分离RCE漏洞的深

[/backcolor] 0x00 前言在前几个月,Thinkphp连续迸发了多个严重漏洞。由于框架应用的普遍性,漏洞影响十分 详情

PHP编程常用技巧

  [复制链接]
sterben 发表于 2016-5-10 17:59:46 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
004gaJ7tgy6N5FKdwBvad.jpg
  N3 Q/ }# q6 z
6 E$ O/ }7 @8 l7 D/ i9 I3 MPHP编程常用技巧四则 9 E5 C* `6 o* Y) H: `8 o

1 q8 `6 ?/ |8 T7 Z2 w  1.配置PHP文件目录 ' e, \( h; O4 {$ t& G" R
4 B& |- P/ k8 q0 a+ v: k
  作为服务器端解释执行的脚本语言,PHP程序放置在某个服务器可以访问的目录下,一般可以通过修改Apache的httpd.conj进行配置,例如我们在该文件中的一句:
6 |9 h& A* o7 T% x+ }; D. }- ]; o. L( T8 g) t) H% J
  Alias /test/ "d:/phpwebsite/php/" 那么在浏览器端输入:“http://localhost/test/+PHP文件名”就可以访问d:/phpwebsite/php/下的PHP文件了;可见该行不过是为存放PHP文件的目录起一个别名。
2 O# D9 _+ A9 d) c& p! y
# w) q; Z% c5 d& K7 d! v0 j4 ~; |  其次,还可以通过指定DocumentRoot路径得到存放服务器文件的目录,在httpd.conj找到以下两行,其中的路径可以随意指定,你的PHP文件也可以放在该目录下,服务器同样可以运行它们,如“http://localhost/+PHP文件名”。   g. {: ~2 B' }4 J6 D0 W
3 T% ^( H, x2 x" W0 n; e3 Y
  一般的,将PHP文件放在同一个地方比较好,可以方便管理,而其他文件放在另外一个地方。
8 B, D7 Q7 C% C) W% L
% h9 x' d/ W% r# `6 \1 B- cDocumentRoot "C:/usr/bin/html/"
5 Y- T, J) H4 h) t
8 t: n0 q( r/ J/ u3 b2.服务器端目录的索引文件 . K) A& X- N; h# T
在httpd.conj中,有一行:
3 l+ }1 {4 E- R0 m6 z# ^* dDirectoryIndex index.html
8 {% R" d  J+ P- r3 A0 l* l0 [( w8 e+ K. s
  该行指定目录默认打开文件为index.html,当访问某个目录时,服务器就会自动查找index.html, 若果不存在,则显示目录中的所有文件列表,默认打开文件可以改为别的,如index.php3等等,但是也许我们有很多目录,无论是存放图片,文本等资料的,还是存放PHP文件或别的文件的目录,我们并不希望用户能看到目录中的文件列表,在httpd.conj 中指定了一个.htacess文件,该文件产生一个目录索引文件,例如我们用写字板建立一个.htacess文件:
) V. U' c: F5 [/ Z
: P6 t8 r) X' `2 A% G3 S- X+ z# .htacess #
4 x& d. X% [! f# k+ Q$ f7 F) IDirectoryIndex error_open.php
) a. M8 B) G0 ~5 _2 f再建立一个错误警告文件: - P; n' K* Z% Z' P$ }
# error_open.php # 5 A3 g( j+ @2 s# d

" |. z1 |5 l3 I- x
' J' r8 u% k' d) }' O  其中的error_open.php为权限错误警告文件,将此2文件放在所有保护目录下,当用户企图打开目录时,自动转向执行error_open.php,显示错误警告。
) p1 c; a% A, H0 ^& I
. L& M- N# O8 v, X4 ~0 U  3.目录删除巧实现 ' A0 O; a, Q2 P/ ~* N+ o3 ~
我们知道,PHP4 for/win32中有个rename()函数可以支持对目录/文件进行重命名,如:
  J: c5 o9 g" r5 C0 r+ i2 frename( oldpath, newpath) // oldpath为文件或目录原来路径;
% _/ {/ U! C! M// newpath为新定义路径;
" e0 w  v1 d/ y5 u: A3 r0 u- d+ \# H' B
  实现将 oldpath改名为 newpath。
8 j! r: U% O. j# y* X
# \0 d" Y' l6 E* O9 {  PHP4中没有删除目录/文件的函数,怎么作到删除呢?我们知道,php.ini中有一行用来完成HTTP上传操作的临时文件目录配置行:
& d+ _: _+ }4 Fupload_tmp_dir= ; 0 ~7 ]/ P9 y$ c8 ]* b' ]# ]

: I7 t) f+ f1 F7 M8 _5 V3 F  PHP4支持该临时目录的配置(PHP3不支持),当上载操作完成则自动清空临时目录,好了,用它我们可以巧妙的实现文件/目录的删除,比如设置: upload_tmp_dir="d:/phpwebsite/php/tmp/" ; $ n* N+ p  [+ c. [# w' I1 P5 l$ [5 i
要删除某个目录 path,执行:
: U" Z/ @% ~5 e
! C! \5 N8 a3 o# c1 T2 |tmp="d:/phpwebsite/php/tmp/;" 0 J7 e; G/ g- n5 f( M2 l
rename( path, tmp) / C' b7 E" ~3 I4 L4 [& L% z
?>
0 o  {/ p- `9 S" X! `1 v7 |) g2 [7 {
  那么文件或目录 path改名为 tmp后, tmp目录下的所有文件/目录自动清除,就完成了删除操作。
8 |& C" x6 ]2 `0 |2 ?9 z( l5 H5 U9 p0 @  p. J7 T
  4.快速建立MySql数据库表 3 V& ]* J3 C2 U% o8 U. J% \. t

1 t* m' b# w: s; l4 ]  PHP和MySql数据库达到了完美结合,在网页上,比如在论坛或书屋发表作品的新用户,我们要把他的言论信息在线写入数据库中,往往要在相应的数据库中为该用户新建一个数据表。win32下建立新的MySQL空数据库很简单,只要在“/mysql/data/”目录下建立一个文件夹,如:"/usrinfo/",就可以了。而向库中增添新表可通过以下程序实现:
( w# ]' O5 y0 h3 E  b  j9 Y4 g9 N  x7 m
  # connect.mysql--连接数据库 # 4 g# N* @0 L+ H
connection = mysql_connect();
4 A. {, [1 v6 d1 Y; hmysql_select_db("usrinfo", connection); 7 W& _/ t9 G; I
?>
; O& w' Y+ g0 M% c# make.php-- 建立如下结构的,以用户名为表名的数据表 #
: O$ `) I, v- r% n; N8 c8 v" P//调用connect.mysql ; X! X% g8 F0 n  _1 |8 C1 E# W
require("connect.mysql");
' d0 f& T; e' J5 d//检查以用户名为表名的数据表存在否? 5 X0 L& H; B/ F1 h" G& [  G- A* Q
query="select count(*) from usrname";
4 y' v  O) S( C% ]5 Q; Tresult=mysql_db_query( query); : ^9 m% l( j/ }0 P/ _6 r7 c
//不存在则创建,如存在就是老用户;
: i+ }0 ?. S+ T7 R1 u# ~8 Aif(! result){
1 L) \# t: b& Vmysql_query(" 4 H! O/ }, i' t' `8 R
create table usrname(
8 B: a0 }$ }8 J: `7 [0 _6 Bid tinyint(6), : B- M, m1 Y) ]7 |
title text,
3 }+ N* h/ g9 W+ G1 Dbody longtext, * W6 X% O, E7 c
dateof date; ( g& v5 l* A2 F& O, Y
timeof time;
  d5 h2 }7 O; ^. z)") or die(mysql_error());
" ]! Z( Z4 }1 t} 6 ?) V- S* z2 _: z2 U
//此处为向数据表插入新的数据部分
) y9 Z/ g% G/ g( A* [' U3 c  n?>
; }' {  x' Q4 \/ g. ]  M; y2 I
  d) ~, r5 @9 X  z% ]' L0 L
You look down on me today, tomorrow I can't let you have been

精彩评论44

zuantanduila 发表于 2016-6-7 07:24:36 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
佰涛智光 发表于 2016-6-8 13:28:28 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
棣枝广 发表于 2016-6-25 10:46:42 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
广翠宪 发表于 2016-6-25 12:27:42 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
花传贺 发表于 2016-6-25 20:43:42 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
二洋璜 发表于 2016-6-25 21:24:30 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
花传贺 发表于 2016-6-25 21:40:05 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
zuantanduila 发表于 2016-6-26 04:28:52 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
花传贺 发表于 2016-6-26 04:32:59 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

关注0

粉丝6

帖子3328

发布主题
阅读排行 更多
广告位

扫描微信二维码

关注华域联盟公众号

随时了解更新最新资讯

admin@cnhackhy.com

在线客服(服务时间 9:00~18:00)

在线QQ客服

Powered by cnhackhy! © 2015-2019