【问题标题】:PHP generated Menu problem on XHTML 1 webpagePHP 在 XHTML 1 网页上生成菜单问题
【发布时间】:2011-07-14 05:22:38
【问题描述】:

我遇到了一个菜单问题,该菜单的生成取决于名为“login”的 PHP 会话变量是真还是假。

它应该做的是当有人第一次导航到页面时。他们不会登录,因此他们会显示一个未登录的用户菜单,但是当他们登录时,某些菜单项会发生变化。

当您转到登录页面并登录时,我的菜单工作正常,但是在您从我的菜单开始的我的主页上,一些 php 代码无缘无故地显示在我的菜单上。它的代码相同,但它不起作用。

我检查了意外的“{]”或() 或'',但没有。这真的让我发疯了

这里是代码

php session_start(); //检查是否 会话变量已初始化 如果没有那么登录设置为假 标准菜单布局。 if (isset($_SESSION["login"]) $_SESSION["登录"] = ] $_SESSION["登录"];别的 $_SESSION["登录"] = false;

<link rel="shortcut icon" type="image/x-icon" href="images/favicon.ico">
<link rel="Stylesheet" href="css/style.css" media="Screen and (min-device-width: 481px)" type="text/css" title="Default"/>
<link type="text/css" rel="Stylesheet" media="only Screen and (max-device-width: 480px)" href="css/mobile.css" />
<title>Heavy Metal - User Experience Jobs</title>

<meta name="author" content="anon"/>

<div id="banner">

    <img src="images/banner.jpg"  title="Banner Image" height="180" width="750"/> 
</div>

<div id="topmenu">
    <ul class="menu">
        <li>
            <ul class = "submenu1" id = "sm_1">
                <li><a class="link1" href="index.html">Home</a>

                </li>

                <li><a href = "php/latestjobs.php" class="link2" >Latest Jobs</a>

                </li>

                <li><a href = "search.html" class="link3">Search Jobs</a>

                </li>

                <li>
                <a href = "login.html" class="link4">Login</a>
                </li>

                <li>
                <?php
                if ($_SESSION["login"] == true)
                    echo    ('<a href = "php/j_details.php" class="link4">Check Details</a>');}
                else if ($_SESSION["login"] == false)
                    echo    ('<a href = "register.html" class="link4">Register</a>');
                ?>
                </li>
            </ul>
        </li>
    </ul>
</div>

感谢您的宝贵时间!

【问题讨论】:

    标签: php xhtml menu


    【解决方案1】:

    您已将文件命名为index.html。如果没有 .php 文件扩展名,服务器不知道它应该是您希望它处理的 PHP 脚本,因此它只是逐字返回页面,所有 &lt;?php 部分都保留在原处。

    【讨论】:

    • 我认为我可以使用 在 HTML 文件中运行一些 php,我尝试将其重命名为 index.php,但仍然出现显示错误。
    • 在此处粘贴错误。您不会显示所有代码,而只是显示一段代码。没有人可以知道究竟是什么工作不正常。
    • @pmqtr:在那个 pastebin 中——但不是在发布的 index.html 链接中——你在if 条件中缺少一个右括号。
    • ...尽管如此,我无法弄清楚您要使用该代码做什么。第一次访问页面时,它会给你一个会话,login 设置为FALSE,然后第二次,它会注意到login 已设置,因此将其设置为TRUE,不管是否实际登录。
    【解决方案2】:

    你有太多的语法错误和其他...

    替换此代码:

    <?php
     session_start();
     //check if session variable has been initialised if not then login set to false making standard menu layout.
     if (isset($_SESSION["login"])
     $_SESSION["login"] = true;
     else
     $_SESSION["login"] = false;
     ?>
    

    用这个:

    <?php
     session_start();
     //check if session variable has been initialised if not then login set to false making standard menu layout.
     if (isset($_SESSION["login"])) {
     $_SESSION["login"] = true;
     }
     else {
     $_SESSION["login"] = false;
     }
     ?>
    

    还有这个:

                        if ($_SESSION["login"] == true)
                        echo    ('<a href = "php/j_details.php" class="link4">Check Details</a>');}
                    else if ($_SESSION["login"] == false)
                        echo    ('<a href = "register.html" class="link4">Register</a>');
    

    与:

    <?php
    if ($_SESSION["login"] == true) {
    echo    ('<a href = "php/j_details.php" class="link4">Check Details</a>');}
    else if ($_SESSION["login"] == false) {
    echo    ('<a href = "register.html" class="link4">Register</a>'); }
    ?>
    

    明白了吗? 希望对你有帮助。

    【讨论】:

    • 谢谢您 filip,但我仍然遇到错误。你认为是什么问题? :) i.imgur.com/UGYE6.png
    • 从那张图片我可以得出两个结论。首先,您放置 php 代码的那个文件没有扩展名“*.php”,或者您上传文件的服务器没有运行 php。也许他只运行 .ASP 或其他语言,或者服务器有 php 处理问题。
    猜你喜欢
    • 2010-12-03
    • 2020-06-02
    • 2012-07-27
    • 1970-01-01
    • 1970-01-01
    • 2015-01-08
    • 1970-01-01
    • 2020-12-14
    • 1970-01-01
    相关资源
    最近更新 更多