知识大全 Php高手带路--问题汇总解答(一)
Posted 变量
篇首语:别裁伪体亲风雅,转益多师是汝师。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Php高手带路--问题汇总解答(一)相关的知识,希望对你有一定的参考价值。
Php高手带路--问题汇总解答(一) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
:为什么我得不到变量 我在一网页向另一网页POST数据name 为什么输出$name时却得不到任何值?
在PHP 以后的版本中reGISter_global默认为off 若想取得从另一页面提交的变量:
方法一:在PHP ini中找到register_global 并把它设置为on 方法二:在接收网页最前面放上这个extract($_POST);extract($_GET);(注意extract($_SESSION)前必须要有Session_Start()) 方法三:一个一个读取变量$a=$_GET[ a ];$b=$_POST[ b ]等 这种方法虽然麻烦 但比较安全
调试你的程序
在运行时必须知道某个变量为何值 我是这样做的 建立一文件debug php 其内容如下:
PHP代码:
<?PHP Ob_Start(); Session_Start(); Echo <pre> ;
Echo 本页得到的_GET变量有: ; Print_R($_GET);
Echo 本页得到的_POST变量有: ; Print_R($_POST);
Echo 本页得到的_COOKIE变量有: ; Print_R($_COOKIE);
Echo 本页得到的_SESSION变量有: ; Print_R($_SESSION);
Echo </pre> ; ?>
然后在php ini中设置 include_path = c:/php 并将debug php放在此文件夹 以后就可以在每个网页里包含此文件 查看得到的变量名和值
如何使用session
凡是与session有关的 之前必须调用函数session_start();
为session付值很简单 如:
PHP代码:
<?php Session_start(); $Name = 这是一个Session例子 ; Session_Register( Name );//注意 不要写成 Session_Register( $Name ); Echo $_SESSION[ Name ]; //之后$_SESSION[ Name ]为 这是一个Session例子 ?>
在php 之后 可以为session直接付值:
PHP代码:
<?PHP Session_Start(); $_SESSION[ name ]= value ; ?>
取消session可以这样: PHP代码:
<?php session_start(); session_unset(); session_destroy(); ?>
取消某个session变量在php 以上还有BUG
注意:
:在调用Session_Start()之前不能有任何输出 例如下面是错误的 ========================================== 行 行 行 Session_Start();//之前在第一行已经有输出 行 行 ?> ==========================================
提示 :
凡是出现 headers already sent 就是Session_Start()之前向浏览器输出信息 去掉输出就正常 (COOKIE也会出现这种错误 错误原因一样)
提示 :
如果你的Session_Start()放在循环语句里 并且很难确定之前哪里向浏览器输出信息 可以用下面这种方法: 行 <?PHP Ob_Start(); ?> 这里是你的程序
:这是什么错误
Warning: session_start(): open(/tmp\\sess_ d aa b c ec a c cc da f O_RDWR) failed: 因为你没有指定session文件的存放路径
解决方法: ( )在c盘建立文件夹tmp ( )打开php ini 找到session save_path 修改为session save_path= c:/tmp
:为什么我向另一网页传送变量时 只得到前半部分 以空格开头的则全部丢失
PHP代码:
<?php $Var= hello php ;//修改为$Var= hello php ;试试得到什么结果 $post= receive php?Name= $Var; header( location:$post ); ?>
receive php的内容:
PHP代码:
<?PHP Echo <pre> ; Echo $_GET[ Name ]; Echo </pre> ; ?>
正确的方法是:
PHP代码:
<?php $Var= hello php ; $post= receive php?Name= urlencode($Var); header( location:$post ); ?>
在接收页面你不需要使用Urldecode() 变量会自动编码 :我怎么知道系统默认支持什么函数
PHP代码:
<?php $arr = get_defined_functions(); Function php() echo <pre> ; Echo 这里显示系统所支持的所有函数 和自定以函数php\\n ; print_r($arr); echo </pre> ; ?>
:如何比较两个日期相差几天
PHP代码:
cha138/Article/program/PHP/201311/21361相关参考