电脑安全

您当前的位置:主页 > 电脑安全 >

php常见问题和解决方法-网络编程

来源:[db:来源]标题:   文件    编辑:电脑技术全能网 时间:2019-09-22 18:27

原标题:php常见问题和解决方法-网络编程
   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代码:--------------------------------------------------------------------------------<?PHPOb_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代码:--------------------------------------------------------------------------------<?phpSession_start();$Name="这是一个Session例子";Session_Register("Name");//留神,不要写成:Session_Register("$Name");Echo$_SESSION["Name"];//以后$_SESSION["Name"]为"这是一个Session例子"?>--------------------------------------------------------------------------------在php4.2以后,能够为session间接付值:PHP代码:--------------------------------------------------------------------------------<?PHPSession_Start();$_SESSION["name"]="value";?>--------------------------------------------------------------------------------撤消session能够如许:PHP代码:--------------------------------------------------------------------------------<?phpsession_start();session_unset();session_destroy();?>--------------------------------------------------------------------------------撤消某个session变量在php4.2以上另有BUG.留神:1:在挪用Session_Start()之前不能有任何输入.比方上面是过错的.==========================================1行2行<?PHP3行Session_Start();//之前在第一行曾经有输入4行.....5行?>==========================================提醒1:但凡呈现"........headersalreadysent..........",就是Session_Start()之前向扫瞄器输入信息.去掉输入就畸形,(COOKIE也会呈现这类过错,过错起因一样)提醒2:假如你的Session_Start()放在轮回语句里,而且很难断定之前那里向扫瞄器输入信息,能够用上面这类方式:1行<?PHPOb_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"4:为甚么我向另一网页传递变量时,只失掉前半局部,以空格扫尾的则全体丧失PHP代码:--------------------------------------------------------------------------------<?php$Var="hellophp";//修正为$Var="hellophp";尝尝失掉甚么成果$post="receive.php?Name=".$Var;header("location:$post");?>--------------------------------------------------------------------------------receive.php的内容:PHP代码:--------------------------------------------------------------------------------<?PHPEcho"<pre>";Echo$_GET["Name"];Echo"</pre>";?>--------------------------------------------------------------------------------准确的方式是:PHP代码:--------------------------------------------------------------------------------<?php$Var="hellophp";$post="receive.php?Name=".urlencode($Var);header("location:$post");?>--------------------------------------------------------------------------------在接受页面你不须要应用Urldecode(),变量会主动编码.5:怎样截取指定长度汉字而不会呈现以"?>"开头,超越局部以"..."取代个别来讲,要截取的变量来自Mysql,起首要保障谁人字段长度要充足长,个别为char(200),能够坚持100个汉字,包含标点.PHP代码:--------------------------------------------------------------------------------<?PHP$str="这个字符好长呀,^_^";$Short_Str=showShort($str,4);//截取后面4个汉字,成果为:这个字符...Echo"$Short_Str";Functioncsubstr($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;}FunctionshowShort($str,$len){$tempstr=csubstr($str,0,$len);if($str<>$tempstr)$tempstr.="...";//要以甚么开头,修正这里便可以.return$tempstr;}--------------------------------------------------------------------------------6:标准你的SQL语句在表格,字段后面加上"`",如许就不会由于误用要害字而呈现过错,固然我并不推举你应用要害字.比方$Sql="INSERTINTO`xltxlm`(`author`,`title`,`id`,`content`,`date`)VALUES('xltxlm','use`',1,'criterionyoursqlstring','2003-07-1100:00:00')""`"怎样输出?在TAB键下面.7:怎样使Html/PHP格局的字符串不被说明,而是照原样表现PHP代码:--------------------------------------------------------------------------------<?PHP$str="<h1>PHP</h1>";Echo"被说明过的:".$str."<br>经由处置的:";Echohtmlentities(nl2br($str));?>--------------------------------------------------------------------------------8:怎样在函数里获得函数外的变量值PHP代码:--------------------------------------------------------------------------------<?PHP$a="PHP";foo();Functionfoo(){global$a;//删除这里看看是甚么成果Echo"$a";}?>--------------------------------------------------------------------------------9:我怎样晓得体系默许支撑甚么函数PHP代码:--------------------------------------------------------------------------------<?php$arr=get_defined_functions();Functionphp(){}echo"<pre>";Echo"这里表现体系所支撑的全部函数,和自定以函数php/n";print_r($arr);echo"</pre>";?>--------------------------------------------------------------------------------10:怎样比拟两个日期相差几天PHP代码:--------------------------------------------------------------------------------<?PHP$Date_1="2003-7-15";//也能够是:$Date_1="2003-6-2523:29:14";$Date_2="1982-10-1";$Date_List_1=explode("-",$Date_1);$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天^_^";?>--------------------------------------------------------------------------------11:为甚么我进级PHP后,本来的顺序呈现满屏的Notice:Undefinedvariable:这是忠告的意义,因为变量不决义惹起的.翻开php.ini,找到最上面的error_reporting,修正为error_reporting=E_ALL&~E_NOTICE关于Parseerror过错error_reporting(0)无奈封闭.假如你想封闭任何过错提醒,翻开php.ini,找到display_errors,设置为display_errors=Off.当前任何过错都不会提醒.那甚么是error_reporting?12:我想在每个文件最前,最初面都加上一文件.但一个一个增加很费事1:翻开php.ini文件设置include_path="c:"2:写两个文件auto_prepend_file.php和auto_append_file.php保留在c盘,他们将主动依靠在每个php文件的头部和尾部.3:在php.ini中找到:AutomaticallyaddfilesbeforeorafteranyPHPdocument.auto_prepend_file=auto_prepend_file.php;依靠在头部auto_append_file=auto_append_file.php;依靠在尾部当前你每个php文件就相称于PHP代码:--------------------------------------------------------------------------------<?phpInclude"auto_prepend_file.php";.......//这里是你的顺序Include"auto_append_file.php";?>--------------------------------------------------------------------------------13:怎样应用PHP上传文件PHP代码:--------------------------------------------------------------------------------<html><head><title>上载文件表单</title></head><body><formenctype="multipart/form-data"action=""method="post">请抉择文件:<br><inputname="upload_file"type="file"><br><inputtype="submit"value="上传文件"></form></body></html><?$upload_file=$_FILES['upload_file']['tmp_name'];$upload_file_name=$_FILES['upload_file']['name'];if($upload_file){$file_size_max=1000*1000;//1M限度文件上传最大容量(bytes)$store_dir="d:/";//上传文件的贮存地位$accept_overwrite=1;//能否同意笼罩雷同文件//检讨文件巨细if($upload_file_size>$file_size_max){echo"对不起,你的文件容量大于划定";exit;}//检讨读写文件if(file_exists($store_dir.$upload_file_name)&&!$accept_overwrite){Echo"存在雷同文件名的文件";exit;}//复制文件到指定名目if(!move_uploaded_file($upload_file,$store_dir.$upload_file_name)){echo"复制文件失利";exit;}}Echo"<p>你上传了文件:";echo$_FILES['upload_file']['name'];echo"<br>";//客户端呆板文件的原称号。Echo"文件的MIME范例为:";echo$_FILES['upload_file']['type'];//文件的MIME范例,须要扫瞄器供给该信息的支撑,比方“image/gif”。echo"<br>";Echo"上传文件巨细:";echo$_FILES['upload_file']['size'];//已上传文件的巨细,单元为字节。echo"<br>";Echo"文件上传后被常设贮存为:";echo$_FILES['upload_file']['tmp_name'];//文件被上传后在效劳端贮存的常设文件名。echo"<br>";$Erroe=$_FILES['upload_file']['error'];switch($Erroe){case0:Echo"上传胜利";break;case1:Echo"上传的文件超越了php.ini中upload_max_filesize选项限度的值.";break;case2:Echo"上传文件的巨细超越了HTML表单中MAX_FILE_SIZE选项指定的值。";break;case3:Echo"文件只要局部被上传";break;case4:Echo"没有文件被上传";break;}?>--------------------------------------------------------------------------------14:怎样设置GD库上面是我的设置进程1:用dos下令(也能够手动操纵,拷贝dlls文件夹里全部dll文件到system32名目下)copyc:/php/dlls/*.dllc:/windows/system32/2:翻开php.ini设置extension_dir="c:/php/extensions/";3:extension=php_gd2.dll;把extension后面的逗号去掉,假如没有php_gd2.dll,php_gd.dll也一样,保障确切存在这一文件c:/php/extensions/php_gd2.dll4:运转上面顺序停止测试PHP代码:--------------------------------------------------------------------------------<?phpOb_end_flush();//留神,在此之前不能向扫瞄器输入任何信息,要留神能否设置了auto_prepend_file.header("Content-type:image/png");$im=@imagecreate(200,100)ordie("无奈创立图象");$background_color=imagecolorallocate($im,0,0,0);$text_color=imagecolorallocate($im,230,140,150);imagestring($im,3,30,50,"ASimpleTextString",$text_color);imagepng($im);?>

上一篇:PHP 5.0对象模型深度探索之绑定-网络编程

下一篇:没有了