- 1. $_SERVER['DOCUMENT_ROOT']
- 2. define defined
- 3. 将变量输出到文本
- 4. JS实现返回上一页的按钮
- 5. 在HTML里怎么给普通按钮添加超链接?
- 6. 用php在页面之间传递数组
- 7. 后台T型布局
- 8. mysqli::query()的使用
- 9. 防止用户越过登陆界面,直接输入网址进入用户操作页面
- 10. php脚本中提示一个信息之后跳转到指定页面
- 11. exit; / exit(); / die(); / die;
- 12. PHP获取当前url路径的函数及服务器变量
- 13. 根据用户权限判断是否显示某一条目
- 14. 用户重新登录的问题
- 15. 隐式提交用户名
- 16. js验证输入的信息
- 17. 循环输出复选框
- 18. 只查看某一状态的部分代码实现
- 19. 查询的部分代码实现
- 20. 批量审核的代码实现
- 21. 按类别显示内容的部分代码实现
- 22. 在父页面中添加内容
- 23. 双引号内解析php变量
- 24. 检查一个日期是否有效
- 25. 为变量设定默认值
- 26. 验证表单输入:必填字段
- 27. 动态创建变量名
- 28. 通过名字来为函数指定参数
- 29. 调用可变函数
- 30. 数字检测is_numeric与ctype_digit的区别
- 31. 关于form/input 的autocomplete='off'属性
$_SERVER['DOCUMENT_ROOT']
$_SERVER['DOCUMENT_ROOT']
指向了web服务器文档树的根。(E:/wamp/www/)
define defined
!defined('CURSCRIPT') && define('CURSCRIPT', '');
含义是:如果CURSCRIPT 没定义,就定义CURSCRIPT为空。
将变量输出到文本
file_put_contents("./test.log","$_POST");
file_put_contents("./test.log","$_POST",FILE_APPEND);
//FILE_APPEND :如果文件 filename 已经存在,追加数据而不是覆盖。
输出数组:
1 | $str=''; |
JS实现返回上一页的按钮
<input type="button" onclick="javascript:history.go(-1);" value="返回上一页"/>
在HTML里怎么给普通按钮添加超链接?
<input type="button" value="跳转按钮" onclick="javascript:window.location.href='abc.html';"/>
用php在页面之间传递数组
实现大致思路:将数组转化成字符串,可以用get方式作为一个参数来传递到另外一个页面,接受后再将字符串转成数组即可。
代码如下:
a.php
1 |
|
b.php
1 |
|
最终输出:Array( [0] => 111 [1] => test [2] => 1)
使用POST方式提交。应该用以下方法写表单代码(注意name是text[]
)。
1 | <input name="text[]" value="1"> |
提交以后得到一个名为 text 的数组。
你可以用print_r($_POST);
查看接收到的结果。
后台T型布局
mysqli::query()的使用
如果成功则返回 TRUE,失败则返回 FALSE。
mysqli_query() 仅对 SELECT,SHOW,EXPLAIN 或 DESCRIBE 语句返回一个资源标识符,如果查询执行不正确则返回 FALSE。例:
1 | $result=$this->conn->query($sql);//返回的结果是资源类型 |
防止用户越过登陆界面,直接输入网址进入用户操作页面
当用户登陆时,添加代码:
1 | session_start(); |
在用户操作页面的开始处加上代码:
1 | session_start(); |
php脚本中提示一个信息之后跳转到指定页面
echo "<script>alert('一个信息');location.href='index.php';</script>";
exit; / exit(); / die(); / die;
php脚本中的exit;语句的作用是结束当前脚本,也就是说当代码执行到exit时将不再向下执行,相当于java中的break;
PHP获取当前url路径的函数及服务器变量
1.$_SERVER["QUERY_STRING"]
说明:查询(query)的字符串
2.$_SERVER["REQUEST_URI"]
说明:访问此页面所需的URI,获取当前请求的完整的(除域名的)url
3.$_SERVER["SCRIPT_NAME"]
说明:包含当前脚本的路径
4.$_SERVER["PHP_SELF"]
说明:当前正在执行脚本的文件名
实例:
1.http://www.biuuu.com/ (直接打开主页)
结果:$_SERVER["QUERY_STRING"] = ""
$_SERVER["REQUEST_URI"] = "/"
$_SERVER["SCRIPT_NAME"] = "/index.php"
$_SERVER["PHP_SELF"] = "/index.php"
2.http://www.biuuu.com/?p=222 (附带查询)
结果:$_SERVER["QUERY_STRING"] = "p=222"
$_SERVER["REQUEST_URI"] = "/?p=222"
$_SERVER["SCRIPT_NAME"] = "/index.php"
$_SERVER["PHP_SELF"] = "/index.php"
3.http://www.biuuu.com/index.php?p=222&q=biuuu
结果:$_SERVER["QUERY_STRING"] = "p=222&q=biuuu"
$_SERVER["REQUEST_URI"] = "/index.php?p=222&q=biuuu"
$_SERVER["SCRIPT_NAME"] = "/index.php"
$_SERVER["PHP_SELF"] = "/index.php"
$_SERVER["QUERY_STRING"]
获取查询语句,实例中可知,获取的是?后面的值$_SERVER["REQUEST_URI"]
获取http://www.biuuu.com 后面的值,包括/$_SERVER["SCRIPT_NAME"]
获取当前脚本的路径,如:index.php$_SERVER["PHP_SELF"]
当前正在执行脚本的文件名
当前url:"http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']
根据用户权限判断是否显示某一条目
1 |
|
用户重新登录的问题
当修改密码后要求用户重新登录,如果session中的数据仍然存在的话,那么浏览器就会跳过登录页面直接进入用户页面
1 | session_destroy();//销毁已存储的session 数据 |
隐式提交用户名
1 | <input name="username" type="hidden" id="username" size="30" value="echo $_SESSION["username"]; "/> |
js验证输入的信息
1 | <script> |
循环输出复选框
aaa.php文件:
1 | <form action="idd.php" method="post"> |
bbb.php文件:
1 |
|
输出:
1 | array(2) { [0]=> string(1) "2" [1]=> string(1) "3" } |
只查看某一状态的部分代码实现
1 |
|
……
查看:<a href='user.php'>全部</a> <a href="?zt=1">待审核</a> <a href="?zt=3">锁定</a> <a href="?zt=2">正常</a></div>
查询的部分代码实现
user.php文件:
1 |
|
批量审核的代码实现
1 | <script> |
点击“批量审核”按钮后:user_ztshenhe.php文件中会通过post方式获取提交的id(数组)和zt,然后更改数据库的相应字段。
按类别显示内容的部分代码实现
1 | <select name="select" id="select" onchange="javascript:location.href=this.options[selectedIndex].value"> |
在父页面中添加内容
1 | parent.php文件: |
双引号内解析php变量
1 |
|
正常来说,双引号内的变量会自动解析,输出:dsfsdf 123 fsfds
可是类似于这样的变量$_SESSION['pid']
,插入到字符串中回报语法错误,此时可以在变量外包裹{}解决:echo "dsfsdf {$_SESSION['pid']} fsfds";
检查一个日期是否有效
你想要检查一个日期是否有效。例如,你想要确保用户不会提交一个类似“1962年2月30日”这样的生日。
解决方案:使用checkdate()函数$valid = checkdate($month,$day,$year);
为变量设定默认值
$a = isset($_REQUEST['a']) ? $_REQUEST['a'] : $default;
在为变量指定默认值时,使用isset()是必须的。如果不使用这个函数,那么变量的非默认值就不能是0或者其他能转换成false的值。比如:$a = $_REQUEST['a'] ? $_REQUEST['a'] : $default;
如果$_REQUEST['a']
为0,那么$a会被直接指定为$default。
在检测数组是否经过设置时,需要使用另外一个函数array_key_exists():$a = array_key_exists('a',$_REQUEST) ? $_REQUEST['a'] : $default;
isset()和array_key_exists()之间的一个区别是,当数组中存在一个键但对应的值为null时,array_key_exists()返回true,isset()则返回false。
验证表单输入:必填字段
1 |
|
动态创建变量名
如果在一个变量名称前面放两个“$”符号,php就会废弃右面的变量,而取其值,然后,将该值作为“真正”的变量名称。
1 |
|
这段代码会输出103。因为$annimal = 'turtles'
,那么$$animal就是$turtles。
如果使用花括号,还能构造出用于表示变量名的更复杂的表达式:${'stooge_'.strtolower($s)};
通过名字来为函数指定参数
当向函数中传递参数时,必须注意参数的顺序,而且当多次调用同一个函数时,有可能每次需要传递到该函数中的参数不一样(有时需要传的是$a、$b,有时需要传的是$b、$c),这个时候使用function f($a,$b,$c){}
这样的传参方式则显得不够灵活。
解决方案:让函数只接受一个参数,此参数的类型是一个关联数组。
1 | function image($img){ |
扩展阅读:php的func_get_args()函数使用(http://php.net/manual/zh/book.funchand.php )
调用可变函数
问题:你想要依据变量的值来调用不同的函数。
方案:
使用call_user_func()
1 | function get_file($filename){ |
如果要求函数能够接受不同个数的参数,可以用call_user_func_array()
1 | function get_file($filename){ |
数字检测is_numeric与ctype_digit的区别
is_numeric:检测是否为数字字符串,可为负数和小数
ctype_digit:检测字符串中的字符是否都是数字,负数和小数会检测不通过
注意,参数一定要是字符串,如果不是字符串,则会返回0/FASLE
关于form/input 的autocomplete='off'
属性
input 的属性autocomplete默认为on,其含义代表是否让浏览器自动记录之前输入的值。
很多时候,需要对客户的资料进行保密,防止浏览器软件或者恶意插件获取到,可以在input中加入autocomplete="off"
来关闭记录。
另外,如果整个表单都不想让浏览器自动记录之前输入的值,我们可以给from表单加上,这样整个表单都不会记录用户输入的值。