我尝试将p4a应用程序的用户重定向到应用程序的仪表板视图,但在成功登录后,重定向到"main_dashboard_mask“出现错误"Method openmask not found login_mask.php line 35”
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");
}
}任何帮助都是非常明显的。
发布于 2012-10-19 23:45:37
对,我找出了问题所在,当用login_mask类扩展P4A_Base_Mask时,我排除了排序所需的函数(主要是openmask函数)。我简单地使用了扩展P4A的前置光标(允许使用openMask)。这行代码是
p4a::singleton()->openmask()因此,公共函数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 ))
{
p4a::singleton()->openmask("main_dashboard_mask");
}
else {
$this->setTitle("Login Failed");}
}如果这一点不清楚,并且有人想要更清楚地解释它,那将是最受欢迎的,我不完全确定我应该使用什么技术术语:)
https://stackoverflow.com/questions/12955613
复制相似问题