今天把本身的程序放到Linux上,原本覺得能夠正常運行了,結果問題接踵而至,首先是驗證碼顯示不了,驗證碼顯示不了說說解決思路:php
1:檢查在生成的驗證碼的程序是否使用了未定義的變量,一切使用了未定義的變量的所有都會死翹翹 2:在輸出驗證碼時輸出不因該輸出的,tab等等那些看不到特殊符號,這些都會死翹翹接着
好了,解決驗證碼了,接下來我想寫一段文章,點擊編輯按鈕,結果跳出來的是登陸框,難以想象,由於這個編輯按鈕與cookie相關的,由於是本身寫的程序,要排除這種錯誤也是很快的,告訴你們怎麼快速查看cookie的key 和value ,就是大名的鼎鼎的chrome,必備神器html
查看以後我發現,服務器端建立的cookie發送不到客戶端,沒有我想要的cookie,因而去檢查程序,一頭霧水不知道從何下手,先寫個簡單的測試,測試cookie是否有問題,也請教了一下羣裏的大神,說cookie以前不能有輸出,我學習時的老師也只是說過sessionstart前不能有輸出,結果測試以後是沒有問題的,因而就測試一下其它的鏈接,接着header重定向也崩潰了,瀏覽器只是一片空白,沒有任何提示,沒有辦法只好亮出我以前研究出來的神器了,php的cli這貨纔是最強悍的神器啊,神器的使用方法,請看http://freax.blog.51cto.com/6614733/1346438 這種神器必需要必備哦,下面就是個人問題了:chrome
不知道你發現問題沒有,再後面一行是否多出了一個空格,其實問題就處在這裏,就由於多輸出了空格,接着就去排查文件吧!!!!apache
說一下須要注意的:瀏覽器
header session cookie 前都不能有輸出,若是有這些函數將會失效,和圖片的同樣不能在圖片的二進制流中有任何輸出緩存
這種空格最容易出現的地方就是?> 這後面不知道什麼時候添加上去的 查找這個是最難的,不過有了上述方法後相信再也不是問題服務器
還有一種就是不知道你怎麼搞在他以前有輸出的,好比notice 這種是不會輸出到瀏覽器的,在圖片的二進制流中常見,圖片顯示不了cookie
下面是月光博客給出的解決方案,http://www.williamlong.info/archives/171.html 原本我都想用ob_start()解決的,可是不想這麼作:session
解決方案:ide
1)適用於有權限編輯PHP。INI的人
打開php。ini文件(你應試比我清楚你的php。ini在哪裏),找到
output_buffering =改成on或者任何數字。若是是IIS6,請必定改成ON,否則你的PHP效率會奇慢。
2)使用虛擬主機,不能編輯PHP。INI,怎麼辦?
簡單:
在你的空間根目錄下創建一個。htaccess文件,內容以下:
AllowOverride All
PHP_FLAG output_buffering On
不幸的狀況是:仍是不行?所有網頁都不能顯示啦?
那麼,你能夠打電話罵一通空間商,而後讓他給你把apache的。htaccess AllowOverride打開
3)在PHP文件裏解決
ob_start()
啓用output buffering機制。 Output buffering支持多層次 -- 例如,能夠屢次調用 ob_start() 函數。
ob_end_flush()
發送output buffer(輸出緩衝)並禁用output buffering機制。
ob_end_clean()
清除output buffer但不發送,並禁用output buffering。
ob_get_contents()
將當前的output buffer返回成一個字符串。容許你處理腳本發出的任何輸出。
原理:
output_buffering被啓用時,在腳本發送輸出時,PHP並不發送HTTP header。相反,它將此輸出經過管道(pipe)輸入到動態增長的緩存中(只能在PHP 4。0中使用,它具備中央化的輸出機制)。你仍然能夠修改/添加header,或者設置cookie,由於header實際上並無發送。當所有腳本終止時,PHP將自動發送HTTP header到瀏覽器,而後再發送輸出緩衝中的內容
寫程序仍是在Linux寫吧,否則會添加一些莫名其妙的問題有得你折騰