当前所在位置:珠峰网资讯 >> 计算机 >> IT教育 >> 正文
liunx编程之php常见问题
发布时间:2011/5/18 10:38:37 来源: 编辑:

  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代码:

  <?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放在此文件夹,

  以后就可以在每个网页里包含此文件,查看得到的变量名和值.

  3:如何使用session

  凡是与session有关的,之前必须调用函数session_start();

  为session付值很简单,如:

  PHP代码:

  <?php

  Session_start();

  $Name = "这是一个Session例子";

  Session_Register("Name");//注意,不要写成:Session_Register("$Name");

  Echo $_SESSION["Name"];

  //之后$_SESSION["Name"]为"这是一个Session例子"

  ?>

  在php4.2之后,可以为session直接付值:

  PHP代码:

  <?PHP

  Session_Start();

  $_SESSION["name"]="value";

  ?>

  取消session可以这样:

  PHP代码:

  <?php

  session_start();

  session_unset();

  session_destroy();

  ?>

  取消某个session变量在php4.2以上还有BUG.

  注意:

  1:在调用Session_Start()之前不能有任何输出.例如下面是错误的.

  ==========================================

  1行

  2行 <?PHP

  3行 Session_Start();//之前在第一行已经有输出

  4行 .....

  5行 ?>

  ==========================================

广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved