-1

ログアウトボタンをヘッダーに印刷するためにechoステートメントをいじくり回してきましたが(ユーザーがログインしているとき)、次のようなエラーが発生し続けます。

解析エラー:構文エラー、予期しないT_ECHO、「、」または「;」が必要です /vagrant/web/Project/application/views/_header.phpの19行目コールスタック:0.0013 634608 1. {main}()/vagrant/web/Project/index.php:0 0.0123 636728 2. require_once('/ vagrant / web / Project / system / core / CodeIgniter.php')/vagrant/web/Project/index.php:202 0.1486 1025392 3. call_user_func_array()/vagrant/web/Project/system/core/CodeIgniter.php:359 0.1486 1025528 4. Fp_controller-> index()/vagrant/web/Project/system/core/CodeIgniter.php:0 0.1486 1025976 5. Viewlib-> loadview()/vagrant/web/Project/application/controllers/fp_controller.php :12 0.1487 1026192 6. CI_Loader-> view()/vagrant/web/Project/application/libraries/Viewlib.php:16 0.1487 1027600 7. CI_Loader-> _ ci_load()/ vagrant / web / Project / system / core / Loader .php:419

または、URLが完全に台無しになります(構成ファイルで宣言した実際のベースURL名の代わりに文字通り「base_url();」が表示されます。誰か助けてもらえますか?

ヘッダービュー

<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Final Project Incorporated</title>
    </head>
    <body>
        <h1>Navigation:</h1>

        <ul>
            <li><a href="<?php echo base_url(); ?>fp_controller/index">Home</a></li>
            <li><a href="<?php echo base_url(); ?>fp_controller/directory">Employee Directory</a></li>
            <li><a href="<?php echo base_url(); ?>fp_controller/form">Add Employee Form</a></li>
            <li><a href="<?php echo base_url(); ?>fp_controller/login">Login</a></li>

                <?php 

            if ($this->session->userdata('isLoggedIn')) {
Line 19>>>>              echo "<li>" . "<a href=" . "'" echo base_url();"'" .     "fp_controller/logout" . ">" . "Logout" . "</a>" . "</li>";
            }

            ?>

        </ul>

        <hr />
    </body>
</html>
4

2 に答える 2

1

php ステートメント内にエコーを配置することはできません。連結するだけです。

echo "<li>" . "<a href=" . "'".base_url()."'" ."fp_controller/logout" . ">" . "Logout" . "</a>" . "</li>";

これには site_url() を使用することもできます。これにより、URL の構築が処理されます。

echo '<li><a href="'.site_url('fp_controller/logout').'">Logout</a></li>";

別の書き方で、短い形式で:

<?php if ($this->session->userdata('isLoggedIn')) : ?>
   <li><a href="<?php echo site_url('fp_controller/logout');?>">Logout</a></li>
<?php endif;

このようにして、引用符のエスケープなどで起こりうるエラーを減らします。プレーンな html を記述し、テンプレート エンジンとして php を使用するだけです。個人的には、この方法の方が読みやすく、エラーが発生しにくいと思います。

于 2012-12-06T06:32:20.843 に答える
1

アプリケーションで使用している簡単なログアウトの例。配列名でセッションにユーザーデータを保存すると仮定しています$logged_in_user

View:

<p class="user">Hello, <?php echo $logged_in_user['user_name'] ?> | <a href="<?php echo ROOT_FOLDER ?>/controller_name/logout_function_name">Logout</a></p>


Controller:

public function logout_function_name(){
        $this->model_file_name->logout_function_name();
        redirect("/controller_function_name/page_name_where_you_want_to_redirect");
    }

Model:

public function logout()
{
    $this->session->sess_destroy();
}
于 2012-12-06T06:43:16.907 に答える