[問題] 請幫忙解決 使用封鎖控制 會發生錯誤(以解決)

phpBB Installation & Usage Support
phpBB 2 安裝於各類型作業平台之問題討論;外掛問題,請到相關版面依發問格式發表!
(發表文章請按照公告格式發表,違者砍文)

版主: 版主管理群

版面規則
本區是討論關於 phpBB 2.0.X 架設安裝上的問題,只要有安裝任何外掛,請到外掛討論相關版面按照公告格式發表。
(發表文章請按照公告格式發表,違者砍文)
t54185
星球公民
星球公民
文章: 72
註冊時間: 2006-08-24 12:48

[問題] 請幫忙解決 使用封鎖控制 會發生錯誤(以解決)

文章 t54185 »

●架設主機作業系統:Windows Xp Home
●快速架站程式:Appserv
●您的上網方式:ADSL
●您安裝的程式:Apache + php + MySql (我是安裝 appserv-win32-2.4.6)
●您的 phpBB2 版本:phpBB 2.0.21
●您的 domain(網域名稱) :http://eros.6cc.tw
●您的 phpBB2 連結網址: http://eros.6cc.tw
●錯誤代碼:

使用封鎖會員 會出現以下錯誤↓
[ code ]

Couldn't insert ban_userid info into database

DEBUG MODE

SQL Error : 1364 Field 'ban_ip' doesn't have a default value

INSERT INTO phpbb_banlist (ban_userid) VALUES (3)

Line : 195
File : admin_user_ban.php

[ /code ]

使用 停用 MAAIL 控制 會出現以下錯誤↓

[ /code ]
Couldn't insert ban_email info into database

DEBUG MODE

SQL Error : 1364 Field 'ban_userid' doesn't have a default value

INSERT INTO phpbb_banlist (ban_email) VALUES ('*@pchome.com.tw')

Line : 265
File : admin_user_ban.php

[ /code ]

我發現到 整個 封鎖控制 都會有問題 .....

●錯誤狀態:如以上敘述情況。 煩請幫看看哪邊出了問題 以研究爬文了兩天..苦惱


附加: 整個 admin_user_ban.php


=====
http://phpbb-tw.net/phpbb/viewtopic.php?p=228591#228591
謝謝合作
最後由 t54185 於 2006-08-25 09:50 編輯,總共編輯了 1 次。
頭像
心靈捕手
默默耕耘的老師
默默耕耘的老師
文章: 8536
註冊時間: 2004-04-30 01:54
來自: Taiwan

文章 心靈捕手 »

建議您:
進入 phpMyAdmin, 找到論壇資料庫, 指向資料表 phpbb_banlist,
修改欄位 ban_userid, ban_email 的預設值, 如下圖.
圖檔
施比受有福,祝福您好運! ^_^
歡迎光臨★★心靈捕手★★ :: 討論區
https://wang5555.dnsfor.me/phpBB3/
t54185
星球公民
星球公民
文章: 72
註冊時間: 2006-08-24 12:48

文章 t54185 »

心靈 大大 我依照你的回覆 試了一次 依然出現

Couldn't insert ban_userid info into database

DEBUG MODE

SQL Error : 1364 Field 'ban_ip' doesn't have a default value

INSERT INTO phpbb_banlist (ban_userid) VALUES (3)

Line : 195
File : admin_user_ban.php

真害...

怎麼會這樣 @@"

ban_id mediumint(8) UNSIGNED 否 auto_increment
ban_userid mediumint(8) 否 0
ban_ip varchar(8) utf8_unicode_ci 否
ban_email varchar(255) utf8_unicode_ci 是 NULL

這是我 SQL 的格式 幫看看
頭像
心靈捕手
默默耕耘的老師
默默耕耘的老師
文章: 8536
註冊時間: 2004-04-30 01:54
來自: Taiwan

文章 心靈捕手 »

t54185 寫:心靈 大大 我依照你的回覆 試了一次 依然出現

Couldn't insert ban_userid info into database

DEBUG MODE

SQL Error : 1364 Field 'ban_ip' doesn't have a default value

INSERT INTO phpbb_banlist (ban_userid) VALUES (3)

Line : 195
File : admin_user_ban.php

真害...

怎麼會這樣 @@"

ban_id mediumint(8) UNSIGNED 否 auto_increment
ban_userid mediumint(8) 否 0
ban_ip varchar(8) utf8_unicode_ci 否
ban_email varchar(255) utf8_unicode_ci 是 NULL

這是我 SQL 的格式 幫看看
建議您:
1. 多新增幾個一般會員測試帳號
2. PM 給我測試論壇 (系統管理員) 的帳號與密碼
3. 底下檔案, 如果您有修改過的話, 那麼將它壓縮後, 貼出下載連結; 否則不用.
admin/admin_user_ban.php
施比受有福,祝福您好運! ^_^
歡迎光臨★★心靈捕手★★ :: 討論區
https://wang5555.dnsfor.me/phpBB3/
t54185
星球公民
星球公民
文章: 72
註冊時間: 2006-08-24 12:48

文章 t54185 »

沒修改過您所說的部分

已經 PM 給你 論壇 ADMIN 的帳密

以及 MYSQL 的 帳密

幫忙解決 拜託了 ...
頭像
心靈捕手
默默耕耘的老師
默默耕耘的老師
文章: 8536
註冊時間: 2004-04-30 01:54
來自: Taiwan

文章 心靈捕手 »

t54185 寫:沒修改過您所說的部分

已經 PM 給你 論壇 ADMIN 的帳密

以及 MYSQL 的 帳密

幫忙解決 拜託了 ...
我不太明白問題的癥結在哪裡?

依我試裝 AppServ 2.4.6 的經驗,
由於安裝過程中, 無法選擇資料庫文編碼, 所以安裝後資料庫文字編碼, 預設應該是 utf8_unicode_ci
但是, 您的卻是 cp1252 West European (latin1)
圖檔

我更改了 ban_ip 的預設值為 0 後, 已經可以正常操作 '封鎖'.
圖檔

目前, 封鎖了三以資料
圖檔
1. 會員帳號: a123
2. 會員帳號: c123
3. 電子郵件: goodluck@wang5555.dyndns.org
施比受有福,祝福您好運! ^_^
歡迎光臨★★心靈捕手★★ :: 討論區
https://wang5555.dnsfor.me/phpBB3/
chiouss
竹貓忠實會員
竹貓忠實會員
文章: 1741
註冊時間: 2002-11-29 18:19

文章 chiouss »

心靈捕手 寫:依我試裝 AppServ 2.4.6 的經驗,
由於安裝過程中, 無法選擇資料庫文編碼, 所以安裝後資料庫文字編碼, 預設應該是 utf8_unicode_ci
但是, 您的卻是 cp1252 West European (latin1)
MySQL 的預設 charset 是 latin1,cp1252 要查一下才知道是不是預設 collation
我更改了 ban_ip 的預設值為 0 後, 已經可以正常操作 '封鎖'.
這個可能是因為資料庫 (MySQL) 升級造成的問題...
t54185
星球公民
星球公民
文章: 72
註冊時間: 2006-08-24 12:48

文章 t54185 »

這是使用全新安裝 @@" 並非升級

不過謝謝 心靈大大

非 UTF8 是因為 如果用 UTF8 的話 SQL 的中文會變成亂碼 所以才改的
這樣可以正常顯示 中文字 ^^"

錯誤的癥結是在於 預設值嗎 ?? (可否講解一下問題所在 因為我有點不懂 ^^ 學習中)

目前從 註冊錯誤 學習如何修改 EMAIL 錯誤 學習更正 一路走來 謝謝 竹貓星球

受益良多 ^^ 謝謝各位大大 ^^
chiouss
竹貓忠實會員
竹貓忠實會員
文章: 1741
註冊時間: 2002-11-29 18:19

文章 chiouss »

t54185 寫:非 UTF8 是因為 如果用 UTF8 的話 SQL 的中文會變成亂碼 所以才改的
這樣可以正常顯示 中文字 ^^"
請多找 set names utf8 相關文章
錯誤的癥結是在於 預設值嗎 ?? (可否講解一下問題所在 因為我有點不懂 ^^ 學習中)
問題在於丟進去的 SQL 沒有某個欄位的值,然後那個欄位又沒有設定 default value,這種問題我在升級 MySQL 的時候碰過,解決辦法和心靈捕手的方法不一樣就是了。
t54185
星球公民
星球公民
文章: 72
註冊時間: 2006-08-24 12:48

文章 t54185 »

chiouss 大大

請問您的解決方法是 ???

可否方便教我 也讓我多學一點 ^^
chiouss
竹貓忠實會員
竹貓忠實會員
文章: 1741
註冊時間: 2002-11-29 18:19

文章 chiouss »

t54185 寫:chiouss 大大
請問您的解決方法是 ???
可否方便教我 也讓我多學一點 ^^
首先要說清楚,我不是什麼大大 :P

我的做法比較懶,把資料表的'內容'會出以後整個資料庫清空 (empty),然後利用 phpbb2/install/schemas/mysql_schema.sql 去重建所有的 table,再把匯出去的 sql 匯入,然後就正常了。

會這樣做的原因是因為我對 SQL 不熟,手上也沒有什麼 MySQL 的書 (講 PHP 的書對 SQL 的敘述不怎麼詳細),所以就用這種繞路的方法來偷懶。但是也不見得每次遇到這種錯誤都可以這樣處理就是了。
chiouss
竹貓忠實會員
竹貓忠實會員
文章: 1741
註冊時間: 2002-11-29 18:19

文章 chiouss »

心靈捕手 寫:1. 原以為只要論壇語系編碼是 utf-8, 應該就可以正常使用,
不必再變更資料庫的文字編碼.
http://phpbb-tw.net/phpbb/viewtopic.php?p=244388#244388
而您居然說道 '如果用 UTF8 的話 SQL 的中文會變成亂碼'
因為沒有做 set names utf8 的話,寫入資料庫的時候是 latin1(utf8) -> 轉換成utf8 -> 寫入 (這種表示法不知道看不看得懂),這轉碼的問題我已經說過太多次了。

把資料庫 (server-default-charset) 改回 latin1 的話,寫入的時候就是 latin1(utf8) -> latin1 -> 寫入,因為 latin1() -> latin1 不會做轉換,這種狀況就會變得和過去 4.1.2 的動作一模一樣,所以不會產生亂碼。

過去 (MySQL 4.1.2 之前) 之所以沒有這個問題是因為 MySQL 不會轉碼、不會把 input/output 的東西做過處理,所以就算 MySQL 把所有的東西都當成是 latin1 也沒差,寫 utf8 的資料進去也不會出錯,反而是把 charset 設定為 big5 的時候容易出問題。
頭像
心靈捕手
默默耕耘的老師
默默耕耘的老師
文章: 8536
註冊時間: 2004-04-30 01:54
來自: Taiwan

文章 心靈捕手 »

t54185 寫:心靈大大

我論壇 重新安裝了 回頭看了一下 "BEN LIST" 的預設值 依然會錯誤

必須手動更改預設值為 0 才能進行 封鎖行為......真害...

順道一提 我查了站內很多人 跟我一樣 安裝新的 都是亂碼 站內有解決方案

方法差不多 ^^

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

因為UTF8 在SQL裡面我發現到 phpbb_config 裡面的基本組態
會發現
site_desc æœ¬è«–å£‡ä¸æ”¯æ´ä¿¡ç®±è¨»å†Šï¼Œå»ºè­ ...這樣的顯示 = = 。

要看到完整的中文顯示方法如下↓

我是更改 select_lang.lib 的內容 !!

// MySQL charsets map
$mysql_charset_map = array(
'big5' => 'big5',
'cp-866' => 'cp866',
'euc-jp' => 'ujis',
'euc-kr' => 'euckr',
'gb2312' => 'gb2312',
'gbk' => 'gbk',
'iso-8859-1' => 'latin1',
'iso-8859-2' => 'latin2',
'iso-8859-7' => 'greek',
'iso-8859-8' => 'hebrew',
'iso-8859-8-i' => 'hebrew',
'iso-8859-9' => 'latin5',
'iso-8859-13' => 'latin7',
'iso-8859-15' => 'latin1',
'koi8-r' => 'koi8r',
'shift_jis' => 'sjis',
'tis-620' => 'tis620',
'utf-8' => 'latin1', =>原本UFT8 改為 LATIN1
'windows-1250' => 'cp1250',
'windows-1251' => 'cp1251',
'windows-1252' => 'latin1',
'windows-1256' => 'cp1256',
'windows-1257' => 'cp1257',

這樣SQL裡面的中文 就可以顯示 然而論壇依然正常 QQ
感謝您的分享! :-D

待會, 我再試著升級 AppServ 2.4.6 看看.

ps.
相關 (變更資料庫文字編碼) 文章, 將分割至 'phpMyAdmin' 版面.
施比受有福,祝福您好運! ^_^
歡迎光臨★★心靈捕手★★ :: 討論區
https://wang5555.dnsfor.me/phpBB3/
t54185
星球公民
星球公民
文章: 72
註冊時間: 2006-08-24 12:48

文章 t54185 »

chiouss 寫:
心靈捕手 寫:1. 原以為只要論壇語系編碼是 utf-8, 應該就可以正常使用,
不必再變更資料庫的文字編碼.
http://phpbb-tw.net/phpbb/viewtopic.php?p=244388#244388
而您居然說道 '如果用 UTF8 的話 SQL 的中文會變成亂碼'
因為沒有做 set names utf8 的話,寫入資料庫的時候是 latin1(utf8) -> 轉換成utf8 -> 寫入 (這種表示法不知道看不看得懂),這轉碼的問題我已經說過太多次了。

把資料庫 (server-default-charset) 改回 latin1 的話,寫入的時候就是 latin1(utf8) -> latin1 -> 寫入,因為 latin1() -> latin1 不會做轉換,這種狀況就會變得和過去 4.1.2 的動作一模一樣,所以不會產生亂碼。

過去 (MySQL 4.1.2 之前) 之所以沒有這個問題是因為 MySQL 不會轉碼、不會把 input/output 的東西做過處理,所以就算 MySQL 把所有的東西都當成是 latin1 也沒差,寫 utf8 的資料進去也不會出錯,反而是把 charset 設定為 big5 的時候容易出問題。
chiouss大大 我的做法 這樣可以嗎 ? 會傷 資料庫 資料嗎 ?

因為看了你的修改 覺得...有點複雜

不過還是多學了一招
最後由 t54185 於 2006-08-25 02:13 編輯,總共編輯了 1 次。
t54185
星球公民
星球公民
文章: 72
註冊時間: 2006-08-24 12:48

文章 t54185 »

心靈捕手 寫:
t54185 寫:心靈大大

我論壇 重新安裝了 回頭看了一下 "BEN LIST" 的預設值 依然會錯誤

必須手動更改預設值為 0 才能進行 封鎖行為......真害...

順道一提 我查了站內很多人 跟我一樣 安裝新的 都是亂碼 站內有解決方案

方法差不多 ^^

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

因為UTF8 在SQL裡面我發現到 phpbb_config 裡面的基本組態
會發現
site_desc æœ¬è«–å£‡ä¸æ”¯æ´ä¿¡ç®±è¨»å†Šï¼Œå»ºè­ ...這樣的顯示 = = 。

要看到完整的中文顯示方法如下↓

我是更改 select_lang.lib 的內容 !!

// MySQL charsets map
$mysql_charset_map = array(
'big5' => 'big5',
'cp-866' => 'cp866',
'euc-jp' => 'ujis',
'euc-kr' => 'euckr',
'gb2312' => 'gb2312',
'gbk' => 'gbk',
'iso-8859-1' => 'latin1',
'iso-8859-2' => 'latin2',
'iso-8859-7' => 'greek',
'iso-8859-8' => 'hebrew',
'iso-8859-8-i' => 'hebrew',
'iso-8859-9' => 'latin5',
'iso-8859-13' => 'latin7',
'iso-8859-15' => 'latin1',
'koi8-r' => 'koi8r',
'shift_jis' => 'sjis',
'tis-620' => 'tis620',
'utf-8' => 'latin1', =>原本UFT8 改為 LATIN1
'windows-1250' => 'cp1250',
'windows-1251' => 'cp1251',
'windows-1252' => 'latin1',
'windows-1256' => 'cp1256',
'windows-1257' => 'cp1257',

這樣SQL裡面的中文 就可以顯示 然而論壇依然正常 QQ
感謝您的分享! :-D

待會, 我再試著升級 AppServ 2.4.6 看看.

ps.
相關 (變更資料庫文字編碼) 文章, 將分割至 'phpMyAdmin' 版面.
我重弄完畢 目前 封鎖行為 正常 EMAIL 中文標題 無亂碼 正常 重灌時間..2分鐘QQ
主題已鎖定

回到「phpBB 2 安裝與使用」