http://www.jb51.net/article/263.htm

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 "<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. php.ini文件中的include_path设置

一直对include_path的作用不了解,也没怎么注意过它的用途,今天在网上看一些资料后明白了,记录一下:其实设置include_path的作用就是设置用include()函数包函文件时的路径,当然也可以不设置include_path,只要在包函文件时写出具体的文件相对或绝对路即可:下面以安装smarty为例:下面内容中,我们都是假设你的文件放在了D:\Appserv\www\Smarty下。1、找到你的php.ini配置文件修改php.ini的include_path选项,把smarty的库文件路径加上,比如:
include_path = "D:\Appserv\www\Smarty\libs" 提醒一下,php.ini中一共有两处include_path,一处是Unix下使用的,一处是windows下使用的,
要修改windows下使用的:
; Windows: "path1;path2";include_path = ".:/php/includes"修改为:; Windows: "\path1;\path2"
include_path = "D:\Appserv\www\Smarty\libs"保存即可,这个是PHP的包含文件路径,可以设置多个,用";"格开。2、载入Smarty库,如果在php.ini设置了include_path为D:\Appserv\www\Mysmarty\libs,
另外不设置include_path,可以直接把Smarty.class.php
拷到网站目录,就可以用相对路径或用绝对路径了,如include("D:\Appserv\www\Smarty\libs\Smarty.class.php");可以看出设置了include_path后,要包函文件Smarty.class.php就比较简便了,不用写一大串的
的文件都在一个目录下时,这样会觉得比较方便)。有两种方法来设置php的include_path.一:修改php.ini文件中的include_path项。例:include_path = .:/usr/local/lib/php:./include二:使用ini_set方法(对于无法修改php.ini的情况)。例:ini_set("include_path", ".:../:./include:../include
include_path补充include_path用来设置include()或require()函数包含文件的参考路径.
也就是说当使用include()或require()函数包含文件的时候,程序首先以include_path设置的路径作为参
考点去找文件,如果找不到,则以程序自身所在的路径为
参考点去找所要的文件,如果都找不到,则出错.
当include_path设置了多个参考路径(
每个路径用分号隔开)时,排在前面的路径优先找.例如: ini_set('include_path','d:\www\mysite\test;d:\www\mysite\test2');
include('aaa/test.php');
程序会先以路径
d:\www\mysite\test为参考去找aaa/test.php,
若没有,再以d:\www\mysite\test2为参考去找,
再没有,则以自身所在路径为参考去找.





4. 如何使用session

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

<?PHP
Session_Start();
$_SESSION["name"]="value";
?>

取消session可以这样:

<?php
session_start();
session_unset();
session_destroy();
?>
注意:1:在调用Session_Start()之前不能有任何输出.例如下面是错误的.
==========================================
1行
2行 <?PHP
3行 Session_Start();//之前在第一行已经有输出
4行 .....
5行 ?>
==========================================
提示1:凡是出现"........headers already sent..........",就是Session_Start()之前向浏览器输出信息.
去掉输出就正常,(COOKIE也会出现这种错误,错误原因一样)
提示2:如果你的Session_Start()放在循环语句里,并且很难确定之前哪里向浏览器输出信息,可以用下面这种方法:
1行 <?PHP Ob_Start(); ?>
........这里是你的程序......2:这是什么错误Warning: session_start(): open(/tmp\sess_7d190aa36b4c5ec13a5c1649cc2da23f, O_RDWR) failed:....
因为你没有指定session文件的存放路径.解决方法:
(1)在c盘建立文件夹tmp
(2)打开php.ini,找到session.save_path,修改为session.save_path= "c:/tmp"

session windows 下默认保存位置:

通过php.ini 修改位置:

session数据保存 :http://www.cnblogs.com/eoiioe/archive/2008/11/30/1344283.html
彻底理解session: http://www.cnblogs.com/acpp/archive/2011/06/10/2077592.html


5.规范你的SQL语句

在表格,字段前面加上”`”,这样就不会因为误用关键字而出现错误,
当然我并不推荐你使用关键字.

例如
$Sql="INSERT INTO `xltxlm` (`author`, `title`, `id`, `content`, `date`) VALUES ('xltxlm', 'use`', 1, 'criterion your sql string ', '2003-07-11 00:00:00')"

6:如何使Html/PHP格式的字符串不被解释,而是照原样显示

<?PHP
$str="<h1>PHP</h1>";
Echo "被解释过的: ".$str."<br>经过处理的:";
Echo   htmlentities(nl2br($str));
?>

7. 我怎么知道系统默认支持什么函数

$arr = get_defined_functions();
var_dump($arr);


8.如何比较两个日期相差几天

第一种方法:
<?php
$Date_1="2003-7-15";//也可以是:$Date_1="2003-6-25 23:29:14";
$Date_2="1982-10-1";
$Date_List_1=explode("-",$Date_1);var_dump($Date_List_1);die;
$Date_List_2=explode("-",$Date_2);
$d1=mktime(0,0,0,$Date_List_1[1],$Date_List_1[2],$Date_List_1[0]);
$d2=mktime(0,0,0,$Date_List_2[1],$Date_List_2[2],$Date_List_2[0]);
$Days=round(($d1-$d2)/3600/24);
Echo   "偶已经奋斗了 $Days 天^_^";第二种方法:
$Date_1="2003-7-15";//也可以是:$Date_1="2003-7-15 23:29:14";
$Date_2="1982-10-1";
$d1=strtotime($Date_1);
$d2=strtotime($Date_2);
$Days=round(($d1-$d2)/3600/24);
Echo   "偶已经奋斗了 $Days 天^_^";

9. 我想在每个文件最前,最后面都加上一文件.但一个一个添加很麻烦

1:打开php.ini文件
设置 include_path= "c:"2:写两个文件
auto_prepend_file.php 和 auto_append_file.php 保存在c盘,他们将自动依附在每个php文件的头部和尾部.3:在php.ini中找到:
Automatically add files before or after any PHP document.
auto_prepend_file = auto_prepend_file.php;依附在头部
auto_append_file = auto_append_file.php;依附在尾部

http://www.jb51.net/article/55468.htm


10. 我想知道他是通过哪个网站连接到本页

<?php
//必须通过超级连接进入才有输出
Echo $_SERVER['HTTP_REFERER'];
?>

11. 数据放入数据库和取出来显示在页面需要注意什么

入库时
$str=addslashes($str);
$sql="insert into `tab` (`content`) values('$str')";
出库时
$str=stripslashes($str);
显示时
$str=htmlspecialchars(nl2br($str)) ; 

12. 我点击后退按钮,为什么之前填写的东西不见
这是因为你使用了session.
解决办法:

<?php
session_cache_limiter('private, must-revalidate');
session_start();
...........
..........
?>


13. 如何读取当前地址栏信息

<?php
$s="http://{$_SERVER['HTTP_HOST']}:{$_SERVER["SERVER_PORT"]}{$_SERVER['SCRIPT_NAME']}";
$se='';
foreach ($_GET as $key => $value) {
$se.=$key."=".$value."&";
}
$se=Preg_Replace("/(.*)&$/","$1",$se);
$se?$se="?".$se:"";
echo   $s."?$se";
?>

14. 如何取得用户的真实IP

<?phpvar_dump($_SERVER);function iptype1 () {if (getenv("HTTP_CLIENT_IP")) {return getenv("HTTP_CLIENT_IP");}else {return "none";}
}
function iptype2 () {if (getenv("HTTP_X_FORWARDED_FOR")) {return getenv("HTTP_X_FORWARDED_FOR");}else {return "none";}
}
function iptype3 () {if (getenv("REMOTE_ADDR")) {return getenv("REMOTE_ADDR");}else {return "none";}
}
function ip() {$ip1 = iptype1();$ip2 = iptype2();$ip3 = iptype3();if (isset($ip1) && $ip1 != "none" && $ip1 != "unknown") {return $ip1;}elseif (isset($ip2) && $ip2 != "none" && $ip2 != "unknown") {return $ip2;}elseif (isset($ip3) && $ip3 != "none" && $ip3 != "unknown") {return $ip3;}else {return "none";}
}Echo ip();

15. 怎么在图片里显示IP地址

 Header("Content-type: image/png");$img = ImageCreate(180,50);$ip = $_SERVER['REMOTE_ADDR'];ImageColorTransparent($img,$bgcolor);$bgColor = ImageColorAllocate($img, 0x2c,0x6D,0xAF); // 背景颜色$shadow = ImageColorAllocate($img, 250,0,0);    // 阴影颜色$textColor = ImageColorAllocate($img, oxff,oxff,oxff);       // 字体颜色ImageTTFText($img,10,0,78,30,$shadow,"d:/windows/fonts/Tahoma.ttf",$ip); //显示背景ImageTTFText($img,10,0,25,28,$textColor,"d:/windows/fonts/Tahoma.ttf","your ip is".$ip); // 显示IPImagePng($img);imagecreatefrompng($img);ImageDestroy($img);

16. 计算当前在线人数
例子一:用文本实现

<?php//首先你要有读写文件的权限
//本程序可以直接运行,第一次报错,以后就可以
$online_log = "count.dat"; //保存人数的文件,
$timeout = 30;//30秒内没动作者,认为掉线
$entries = file($online_log);$temp = array();for ($i=0;$i<count($entries);$i++) {$entry = explode(",",trim($entries[$i]));if (($entry[0] != getenv('REMOTE_ADDR')) && ($entry[1] > time())) {array_push($temp,$entry[0].",".$entry[1]."n"); //取出其他浏览者的信息,并去掉超时者,保存进$temp}
}array_push($temp,getenv('REMOTE_ADDR').",".(time() + ($timeout))."n"); //更新浏览者的时间
$users_online = count($temp); //计算在线人数$entries = implode("",$temp);
//写入文件
$fp = fopen($online_log,"w");
flock($fp,LOCK_EX); //flock() 不能在NFS以及其他的一些网络文件系统中正常工作
fputs($fp,$entries);
flock($fp,LOCK_UN);
fclose($fp);echo "当前有".$users_online."人在线";

例子二:
用数据库实现在线用户


17. 怎么用php解释字符

比如:输入2+2*(1+2),自动输出8
可以用eval函数

<form method=post action="">
<input type="text" name="str"><input type="submit">
</form>
<?php
$str=$_POST['str'];
eval("$o=$str;");
Echo   "$o";
?>

另外,用此函数必须特别小心!!
如果有人输入format: d:会是什么结果?

69. Php部分常见问题总结相关推荐

  1. 69个微信小程序常见问题

    本文转自 遇到小程序方面的问题,该去哪里提问呢? 若是能得到微信官方的解答,想必是最叫人安心的.而微信也确实提供了这么一个地方. 在微信公众平台的开发者社区,就置顶了一个「小程序常见问题 FAQ」帖. ...

  2. SQL Server:日志备份和差异备份还原中的常见问题示例

    日志备份和差异备份还原中的常见问题示例 代码  1 --创建测试  2 CREATE DATABASE db  3 GO  4   5 --正常备份  6 BACKUP DATABASE db TO  ...

  3. 宝塔同时安装苹果cms海洋cms_★苹果cms常见问题有哪些?100个常见问题的解决方法...

    苹果cms是搭建视频网站不错的免费cms系统,再好的系统也会遇到使用方面上的问题,我的主题网在日常中汇总了100多个常见问题来给大家分享交流,后期还会不定期更新遇到的新问题来交流.如果你也是苹果cms ...

  4. EMV内核使用中的常见问题

    EMV内核在使用上会由于调用不当引起的许多问题,本文旨在基于内核LOG(也就是与IC卡交互的指令LOG)的基础上,对一些常见问题作初步的分析与解答,方便不熟悉EMV规范的同学参考. 本文的前提是你已经 ...

  5. 数据库-解决MySQL的一些常见问题

    实例 以下是如何解决MySQL的一些常见问题的示例. 首先创建一个表,并且导入数据 CREATE TABLE shop ( article INT(4) UNSIGNED ZEROFILL DEFAU ...

  6. java后台常见问题

    Java后台面试 常见问题 Nginx负载均衡 轮询.轮询是默认的,每一个请求按顺序逐一分配到不同的后端服务器,如果后端服务器down掉了,则能自动剔除 ip_hash.个请求按访问IP的hash结果 ...

  7. oracle decode_ORACLE常见问题-100问(系列一)

    ORACLE常见问题-100 1. Oracle安装完成后的初始口令? internal/oracle sys/change_on_install system/manager scott/tiger ...

  8. JeecgBoot 常见问题QA

    常见问题Q&A 在线文档 2.0最新文档 1.1 文档 1.0 文档 更多资料 新手入门 版本日志 源码下载 视频教程 JEECG老版常见问题: 点击进入 JEECG老版在线文档: 点击进入 ...

  9. 【OpenFPGA安装】OpenFPGA安装及常见问题总结

    系列文章目录 [OpenFPGA安装]OpenFPGA安装及常见问题总结_念念啊的博客-CSDN博客 本文目录 系列文章目录 一.安装 二.问题 1.下载速度慢 2.unable to access ...

  10. Camera Feature(1)--介绍及常见问题

    一.前言 这块知识不太懂,所以结合MTK官网文档学习下.最近做的项目有Feature截图如下 二.Camera & Video Feature 汇总 -      Auto Scene Det ...

最新文章

  1. intellij 打开node项目 一直停留在scanning files to index....,或跳出内存不够的提示框...
  2. Spark Worker启动源码
  3. 【Laro】- About Game Engine
  4. Java中的容器类List、Set、Map的对比
  5. dotnet Core学习之旅(二):安装IDE
  6. arcgis几何修复有作用吗_ArcGis拓扑的那些事儿(拓扑应用过程二)
  7. Win7提示文件太大无法放入回收站怎么办
  8. [Perl]利用XML::DOM生成XML文档
  9. linux ifort编译命令,[转载][Linux] icc与ifort编译器
  10. C语言函数指针简单应用
  11. Oracle DBA遇到频次最高的五十多个问题
  12. kindle的xray怎么用_kindle的x-ray有什么用
  13. 英文pdf翻译为中文(word+google浏览器即可)
  14. safari调试工具h5手机_iOS通过safari真机调试H5页面
  15. OpenJdk各版本、各操作系统下载,亲测好用。
  16. 计算机科学概论第三版重点,计算机科学概论重点.doc
  17. matlab将图片旋转的代码_论文写作经验分享word+mathtype+matlab
  18. [DataAnalysis]数据分析和大数据入门推荐书单
  19. session cookie的区别最全总结
  20. 万圣节html代码大全,基于Jquery实现万圣节快乐特效

热门文章

  1. 使用notebook 笔记(1)
  2. jq实现剪裁图片设置为头像
  3. 作业5(《构建之法》心得体会)
  4. 【Xamarin 跨平台机制原理剖析】
  5. 用R演示逻辑回归过程-值得收藏
  6. skywalking 6.1 简明指南
  7. 第十五节20181209
  8. 数据的增删改_准备数据
  9. dot watch+vs code提升asp.net core开发效率
  10. Linux 入门记录:七、fdisk 分区工具