學員來信問道:
我的網站發生錯誤,出現Warning: Cannot modify header information – headers already sent by 請問總教頭,我該如何解決呢?謝謝!
總教頭回覆:
遇到了「Cannot modify header information」的問題,當然之前也有遇過這問題。
通常會出現在網頁轉向時,採用「header」函式,才造成這個緩衝區的錯誤訊息。
其實解決方法很簡單,只要調整一下php.ini內的設定值就可以正常了,換句話說,就是系統本身有個設定值預設是未開啟,只要我們將他開啟就可以了。
所以找到系統設定檔「php.ini」,建議使用「EmEditor」開啟,找到「output_buffering」並將他後面的值設定為「On」(啟動),當然也可以設定成「4096」或更高的數值(設定緩衝區大小),然後儲存並重新啟動Apache就可以了。
如果你是使用虛擬主機而遇到這樣的問題,建議可以先詢問主機商是否可以啟動這項函數?
網站架設網頁設計_PHP教學
Zend Optimizer 配置指南
Zend Optimizer是由PHP核心引擎「Zend」建立者Zend技術公司所開的免費PHP改善軟體。據Zend公司透露使用這個軟體某些情況下至少可以提高效能30%以上!這麼好的免費大餐當然要用,現在我們來談談如何配置這套軟體。
Zend Opt的安裝是傻瓜化的,安裝嚮導會自動根據你的選取來修改php.ini說明你啟動這個引擎。下面我們來介紹下Zend Opt的配置選項,說明你最大化自訂合理的配置。下邊是我所用的配置檔案,看不懂也不要著急,看完本文你就會完全明白。
[Zend]
zend_optimizer.optimization_level=1023
zend_optimizer.encoder_loader=0
zend_extension_ts="C:Program FilesendlibendOptimizer.dll"
現在我們來介紹下上邊這個配置檔案的含義:
zend_optimizer.optimization_level 《== 改善程度,這裡定義啟動多少個改善過程。
zend_optimizer.encoder_loader 《== 是否容許處理由Zend Encoder加密的PHP檔案。
zend_extension_ts 《== 改善器所在目錄。
改善過程 zend_optimizer.optimization_level 詳細解釋
這裡最為重點的部分,仔細看!Zend Opt總共有10個改善過程,從理論上說開的越多效能越好。當然,理論和實際永遠都存在著差距。改善過程開啟的越多對效能消耗也相對也越大,Zend Opt的10個改善過程並不相同也就是說效果不是平均的。Zend公司定義的最高值(High模式)為15,這裡15指的是開啟1-4號改善過程。當然,很多朋友並不滿足於此,畢竟最高也只開啟4個改善過程連總數的一半都沒有。各個改善過程的對應的數字代碼(值)如下:
不使用 0 <= 如果這樣不如不裝,還能節約點記憶體說!
改善過程1(PASS1) 1
改善過程2(PASS2) 2
改善過程3(PASS3) 4
改善過程4(PASS4) 8
改善過程5(PASS5) 16
改善過程6(PASS6) 32
改善過程7(PASS7) 64
改善過程8(PASS8) 128
改善過程9(PASS9) 256
改善過程10(PASS10) 512
以何種模式開啟改善過程是通過這些數字代碼(值)相加所得的和作為此參數的參數值來控制的。如我的配置檔案中zend_optimizer.optimization_level = 1023 , 這裡的1023是改善過程1到改善過程10全部數字代碼(值)相加得到的和,表示開啟全部10個改善過程。剛才所提到的Zend公司定義的High模式值為15,15表示同時開啟改善過程1-4。
加密代碼支援 zend_optimizer.encoder_loader 詳細解釋
對於這個參數,我想如果沒有看過Zend Opt FAQ文件的朋友大多數並不知道。這個參數用來告訴Zend Opt是否去支援被Zend Encoder加密過的代碼。預設情況下Zend Opt將支援加密過的代碼。如果不使用被加密過的代碼我推薦你關閉此選項。這個功能牽扯到解包反碼的過程,會導致系統負荷的加重。我的朋友已經開發完畢相應的反編譯工具,預計春節之後推出。
這個參數的值只有兩個 0 關閉, 1 開啟。預設為1,推薦設定為0。
模組定位 zend_extension_ts 無需解釋
這是最簡單的地方,參數就是Zend Opt模組在硬碟上的安裝路徑。
Apache伺服器使用.htaccess實現圖片防盜鏈教學
許多網站因為自身的性質,要應用到很多圖片。隨著網站訪問量的上升,大量的圖片檔案對伺服器頻寬的佔用日趨嚴重,而其他網站對圖片的盜鏈則更雪上加霜。如果說其他網站不加說明不注出處地對我們內容的複製讓我們鬱悶的話,這種圖片的盜鏈則更過份:複製內容雖然在某種程度上可以說是剽竊我們的勞動成果,但畢竟對網站本身沒有太大的傷害,而圖片盜鏈則讓頻寬被無任何回報地佔用,影響網站的訪問速度。我們對此的反應也只是為圖片加入水印,加上我們網站的位址,希望這一方面能讓盜鏈者有所忌諱,另一方面即便被盜鏈,希望能有使用者循此找到我們網站。當然,這並不解決盜鏈的有效手段,但是,在我們目前基於Windows + IIS的伺服器平台對這個問題好像沒有什麼更好的辦法(僅是個人之見,可能不對。如蒙高手指點,不勝感激)。
這時候便不由自主地地感歎起伺服器平台選取的重要性來了,如果在Linux + Apache下,想要防止類似的盜鏈是相當簡單的,而IIS以圖形化的管理介面降低入手難度的同時,不免增加了許多管理上的難度。
下面簡單介紹一下筆者之前在Linux + Apache平台下防止圖片被盜鏈的設定方法,希望能對同樣面臨圖片盜鏈問題,伺服器基於Linux + Apache的朋友有所說明。
註:1、本文雖然談的是防止圖片盜鏈的問題,但設定也同樣適用於其他非Html類型的檔案,比如說下載網站的防盜鏈,只需將下面設定中的檔案類似由gif、jpg變更為相應的zip或rar即可。
2、本方法筆者在Linux + Apache下測試通過,而對於是否也同樣適用於Windows + Apache平台,則沒有把握,採用這類平台的朋友可自行測試。
Apache中的.htaccess檔案
.htaccess檔案(或是」分散式配置檔」)是Apache中相當重要的配置檔,其格式為純文字,它提供了針對目錄改變配置的方法,通過在一個特定的文件目錄中放置一個包括一個或多個指令的檔案,以作用於此目錄及其所有子目錄。
通過.htaccess檔案,可以實現簡單地很多在IIS中很繁瑣甚至無法實現的功能,如密碼保護、禁止顯示目錄清單、阻止/容許特定的IP位址、實現網址的301 重定向等。
正如上面所說, .htaccess檔案將影響其所在的目錄及其子目錄,因此,如果我們要保護的內容(此處以防止圖片盜鏈為例,即圖片)位於網站內多個目錄下,可以考慮將其放在根目錄下;而如果圖片有單獨的子目錄如「/images/」,則只需將其放置在該目錄下。
需要注意的是,如果通過FTP模式將建立好的.htaccess上傳到伺服器上,傳輸模式應為ASCII而非Binary。上傳到伺服器後,應將其屬性通過CHMOD修改為644 或「RW-R–R–」,這樣,可以保證伺服器能夠使用同時無法通過瀏覽器修改,當然,.htaccess的可讀屬性也存在一定的風險:攻擊者可通過它找出您要保護的對象或認證檔案位置——解決辦法是將認證檔案.htpasswd放到網站根目錄之外,這樣,便無法通過網路找到它了。
使用.htaccess禁止盜鏈
通過.htaccess來防止網站的圖片、壓縮檔、或視訊等非Html檔案被盜鏈的方法相當簡單,通過在.htaccess檔案中加入幾句指令即可保護我們寶貴的頻寬。
通過.htaccess來防止網站的圖片、壓縮檔、或視訊等非Html檔案被盜鏈的方法相當簡單,通過在該檔案中加入幾句指令即可保護我們寶貴的頻寬。例如本站的設定如下:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://itlore.cn/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://itlore.cn$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.itlore.cn/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.itlore.cn$ [NC]
RewriteCond %{HTTP_REFERER} !^http://itlore.ch/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://itlore.ch$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.itlore.ch/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.itlore.ch$ [NC]
RewriteCond %{HTTP_REFERER} !^http://blog.itlore.ch/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://blog.itlore.ch$ [NC]
RewriteRule .(gif|jpg)$ http://botu.bokee.com/photodata2/2008-3-30/001/168/952/14901157_gif/14901157_h.jpg [R,L]
簡單的解釋一下上述語句:
1、RewriteCond %{HTTP_REFERER} !^$ [NC]
容許空「HTTP_REFERER」的訪問,即容許使用者在瀏覽器位址欄中直接輸入圖片位址時圖片檔案的顯示。一般而言,這是可選的,不過,建議這麼設定,如果強迫必須具有「HTTP_REFERER」才能訪問,可能會帶來某些問題,比如說在使用者通過代理伺服器訪問時。
2、RewriteCond %{HTTP_REFERER} !domain.com [NC]
設定容許訪問的HTTP來源,內含我們的站台自身、Google、Baidu、Bloglines、Feedburner等。
3、RewriteRule .*.(gif|jpg|png)$ http://domain.com/no.png [R,NC,L]
定義被盜鏈時替代的圖片,讓所有盜鏈 jpg、gif、png 等檔案的網頁,顯示根目錄下的 no.png 檔案。注意:取代顯示的圖片不要放在設定防盜鏈的目錄中,並且該圖片檔案體積越小越好。當然你也可以不設定取代圖片,而是使用下面的語句即可:
RewriteRule .*.(gif|jpg|png)$ – [F]
4、說明一下其中的R、NC 和 L
R 就是轉向的意思
NC 指的是不區分大小寫
L 的作用是指明本次轉向到此結束,後續的轉向不受先前判斷語句的影響
5、防止盜鏈的檔案類型
上例中是 gif、jpg、png,而根據需要,可變更或加入其他檔案類型,如rar、mov等,不同檔案副檔名間使用「|」分割。
這樣的話,就可以基本做到簡單的防止被盜鏈情況的發生,而且可以盡最大可能的減少伺服器流量的無畏消耗,當然了,如果你不在意這點流量的話,那麼可以不用考慮上述設定啦!
PHP4程式語言教學課程(網站架設網頁設計密訓基地)
現在有很多網站是使用PHP5,但是這並不代表PHP4短期間會退出市場
PHP4已經經過很長時間的網站運行,現在還是要有他的資料
舊資料有點難找!我總算把它整理好上傳到我的主機
希望藉此提供要學習或查詢資料的網友閱讀!
PHP4程式語言的資料連結網址:
http://visdacom.com/Website_Design/PHP4/index.html
注意:資料超多的!所以出現:要停止執行這個指令碼嗎?
這個網頁上的指令碼導致 Internet Explorer 執行速度變慢。
如果繼續執行,您的電腦將變成沒有反應。
請選擇:否
這樣就能正常瀏覽資料!
PHP 的功能概述:
PHP 在資料庫方面的豐富支援,也是它迅速走紅的原因之一,它支援下列的資料庫或是資料表:
Adabas D
DBA
dBase
dbm
filePro
Informix
InterBase
mSQL
Microsoft SQL Server
MySQL
Solid
Sybase
ODBC
Oracle 8
Oracle
PostgreSQL
而在 Internet 上它也支援了相當多的通信協定 (protocol),內含了與電子信件關聯的 IMAP, POP3;網管系統 SNMP;網路新聞 NNTP;帳號共用 NIS;全球內容網 HTTP 及 Apache 伺服器;目錄協定 LDAP 以及其它網路的關聯函數。
除此之外,用 PHP 寫出來的 Web 後端 CGI 程式,可以很輕易的移植到不同的系統平台上。例如,先以 Linux 架的網站,在系統負荷過高時,可以快速地將整個系統移到 SUN 工作站上,不用重新編譯 CGI 程式。面對快速發展的 Internet,這是長期規劃的最好選取。
在加入其它的模組之後,提供了更多樣的支援如下:
英文拼字檢查
BC 高精確度計算
公元曆法
PDF 檔案格式
Hyperwave 伺服器
圖形處理
編碼與解碼功能
哈稀處理
WDDX 功能
qmail 與 vmailmgr 系統
壓縮檔案處理
XML 解析
除此之外,一般語系有的數學運算、時間處理、檔案系統、字串處理、行程處理等功能,它一樣都不缺。再加上它是免費的系統,使得成本與效益比,幾乎等於無限大!