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:调试你的程序
在运行时必须知道某 srmqgg 个变量为何值。我是这样做的,建立一文件 debug.php,其内容如 下:
PHP 代码:-------------------------------------------------------------------------------复制代码
1. 2. 3. 4. 5. 6. 7. 8. 9. Echo "本页得到的_POST 变量有:"; Echo "本页得到的_GET 变量有:"; Print_R($_GET); Ob_Start(); Session_Start(); Echo "
";
10. 11. 12. 13. 14. 15. 16. 17.
Print_R($_POST);
Echo "本页得到的_COOKIE 变量有:"; Print_R($_COOKIE);
Echo "本页得到的_SESSION 变量有:"; Print_R($_SESSION); Echo "
";
--------------------------------------------------------------------------------
然后在 php.ini 中设置:include_path = "c:/php",并将 debug.php 放在此文件夹, 以后就可以在 52wangka 每个网页里包含此文件,查看得到的变量名和值.
3:如何使用 session
凡是与 session 有关的,之前必须调用函数 session_start();
为 session 付值 jinyilai 很简单,如:
PHP 代 ks-yongan 码:--------------------------------------------------------------------------------
[php] Session_start(); $Name = "这是一个 Session 例子"; Session_Register("Name");//注 fuweitek 意,不要写成:Session_Register("$Name");
Echo $_SESSION["Name"]; //之后$_SESSION["Name"]为"这是一个 Session 例子" [/php]
--------------------------------------------------------------------------------
在 php4.2 之 ks-global 后,可以为 session 直接付值:
PHP 代 szhrtz 码:--------------------------------------------------------------------------------
[php] Session_Start(); $_SESSION["name"]="value"; [/php]
--------------------------------------------------------------------------------
取消 session 可以这样:
PHP 代 hthrt 码:--------------------------------------------------------------------------------
[php] session_start(); session_unset(); session_destroy(); [/php]
--------------------------------------------------------------------------------
取 penqiang.net 消某个 session 变量在 php4.2 以上还有 BUG.
注 bjhsjf 意:
1:在调用 Session_Start()之前不能有任何输出.例如下面是错误的. ========================================== 1行 2 行 [php] 3 行 Session_Start();//之前在第一行已经有输出 4 行 ..... 5 516fc.net 行 [/php] ============
==============================
提示 1:
凡是出现"........headers already sent..........",就是 Session_Start()之前向浏览器输出信息. 去掉输出就正常,(COOKIE 也会出现这种错误,错误原因一样)
提示 2:
如果你的 Session_Start()放在循环语句里,并且很难确定之前哪里向浏览器输出信息,可以用下面这种方法:
1 行 [php] Ob_Start(); [/php]
........这里是你的程序......
2:这是什么错误
Warning: session_start(): open(/tmpsess_7d190aa36b4c5ec13a5c1649cc2da23f, O_RDWR) failed:....
因为你没有指定 session 文件的存放路径.
解决方法: (1)在 c 盘建立文件夹 tmp (2)打开 php.ini,找到 session.save_path,修改为 session.save_path= "c:/tmp"
4:为什么我向另一网页传送变量时,只得到前半部分,以空格开头的则全部丢失
PHP 代码:--------------------------------------------------------------------------------
[php] $Var="hello php";//修改为$Var=" $post= "receive.php?Name=".$Var; header("location:$post"); [/php] hello php";试试得到什么结果
--------------------------------------------------------------------------------
receive.php 的内容:
PHP 代码:--------------------------------------------------------------------------------
[php] Echo "
"; Echo $_GET["Name"];
Echo "
"; [/php]
--------------------------------------------------------------------------------
正确的方法是:
PHP 代码:--------------------------------------------------------------------------------
[php] $Var="hello php"; $post= "receive.php?Name=".urlencode($Var); header("location:$post"); [/php]
--------------------------------------------------------------------------------
在接收页面你不需要使用 Urldecode(),变量会自动编码.
5:如何截取指定长度汉字而不会出现以"[/php]"结尾,超出部分以"..."代替
一般来说,要截取的变量来自 Mysql,首先要保证那个字段长度要足够长,一般为 char(200),可以保持 100 个 汉字,包括标点.
PHP 代码:--------------------------------------------------------------------------------
[php] $str="这个字符好长呀,^_^"; $Short_Str=showShort($str,4);//截取前面 4 个汉字,结果为:这个字符... Echo "$Short_Str";
Function csubstr($str,$start,$len) { $strlen=strlen($str); $clen=0; for($i=0;$i<$strlen;$i++,$clen++) { if ($clen>=$start+$len) break; if(ord(substr($str,$i,1))>0xa0) { if ($clen>=$start) $tmpstr.=substr($str,$i,2); $i++; } else { if ($clen>=$start)
$tmpstr.=substr($str,$i,1); } }
return $tmpstr; } Function showShort($str,$len) { $tempstr = csubstr($str,0,$len); if ($str<>$tempstr) $tempstr .= "..."; //要以什么结尾,修改这里就可以.
return $tempstr; }
--------------------------------------------------------------------------------
6:规范你的 SQL 语句
在表格,字段前面加上"`",这样就不会因为误用关键字而出现错误, 当然我并不推荐你使用关键字.
例如
$Sql="INSERT INTO `xltxlm` (`author`, `title`, `id`, `content`, `date`) VALUES ('xltxlm', 'use`', 1, 'cri terion your sql string ', '2003-07-11 00:00:00')"
"`"怎么输入? 在 TAB 键上面.
7:如何使 Html/PHP 格式的字符串不被解释,而是照原样显示
PHP 代码:--------------------------------------------------------------------------------
[php] $str="
PHP
"; Echo "被解释过的: ".$str."
经过处理的:"; Echo [/php] htmlentities(nl2br($str));
--------------------------------------------------------------------------------
8:怎么在函数里取得函数外的变量值
PHP 代码:--------------------------------------------------------------------------------
[php] $a="PHP"; foo(); Function foo() { global $a;//删除这里看看是什么结果
Echo "$a"; } [/php]
--------------------------------------------------------------------------------
9:我怎么知道系统默认支持什么函数
PHP 代码:--------------------------------------------------------------------------------
[php] $arr = get_defined_functions(); Function php() { } echo Echo "
"; "这里显示系统所支持的所有函数,和自定以函数 phpn";
print_r($arr); echo [/php] -------------------------------------------------------------------------------"
";
10:如何比较两个日期相差几天
PHP 代码:----------------------------
上一篇:
php链接mysql代码_php代码
下一篇:
哈弗F7 VS名爵HS,谁更懂得年轻人的心?