看板 PHP 關於我們 聯絡資訊
※ 引述《HuangJC (吹笛牧童)》之銘言: : eval? : 有錯誤,格式不太對 :P : 然後我用 str_replace 開始調,調半天,快調出來時已經點燃龜藍趴火了;不,是小宇宙 : : 突然靈機一閃,我好像看過 serialze 嘛!! var_export 也是!! 幸好我先想到 serialze,不然用這個字串長很多 :P : -- : ※ 發信站: 批踢踢實業坊(ptt.cc) : ◆ From: 61.219.65.16 : → kylekai :比起直接輸出在畫面上干擾輸出好多了... 07/16 18:36 其實我想學 remote debug,不知會不會較好 : → HuangJC :謝謝;那 var_dump 太相近了,又有何意義? 07/16 18:47 : → HuangJC :不過比起單機板程式,主管要求我修BUG時做到無縫運轉. 07/16 18:48 : → HuangJC :就是不能給user看到 BUG,我想 log to file 很有意義 07/16 18:49 : → kylekai :不能看到 Bug 最簡單就是把 display_error = off .. 07/17 00:19 : → kylekai :不過那不叫做看不到 bug ..只是不輸出錯誤訊息.. 07/17 00:19 講一下今天的 case 因為 phpbb2 的資料欄位太少 我決定在 DB 內新增一個欄位 這個欄位將加強原有欄位的訊息 舉例來說,本來的 timezone 是數字,GMT +? 的一個數字 但我想儲存國家 比如,GMT+8 有兩三個國家(?台灣,日本?大概這意思) 我不只想顯示 GMT+8,我想顯示 Taiwan 如果我程式一寫就對,無縫 update,那也就算了 不過我犯了幾個錯誤 1.我寫了個 Parser,讀到 'Taiwan',變成 8 2.我把 8 拿去覆寫原來的數字 3.如果今天 bbs 跑到一半,我才新增欄位及程式 有些舊 bbs user 因為這欄位是 default 值,其內為空白 parser 解到空白,回傳 false,crash(白畫面),or 0 4.false or 0 被覆蓋給原來的 GMT 時間,結果原本正確的台灣時間又變格林威治 5.因為有多台機器(至少有 local 及機房兩台,local 寫好透過 CVS 轉送機房) 所以 local 有新增欄位及程式 但其他同事如果先 check out 程式,沒有新增欄位,可能發生.. sql insert 指令硬要塞資料進入還沒新增的欄位;crash,白畫面 6.sql select 硬要讀不存在的欄位;crash,白畫面 7.讀不出來的欄位,其變數就是 unset,使用 unset 變數,可能預設為 0 總之,我不該存取未存在欄位 也不該用 unset 變數去運算,反而蓋掉原本正常儲存的數字 不加 feature 還好,一加全亂 以上我不知是不是把 error 改 warning 全可解決... 應該不太行,只有 GMT 時間是小事 其他不存在欄位存取,那整道 mysql 指令就是 return false 也就造成 bbs user 永遠無法登入 XD 那就算暫時無法登入沒關係,沒白畫面那麼糟好了 當我要 debug 時,我一直搞不懂問題出在哪裏 要知道我 local 可是跑得很順咧 所以,我就好想在程式中設中斷,印變數 XD print_r($var);exit; 這是我最愛做的事 然後全世界的 user 都看到白畫面,把我幹到開花..Q_Q 所以,remote debug 是不是容易點? 啊!我想到了,鎖 IP 只有我這台電腦可以啟動 DEBUG CODE if ( ip==MyIP ){ print_r($var);exit; } 以及 if ( ip==MyIP ) define(DEBUG,1); //phpbb2 有支援裏面的 debug 這樣是不是可以安全點 XD 不然我實在很難無縫 debug.. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.219.65.16