Discuz! X2论坛注册出现“抱歉,您输入的用户名小于3个字符”的解决方法

这个问题出现的原因是弹出式的注册窗口,在Discuz! X1不存在此问题,没有去检查为什么。这里说说在X2中怎么改。

1.打开“根目录/template/default/member/register.htm”这个文件。

2.在文件中搜索“id=”{$this->setting['reginput']”,会找到四个地方,分别是:
1)<td><input type=”text” id=”{$this->setting['reginput']['username']}” name=”" …
2)<td><input type=”password” id=”{$this->setting['reginput']['password']}” name=”" …
3)<td><input type=”password” id=”{$this->setting['reginput']['password2']}” name=”" …
4)<td><input type=”text” id=”{$this->setting['reginput']['email']}” name=”" …
将四处id的值(如{$this->setting['reginput']['username']})分别拷贝给对应的name。

3.这四处input中,name都是”",所以在填写完注册信息后,submit到后台去时,后台通过name去拿填写的数据会拿不到任何东西。而注册前的验证会检查注册信息是否完备,第一个input是username,当它检查到输入内容为空时,当然会提示“抱歉,您输入的用户名小于3个字符”。

4.这四处应该都要改,如果只是改提示的“用户名”,其他不动,猜测会有“密码为空或者包含非法字符”之类的提示,有兴趣的朋友可以试一下。

5.我注册第一个用户时没有出错,在修改了后台某些配置后才出现这个问题,有网友说在原来的register.js中会将input空间的name设置成和id一样的值,但现在不起作用了,这个问题就产生了。

混沌的项目

项目开始以来一直在OT,现在到了SIT阶段尾声,还是有许多需求不清晰,在之前的需求文档中没说或者没说清楚。一个模块,就花了1年多的时间来Build,还是不断迭代的Code和Build,编码没有Standard和Best Practice,关于怎样命名类、方法没有规范,注释怎么写都没有说明。。。

这就是现在的项目,所谓大公司的项目。

JBoss Admin Console用户名和密码的修改

JBoss Admin Console的初始用户名和密码都是admin,和Tomcat一样,要修改他们,不是在登录之后修改,而是在配置文件中。

该用户名密码配置文件是在%JBOSS_HOME%\server\default\conf\props下的jmx-console-users.properties文件。

打开后,默认的配置是admin=admin,如果修改等号左边则是修改用户名,修改右边则是修改密码。

PHP的注释

写代码加注释的重要性不必重复了,既是方便自己以后看代码,也是为了他人维护的方便。

PHP主要有两种注释,一种是单行注释,一种是多行注释。

PHP 单行注释语法

在一行中所有//符号右面的文本都被视为注释, 因为 PHP 解析器忽略该行 //右面的所有内容。示例如下:

<?php
echo "slowlau.com"; //这是单行注释
?>

也这样写,一行只有注释,不写代码:

<?php
// 这是单行注释
echo "slowlau.com";
// 这是单行注释
?>

单行注释还可能以#打头:

<?php
# 这也是单行注释
echo "slowlau.com";
# 这也是单行注释
?>

PHP 多行注释语法

PHP 多行注释以/*开头,以*/结束。在/*和*/之间,可以写多行注释。

<?php
echo "slowlau.com";
/*
这是多行注释
这是多行注释
*/
?>

要注意的是,不能在多行注释里边嵌套多行注释,因为最后一个多行注释的结束符会结束掉所有的注释,导致之前的多行注释的结束符变成了正常字符而不是注释字符,因而出错。既,不能如下边所示写注释:

<?php
  /*
  echo "这是错误的示范。\n"; /* 多行注释内加多行注释会引起问题 */
  */
?>

修改Eclipse的编码格式

“工欲善其事,必先利其器”。使用Eclipse(无论Java还是其他语言开发)很紧要的一个配置就是编码格式。要想最大程度地支持国际化(最重要是使得国外服务器支持中文),就最好使用UTF-8的文件编码格式。然而,Eclipse工作空间(workspace)的缺省字符编码是操作系统缺省的编码,简体中文操作系统 (Windows XP、Windows 2000简体中文)的缺省编码是GBK,在此工作空间中建立的工程编码是GBK,工程中建立的java文件也是GBK。这样写出来的程序,放到国外的服务器环境中去就会全部是乱码,导致运行出错或者干脆启动不了Server。

如果要使新建立工程、java文件直接使UTF-8则需要做以下工作:

1、Windows->Preferences打开”首选项”对话框,左侧导航树,导航到 General->Workspace,右侧Text file encoding,选择Other,改变为UTF-8,以后新建立的工程其属性对话框中的Text file encoding即为UTF-8。

2、Windows->Preferences打开”首选项”对话框,左侧导航树,导航到 General->Content Types,右侧Context Types树,点开Text,选择Java Source File,在下面的Default encoding输入框中输入UTF-8,点Update,则设置Java文件编码为UTF-8。其他java应用开发相关的文件 如:properties、XML等已经由Eclipse缺省指定,分别为ISO8859-1,UTF-8,如开发中确需改变编码格式则可以在此指定。

要想真正做到国际化的编码格式开发,要需要设置操作系统的编码、NotePad及其他编辑器编码、数据库编码、浏览器编码等等,如果碰到乱码,首先要考虑工具的编码格式配置是否正确,这样才能尽快解决问题。

NotePad++的失败

NotePad++的bug比较多,我都不想说了(已经卸载)。

目前碰到的两个是:

1.明明是查找文档中有的一个小写字符,偏偏查不出来,在选了“大小写区别”的选项后才可以查找到。

2.打开稍微大一点的文件,CPU的使用率马上飙升至100%,直接导致机器反应极慢,只有关闭进程才能恢复。原因未明。

不知以上bug是否缘于用汉化版。