2012-10-18 55 views
2

我试图将我的p4a应用程序的用户重定向到我的应用程序的仪表板视图,但成功登录后,重定向到“main_dashboard_mask”出现错误“Method openmask not found login_mask .PHP线35"未找到方法openMask P4A

class login_mask extends P4A_Base_Mask 
{ 
public function __construct() 
{ 
    parent::__construct(); 

    $this->setTitle("Login to Dashboard"); 

    $this->build("p4a_field", "username"); 

    $this->build("p4a_field", "password"); 
    $this->build("p4a_button", "login") 
    ->implement("onclick", $this, "login"); 

    $this->frame 
    ->anchor($this->username) 
    ->anchor($this->password) 
    ->anchor($this->login); 
} 

public function login() 
{ 
    $username = $this->username->getNewValue(); 
    $password = $this->password->getNewValue(); 

    $sql = "SELECT * FROM users 
    WHERE 
      username = ?";  

    $row = p4a_db::singleton()->fetchRow($sql, array($username)); 

    if (($row['username'] == $username) && ($row['password'] == $password)){ 
     $this->openMask("main_dashboard_mask");} 
    else { 
      $this->setTitle("Login Failed");} 
    } 
} 

我不知道是否它的索引文件或东西我已经在这里错过了,好了,现在香港专业教育学院通过走了一遍,似乎无论身在何处,我把该功能在页面上我不能找到问题,不管它出现在哪里,错误都会持续发生,这让我觉得问题出自以前的一个页面,在这里他们是:

<?php 

define ("P4A_DSN", "mysql://root:@localhost/login"); 

require_once dirname(__FILE__) . '/../../p4a.php'; 

$login = p4a::singleton('login_begin'); 

$login->main(); 

...

<?php 
class login_begin extends P4A 
{ 
public function __construct() 
{ 
    parent:: __construct(); 
    $this->openMask("login_mask"); 
} 
} 

任何帮助将是非常apprieciated。

+0

刚看完我已经完成的代码,我认为它与函数声明有关,尽管在示例文件中,编码与登录,但应用程序正常工作,任何援助将不胜感激。 –

回答

1

右我解决了什么问题是什么,当扩展P4A_Base_Mask与类login_mask我排除功能是必需的(主要是openmask函数)排序这我简单地使用预先的游标延长P4A(考虑到使用openMask的)这行代码是

p4a::singleton()->openmask() 

所以在公共职能登录的变化()是

public function login() 
{ 

    $username = $this->username->getNewValue(); 
    $password = $this->password->getNewValue(); 

    $sql = "SELECT * FROM users 
    WHERE 
      username = ? 
      ";  

    $row = p4a_db::singleton()->fetchRow($sql, array($username)); 

    if (($row['username'] == $username) && ($row['password'] == $password)) 
    { 
     p4a::singleton()->openmask("main_dashboard_mask"); 
    } 

    else { 
    $this->setTitle("Login Failed");} 
} 

如果这个不清楚,有人想更清楚这将是解释非常欢迎,我不完全是在我应该使用什么样的技术术语:)

+0

对于那些因为类似问题而来到这里的人来说,在StackOverflow上获得P4A是已知的,在这里提出你的问题,即时通讯是新的,但是我确定我会遇到同样的问题,我会大大地apprieciate帮助:) –

相关问题