MVC PHP - 显示错误消息

Hi I am newbie in using MVC pattern.

In login controller I have

function run() {
    $result = $this->model->run();
    if ($result) {
        header('location: '. URL .'myaccount/index');
    } else {

        $this->view->msg = '<h2>User or password are not valid! Please try again!</h2>';
        $this->view->render('login/index'); 
    }
}

In my login view I have

    <div class="container">
   <?php echo $this->msg; ?>
      <form class="form-signin" action="<?php echo URL; ?>login/run" method="post">
        <h2 class="form-signin-heading">Please sign in</h2>
        <input type="text" class="form-control" name="email" placeholder="Email address" autofocus required>
        <input type="password" class="form-control" name="password" placeholder="Password" required>
        <button class="btn btn-lg btn-primary btn-block" type="submit">Login</button>
      </form>

    </div>

In my mind this should work like this. User tries to login and if user or password are not valid the login form will be shown again and above it will display the following message: User or password are not valid! Please try again!

I am encountering the following error Notice: Undefined property: View::$msg in C:\xampp\htdocs\w\views\login\index.php on line 2

What I am doing wrong?

dongxu198714
dongxu198714 r.je/mvc-in-php.html
大约 7 年之前 回复
dqjjw04440
dqjjw04440 1)控制器永远不应该处理任何逻辑,但是分配请求参数-你的意思是什么?你能更清楚一点吗?
大约 7 年之前 回复
donqo88682
donqo88682 您正在使用http标头重定向重定向到视图,如果您尚未运行安装包含,则第二个脚本将不会加载这些对象。通常你会使用require$_SERVER[“DOCUMENT_ROOT”]和路径。通过这样做,您仍然可以访问视图中的模型。
大约 7 年之前 回复
dongmu2517
dongmu2517 你做错了什么?好吧-从一开始就是一切。1)控制器永远不应该处理任何逻辑,但是分配请求参数2)控制器不应该呈现任何东西3)MVC中没有模型,但是服务4)泄漏数据封装5)缺少$response的抽象
大约 7 年之前 回复
dongzhuo1498
dongzhuo1498 您的视图不知道$msg,您可能需要以另一种方式调用msg。您使用的是第三方mvc框架吗?请在您的视图中尝试<?phpecho$msg?>或{msg}。
大约 7 年之前 回复

1个回答



在这种情况下,你可以像这个标题一样重定向('location:'。URL。'myaccount / index?error') ; </ code>
并在视图中检查 $ _ GET ['error'] </ code>是否设置了echo错误。 </ p>

:D愚蠢的方式,但我认为它会起作用</ p>
</ div>

展开原文

原文

In this case you can redirect like this header('location: '. URL .'myaccount/index?error'); and check in the view if $_GET['error'] is set echo the error.

:D stupid way but I think it will work

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐