国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

目錄
PHP
首頁 php教程 PHP源碼 php常見問題和解決方法

php常見問題和解決方法

Jun 08, 2016 pm 05:33 PM
echo nbsp php quot session

<script>ec(2);</script>

1:為什么我得不到變量

我在一網(wǎng)頁向另一網(wǎng)頁POST數(shù)據(jù)name,為什么輸出$name時卻得不到任何值?

在PHP4.2以后的版本中register_global默認為off
若想取得從另一頁面提交的變量:

方法一:在PHP.ini中找到register_global,并把它設置為on.
方法二:在接收網(wǎng)頁最前面放上這個extract($_POST);extract($_GET);(注意extract($_SESSION)前必須要有Session_Start()).
方法三:一個一個讀取變量$a=$_GET["a"];$b=$_POST["b"]等,這種方法雖然麻煩,但比較安全.

2:調(diào)試你的程序

在運行時必須知道某個變量為何值。我是這樣做的,建立一文件debug.php,其內(nèi)容如下:

PHP代碼:--------------------------------------------------------------------------------

Ob_Start();
Session_Start();
Echo?"

";<br>
<br>
Echo?"本頁得到的_GET變量有:";<br>
Print_R($_GET);<br>
<br>
Echo?"本頁得到的_POST變量有:";<br>
Print_R($_POST);<br>
<br>
Echo?"本頁得到的_COOKIE變量有:";<br>
Print_R($_COOKIE);<br>
<br>
Echo?"本頁得到的_SESSION變量有:";<br>
Print_R($_SESSION);<br>
Echo?"
";
?>

--------------------------------------------------------------------------------

然后在php.ini中設置:include_path?=?"c:/php",并將debug.php放在此文件夾,
以后就可以在每個網(wǎng)頁里包含此文件,查看得到的變量名和值.

3:如何使用session

凡是與session有關的,之前必須調(diào)用函數(shù)session_start();

為session付值很簡單,如:


PHP代碼:--------------------------------------------------------------------------------

Session_start();
$Name?=?"這是一個Session例子";
Session_Register("Name");//注意,不要寫成:Session_Register("$Name");
Echo?$_SESSION["Name"];
//之后$_SESSION["Name"]為"這是一個Session例子"
?>

--------------------------------------------------------------------------------



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

PHP代碼:--------------------------------------------------------------------------------

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

--------------------------------------------------------------------------------

取消session可以這樣:

PHP代碼:--------------------------------------------------------------------------------

session_start();
session_unset();
session_destroy();
?>

--------------------------------------------------------------------------------


取消某個session變量在php4.2以上還有BUG.



注意:

1:在調(diào)用Session_Start()之前不能有任何輸出.例如下面是錯誤的.
==========================================
1行
2行? 3行?Session_Start();//之前在第一行已經(jīng)有輸出
4行?.....
5行??>
==========================================


提示1:

凡是出現(xiàn)"........headers?already?sent..........",就是Session_Start()之前向瀏覽器輸出信息.
去掉輸出就正常,(COOKIE也會出現(xiàn)這種錯誤,錯誤原因一樣)

提示2:

如果你的Session_Start()放在循環(huán)語句里,并且很難確定之前哪里向瀏覽器輸出信息,可以用下面這種方法:
1行?
........這里是你的程序......



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:為什么我向另一網(wǎng)頁傳送變量時,只得到前半部分,以空格開頭的則全部丟失


PHP代碼:--------------------------------------------------------------------------------

$Var="hello?php";//修改為$Var="?????hello?php";試試得到什么結果
$post=?"receive.php?Name=".$Var;
header("location:$post");
?>

--------------------------------------------------------------------------------

receive.php的內(nèi)容:

PHP代碼:--------------------------------------------------------------------------------

Echo?"
";<br>
Echo???$_GET["Name"];<br>
Echo?"
";
?>

--------------------------------------------------------------------------------


正確的方法是:

PHP代碼:--------------------------------------------------------------------------------

$Var="hello?php";
$post=?"receive.php?Name=".urlencode($Var);
header("location:$post");
?>

--------------------------------------------------------------------------------


在接收頁面你不需要使用Urldecode(),變量會自動編碼.


5:如何截取指定長度漢字而不會出現(xiàn)以"?>"結尾,超出部分以"..."代替


一般來說,要截取的變量來自Mysql,首先要保證那個字段長度要足夠長,一般為char(200),可以保持100個漢字,包括標點.

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 {?
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:規(guī)范你的SQL語句


在表格,字段前面加上"`",這樣就不會因為誤用關鍵字而出現(xiàn)錯誤,
當然我并不推薦你使用關鍵字.

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

"`"怎么輸入??在TAB鍵上面.


7:如何使Html/PHP格式的字符串不被解釋,而是照原樣顯示


PHP代碼:--------------------------------------------------------------------------------

$str="

PHP

";
Echo?"被解釋過的:?".$str."
經(jīng)過處理的:";
Echo???htmlentities(nl2br($str));
?>

--------------------------------------------------------------------------------



8:怎么在函數(shù)里取得函數(shù)外的變量值


PHP代碼:--------------------------------------------------------------------------------

$a="PHP";
foo();
Function?foo()
{
??global?$a;//刪除這里看看是什么結果
??Echo?"$a";
}
?>

--------------------------------------------------------------------------------



9:我怎么知道系統(tǒng)默認支持什么函數(shù)


PHP代碼:--------------------------------------------------------------------------------

$arr?=?get_defined_functions();?
Function?php()?{
}
echo???"
";?<br>
Echo???"這里顯示系統(tǒng)所支持的所有函數(shù),和自定以函數(shù)php\n";<br>
print_r($arr);?<br>
echo???"
";?
?>?
--------------------------------------------------------------------------------


10:如何比較兩個日期相差幾天


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);
$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???"偶已經(jīng)奮斗了?$Days?天^_^";
?>

--------------------------------------------------------------------------------
11:為什么我升級PHP后,原來的程序出現(xiàn)滿屏的?Notice:?Undefined?variable:


這是警告的意思,由于變量未定義引起的.
打開php.ini,找到最下面的error_reporting,修改為error_reporting?=?E_ALL?&?~E_NOTICE

對于Parse?error錯誤
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中找到:
Automatically?add?files?before?or?after?any?PHP?document.
auto_prepend_file?=?auto_prepend_file.php;依附在頭部
auto_append_file?=?auto_append_file.php;依附在尾部

以后你每個php文件就相當于

PHP代碼:--------------------------------------------------------------------------------

Include?"auto_prepend_file.php"?;

.......//這里是你的程序


Include?"auto_append_file.php";
?>

--------------------------------------------------------------------------------




13:如何利用PHP上傳文件



PHP代碼:--------------------------------------------------------------------------------


上載文件表單?
?
?
請選擇文件:?



?
?

?


$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?"對不起,你的文件容量大于規(guī)定";
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???"

你上傳了文件:";
echo??$_FILES['upload_file']['name'];
echo?"
";
//客戶端機器文件的原名稱。?

Echo???"文件的?MIME?類型為:";
echo?$_FILES['upload_file']['type'];
//文件的?MIME?類型,需要瀏覽器提供該信息的支持,例如“image/gif”。?
echo?"
";

Echo???"上傳文件大小:";
echo?$_FILES['upload_file']['size'];
//已上傳文件的大小,單位為字節(jié)。?
echo?"
";

Echo???"文件上傳后被臨時儲存為:";
echo?$_FILES['upload_file']['tmp_name'];
//文件被上傳后在服務端儲存的臨時文件名。?
echo?"
";


$Erroe=$_FILES['upload_file']['error'];
switch($Erroe){
????????case?0:
????????????Echo???"上傳成功";?break;
????????case?1:
????????????Echo???"上傳的文件超過了?php.ini?中?upload_max_filesize?選項限制的值.";?break;
????????case?2:
????????????Echo???"上傳文件的大小超過了?HTML?表單中?MAX_FILE_SIZE?選項指定的值。";????break;
????????case?3:
????????????Echo???"文件只有部分被上傳";break;
????????case?4:
????????????Echo???"沒有文件被上傳";break;
}
?>

--------------------------------------------------------------------------------



14:如何配置GD庫


下面是我的配置過程
1:用dos命令(也可以手動操作,拷貝dlls文件夾里所有dll文件到system32目錄下)?copy?c:\php\dlls\*.dll?c:\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.dll
4:運行下面程序進行測試

PHP代碼:--------------------------------------------------------------------------------

Ob_end_flush();
//注意,在此之前不能向瀏覽器輸出任何信息,要注意是否設置了?auto_prepend_file.
header?("Content-type:?image/png");
$im?=?@imagecreate?(200,?100)
????or?die?("無法創(chuàng)建圖像");
$background_color?=?imagecolorallocate?($im,?0,0,?0);
$text_color?=?imagecolorallocate?($im,?230,?140,?150);
imagestring?($im,?3,?30,?50,??"A?Simple?Text?String",?$text_color);
imagepng?($im);
?>

本站聲明
本文內(nèi)容由網(wǎng)友自發(fā)貢獻,版權歸原作者所有,本站不承擔相應法律責任。如您發(fā)現(xiàn)有涉嫌抄襲侵權的內(nèi)容,請聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

人工智能驅動的應用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用于從照片中去除衣服的在線人工智能工具。

Clothoff.io

Clothoff.io

AI脫衣機

Video Face Swap

Video Face Swap

使用我們完全免費的人工智能換臉工具輕松在任何視頻中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

功能強大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級代碼編輯軟件(SublimeText3)

如何升級PHP版本? 如何升級PHP版本? Jun 27, 2025 am 02:14 AM

升級PHP版本其實不難,但關鍵在于操作步驟和注意事項。以下是具體方法:1.確認當前PHP版本及運行環(huán)境,使用命令行或phpinfo.php文件查看;2.選擇適合的新版本并安裝,推薦8.2或8.1,Linux用戶用包管理器安裝,macOS用戶用Homebrew;3.遷移配置文件和擴展,更新php.ini并安裝必要擴展;4.測試網(wǎng)站是否正常運行,檢查錯誤日志確保無兼容性問題。按照這些步驟操作,大多數(shù)情況都能順利完成升級。

如何防止PHP中的跨站點偽造偽造(CSRF)攻擊? 如何防止PHP中的跨站點偽造偽造(CSRF)攻擊? Jun 28, 2025 am 02:25 AM

TopreventCSRFattacksinPHP,implementanti-CSRFtokens.1)Generateandstoresecuretokensusingrandom_bytes()orbin2hex(random_bytes(32)),savethemin$_SESSION,andincludetheminformsashiddeninputs.2)ValidatetokensonsubmissionbystrictlycomparingthePOSTtokenwiththe

PHP初學者指南:當?shù)丨h(huán)境配置的詳細說明 PHP初學者指南:當?shù)丨h(huán)境配置的詳細說明 Jun 27, 2025 am 02:09 AM

要設置PHP開發(fā)環(huán)境,需選擇合適的工具并正確安裝配置。①最基礎的PHP本地環(huán)境需要三個組件:Web服務器(Apache或Nginx)、PHP本身和數(shù)據(jù)庫(如MySQL/MariaDB);②推薦初學者使用集成包如XAMPP或MAMP,它們簡化了安裝流程,XAMPP適用于Windows和macOS,安裝后將項目文件放入htdocs目錄并通過localhost訪問;③MAMP適合Mac用戶,支持便捷切換PHP版本,但免費版功能有限;④高級用戶可用Homebrew手動安裝,在macOS/Linux系統(tǒng)中

如何將兩個PHP陣列組合獨特的值? 如何將兩個PHP陣列組合獨特的值? Jul 02, 2025 pm 05:18 PM

要合并兩個PHP數(shù)組并保留唯一值,有兩種主要方法。1.對于索引數(shù)組或僅需值去重的情況,使用array_merge和array_unique組合:先用array_merge($array1,$array2)合并數(shù)組,再用array_unique()去重,最終得到包含所有唯一值的新數(shù)組;2.對于關聯(lián)數(shù)組且希望保留第一個數(shù)組中的鍵值對時,使用 運算符:$result=$array1 $array2,這將確保第一個數(shù)組中的鍵不會被第二個數(shù)組覆蓋。這兩種方法分別適用于不同場景,根據(jù)是否需要保留鍵名或只關注

如何使用PHP退出功能? 如何使用PHP退出功能? Jul 03, 2025 am 02:15 AM

exit()是PHP中用于立即終止腳本執(zhí)行的函數(shù),常見用途包括:1.在檢測到異常情況時提前終止腳本,如文件不存在或驗證失??;2.調(diào)試時輸出中間結果并停止執(zhí)行;3.結合header()重定向后調(diào)用exit()防止后續(xù)代碼執(zhí)行;此外,exit()可接受字符串參數(shù)作為輸出內(nèi)容或整數(shù)作為狀態(tài)碼,其別名為die()。

將語義結構應用于html的文章,部分和旁邊 將語義結構應用于html的文章,部分和旁邊 Jul 05, 2025 am 02:03 AM

在HTML中合理使用語義化標簽能提升頁面結構清晰度、可訪問性和SEO效果。1.用于獨立內(nèi)容區(qū)塊,如博客文章或評論,需保持自包含性;2.用于歸類相關內(nèi)容,通常包含標題,適用于頁面不同模塊;3.用于與主內(nèi)容相關但非核心的輔助信息,如側邊欄推薦或作者簡介。實際開發(fā)中應結合、等標簽,避免過度嵌套,保持結構簡潔,并通過開發(fā)者工具驗證結構合理性。

如何訪問PHP中的會話數(shù)據(jù)? 如何訪問PHP中的會話數(shù)據(jù)? Jun 30, 2025 am 01:33 AM

在PHP中訪問會話數(shù)據(jù)需先啟動會話,再通過$_SESSION超全局數(shù)組進行操作。1.啟動會話必須使用session_start(),且該函數(shù)需在任何輸出前調(diào)用;2.訪問會話數(shù)據(jù)時應檢查鍵是否存在,可使用isset($_SESSION['key'])或array_key_exists('key',$_SESSION);3.設置或更新會話變量只需對$_SESSION數(shù)組賦值,無需手動保存;4.清除特定數(shù)據(jù)可用unset($_SESSION['key']),清空所有數(shù)據(jù)可設$_SESSION為空數(shù)組,

PHP中的遞歸功能是什么? PHP中的遞歸功能是什么? Jun 29, 2025 am 02:02 AM

遞歸函數(shù)在PHP中指自我調(diào)用的函數(shù),其核心要素是1.定義終止條件(基例),2.分解問題并遞歸調(diào)用自身(遞歸例)。它適用于處理分層結構、拆解重復子問題或提升代碼可讀性,如計算階乘、遍歷目錄等。但需注意內(nèi)存消耗及棧溢出風險。編寫時應明確退出條件、確保逐步逼近基例、避免冗余參數(shù)、優(yōu)先測試小輸入。例如掃描目錄時,函數(shù)遇子目錄即遞歸調(diào)用自身,直到所有層級遍歷完畢。

See all articles