SP留言本2.0验证问题

#1 skyzong

在留言本2.0的预览中,有一个登录验证:

  

帐  号:{$error.uname[0]}


  
  

密  码:<{pwinput id="thepass"}>{$error.thepass[0]}


  



为什么下面的验证提示在上面不能显示:
foreach($results as $item){
     foreach($item as $msg){
         $this->error($msg,spUrl("main","login"));
     }
}

2010-02-03 16:15:08

#2 jake

$this->error = ?
$error变量并没有输入到模板中。
要达到楼主的想法,通过以下方式改改:
1. 在main.php的66行左右,改写成:
                       // $results不是false,所以没有通过验证,错误信息是$results
                    //dump($results);
                    $this->logmsg = $results;
                    foreach($results as $item){ // 开始循环错误信息的规则,这里只有用户名
                            // 每一个规则,都有可能返回多个错误信息,所以这里我们也循环$item来获取多个信息
                              foreach($item as $msg){
                                 // 虽然我们使用了循环,但是这里我们只需要第一条出错信息就行。
                                // 所以取到了第一条错误信息的时候,我们使用$this->error来提示并跳转
                                 //$this->error($msg,spUrl("main","login"));
                        }
           }

这里主要是将$results输入到模板的变量logmsg中,同时屏蔽了$this->error($msg,spUrl("main","login"));的提示。
2. 在模板main_login.html中,改改form表单
                                

                                       

帐  号:<{$logmsg.uname.0}>


                                       
                                       

密  码:<{pwinput id="thepass"}>


                                       


                                


这里是显示了<{$logmsg.uname.0}>,$logmsg的uname错误的第0个。在smarty中.和[]都可以作为数组的下标。

2010-02-03 17:05:31