免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2026 | 回复: 3
打印 上一主题 下一主题

igenus webmail 中一段代码生成的有趣结果,谁的问题?? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-05-17 14:51 |只看该作者 |倒序浏览
igenus webmail 的passwd.php文件(修改密码的文件)中有一段这样的代码:

<SCRIPT>;
<!--
function ChangePasswd(form){
Meg = '';
if(form.oldpasswd.value=='') Meg += "<?php echo $LANG_PASSWD_OLD;?>;\n";
if(form.passwd.value=='') Meg += "<?php echo $LANG_PASSWD_NEW;?>;\n";
if(form.passwd2.value=='' || form.passwd.value!=form.passwd2.value)
Meg += "<?php echo $LANG_PASSWD_NEW_CONFIRM;?>;\n";
if(form.passwd2.value.length<6) Meg += "<?php echo $LANG_PASSWD_SIZE;?>;\n";

if(Meg!=''){
alert("<?php echo $LANG_SENDFORM_SEND_ALERT_STR4;?>;:\n\n" + Meg);
return false;
}
form.Cmd.value = "Change";
form.action = "passwd.php?Cmd=Change";
form.submit();
}
//-->;
</SCRIPT>;
<CENTER>;
<FONT COLOR="#FFFF00">;<B>;
<?php echo $ErrorMeg;?>;
</B>;</FONT>;
</CENTER>;

故意填写错误的原密码后,知道它执行后得到什么结果吗??哈哈,如下:

<SCRIPT>;
<!--
function ChangePasswd(form){
Meg = '';
if(form.oldpasswd.value=='') Meg += "原密码\n";
if(form.passwd.value=='') Meg += "新密码\n";
if(form.passwd2.value=='' || form.passwd.value!=form.passwd2.value)
Meg += "新密码确认\n";
if(form.passwd2.value.length<6) Meg += "新密码长度不能小于六位\n";

if(Meg!=''){
alert("请填写好以下各项:\n\n" + Meg);
return false;
}
form.Cmd.value = "Change";
form.action = "passwd.php?Cmd=Change";
form.submit();
}
//-->;
</SCRIPT>;
<CENTER>;
<FONT COLOR="#FFFF00">;<B>;
<?php echo 原密码不对,无法修改!;?>; </B>;</FONT>;
</CENTER>;

在返回的HTML中有 <?php echo ?>;?????
有趣的是,变量值却正确的给出来了。

有兴趣的朋友可以自己试试,有谁知道是怎么回事吗??

返回的错误信息没办法显示出来了。

论坛徽章:
0
2 [报告]
发表于 2003-05-17 15:19 |只看该作者

igenus webmail 中一段代码生成的有趣结果,谁的问题??

到官方主页去试试,

http://www.igenus.org/demo.php

登陆后,在左边的“系统设置”中的“密码修改”,在弹出的窗口中胡乱的输入原始密码,输入新密码和确认密码,最后点击“下一步,修改”。

看到错误信息了吗???没有!!!

那看看这时的HTML原码吧:

<CENTER>;
  <FONT COLOR="#FFFF00">;<B>;
<?php echo 参数错误!;?>;  </B>;</FONT>;
</CENTER>;

论坛徽章:
0
3 [报告]
发表于 2003-05-18 19:05 |只看该作者

igenus webmail 中一段代码生成的有趣结果,谁的问题??

都没人来答,没人用过igenus webmail??

我自己来答,

问题出在passwd.php文件的第30、42和51行,不小心的错误:

case "Change":
       
        if( $post_OldPasswd=='' || $post_Passwd=='' || $post_Passwd2=='' || $post_Passwd!=$post_Passwd2
                || $G_USERNAME == 'demo'){
                $ErrorMeg = "<?php echo $LANG_PASSWD_ERROR_PARAMETER;?>;";                break;
        }
       
        $sql = mysql_connect($CFG_MYSQL_HOST, $CFG_MYSQL_USER, $CFG_MYSQL_PASS);
        mysql_select_db($CFG_MYSQL_DB,$sql);

        //核对原有密码
        $query = "SELECT pw_name,pw_passwd FROM vpopmail WHERE pw_id='$G_ID'";
        $result = @mysql_query($query,$sql);
        $row = mysql_fetch_object($result);
        if( $row->;pw_passwd!=crypt($post_OldPasswd,$row->;pw_passwd) ) {
                $ErrorMeg = "<?php echo $LANG_PASSWD_ERROR_BAD_OLD;?>;";                break;
        }
        // 更新密码
        $NewPasswd = crypt($post_Passwd);
       
        $query = "UPDATE vpopmail SET pw_passwd='$NewPasswd' WHERE pw_id='$G_ID'";
        $result = @mysql_query($query,$sql);       
        if(empty($result)){
                $ErrorMeg = "<?php echo $LANG_PASSWD_ERROR_SYSTEM_FAIL;?>;";                break;
        }
        //成功
        $Success = 1;


怎么修改我就不用讲了,呵呵

论坛徽章:
0
4 [报告]
发表于 2003-05-22 14:30 |只看该作者

igenus webmail 中一段代码生成的有趣结果,谁的问题??

的确没用过,有机会试试。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP