1:为什么我得不到变量 我在一网页向另一网页 POST 数据 name,为什么输出$name 时却得不到任何值? 在 PHP4.2 以后的版本中 register_global 默认为 off 若想取得从另一页面提交的变量: 方法一:在 PHP.ini 中找到 register_global,并把它设置为 on. 方 法 二 : 在 接 收 网 页 最 前 面 放 上 这 个 extract($_POST);extract($_GET);( 注 意 extract($_SESSION)前必须要有 Session_Start()). 方法三:一个一个读取变量$a=$_GET["a"];$b=$_POST["b"]等,这种方法虽然麻烦,但比较安 全. 2:调试你的程序 在运行时必须知道某个变量为何值。我是这样做的,建立一文件 debug.php,其内容如下: PHP 代码:--------------------------------------------------------------------------------
复制代码 Ob_Start(); Session_Start(); Echo "
"; Echo "本页得到的_GET 变量有:"; Print_R($_GET); Echo "本页得到的_POST 变量有:"; Print_R($_POST); Echo "本页得到的_COOKIE 变量有:"; Print_R($_COOKIE); Echo "本页得到的_SESSION 变量有:"; Print_R($_SESSION); Echo "
";
-------------------------------------------------------------------------------然后在 php.ini 中设置:include_path = "c:/php",并将 debug.php 放在此文件夹, 以后就可以在每个网页里包含此文件,查看得到的变量名和值. 3:如何使用 session 凡是与 session 有关的,之前必须调用函数 session_start();
为 session 付值很简单,如:
PHP 代码:-------------------------------------------------------------------------------[php] Session_start(); $Name = "这是一个 Session 例子"; Session_Register("Name");//注意,不要写成:Session_Register("$Name"); Echo $_SESSION["Name"]; //之后$_SESSION["Name"]为"这是一个 Session 例子" [/php] --------------------------------------------------------------------------------
在 php4.2 之后,可以为 session 直接付值: PHP 代码:-------------------------------------------------------------------------------[php] Session_Start(); $_SESSION["name"]="value"; [/php] -------------------------------------------------------------------------------取消 session 可以这样: PHP 代码:-------------------------------------------------------------------------------[php] session_start(); session_unset(); session_destroy(); [/php] --------------------------------------------------------------------------------
取消某个 session 变量在 php4.2 以上还有 BUG.
注意: 1:在调用 Session_Start()之前不能有任何输出.例如下面是错误的. ========================================== 1行 2 行 [php] 3 行 Session_Start();//之前在第一行已经有输出 4 行 ..... 5 行 [/php] ==========================================
提示 1: 凡是出现"........headers already sent..........",就是 Session_Start()之前向浏览器输出信息. 去掉输出就正常,(COOKIE 也会出现这种错误,错误原因一样) 提示 2: 如果你的 Session_Sta
rt()放在循环语句里,并且很难确定之前哪里向浏览器输出信息,可以用 下面这种方法: 1 行 [php] Ob_Start(); [/php] ........这里是你的
程序......
2:这是什么错误 Warning: session_start(): open(/tmpsess_7d190aa36b4c5ec13a5c1649cc2da23f, failed:.... 因为你没有指定 session 文件的存放路径. O_RDWR)
解决方法: (1)在 c 盘建立文件夹 tmp (2)打开 php.ini,找到 session.save_path,修改为 session.save_path= "c:/tmp"
4:为什么我向另一网页传送变量时,只得到前半部分,以空格开头的则全部丢失
PHP 代码:-------------------------------