【问题标题】:My php code is not working when merging into a nav bar合并到导航栏时我的 php 代码不起作用
【发布时间】:2019-02-28 17:59:43
【问题描述】:

我需要一些指导。

我在教程中找到的代码工作得非常好,我想尝试在我正在处理的网站上使用/调整它到我的导航栏中。

运行良好的 php 代码:

            <?php
        if (!isset($_SESSION['id'])) {
          echo '<form action="includes/login.inc.php" method="post">
            <input type="text" name="mailuid" placeholder="E-mail/Username">
            <input type="password" name="pwd" placeholder="Password">
            <button type="submit" name="login-submit">Login</button>
          </form>
          <a href="signup.php" class="header-signup">Signup</a>';
        }
        else if (isset($_SESSION['id'])) {
          echo '<form action="includes/logout.inc.php" method="post">
            <button type="submit" name="logout-submit">Logout</button>
          </form>';
        }
        ?>

我拥有的代码是我需要它工作的地方(在我的菜单导航栏中),但是我认为因为我的导航栏不是表单/按钮,我无法将操作标签链接到它:

<nav class="navbar navbar-expand-lg">
        <div class="container-fluid">
        <a class="navbar-brand text-left" href="index.php">iStudy University <i class="fas fa-graduation-cap"></i></a>
            <button type="button" class="navbar-dark navbar-toggler" data-toggle="collapse" data-target="#myTogglerNav"
                    aria-controls="myTogglerNav" aria-label="Toggle Navigation"><span class="navbar-toggler-icon"></span>
            </button>  <!-- Aria controls are for assistive screen readers -->

            <section class="collapse navbar-collapse" id="myTogglerNav">
            <div class="navbar-nav ml-auto">
                <a class="nav-item nav-link px-3" href="index.php"><i class="fas fa-home"><span class="nav-text">&nbsp; Home</span></i></a>
                <a class="nav-item nav-link px-3" href="about.html"><i class="fas fa-info-circle"><span class="nav-text">&nbsp; About</span></i></a>
                <a class="nav-item nav-link px-3" href="contact.html"><i class="fas fa-envelope"><span class="nav-text">&nbsp; Contact Us</span></i></a>
                <a class="nav-item nav-link px-3" href="signup.php"><i class="fas fa-check-square"><span class="nav-text">&nbsp; Sign Up</span></i></a>
               <?php  
                    if (!isset($_SESSION['id'])) {
                      echo "<a class='nav-item nav-link px-3' name='login-submit' action='includes/login.inc.php' href='login.php'><i class='fas fa-sign-in-alt'><span class='nav-text'>&nbsp; Login</span></i></a>";
                    } else if (isset($_SESSION['id'])) {
                      echo "<a class='nav-item nav-link px-3' name='logout-submit' href='includes/logout.inc.php'><i class='fas fa-sign-out-alt'><span class='nav-text'>&nbsp; Logout</span></i></a>";
                    }
                ?>


            </div>
            </section>
        </div>
    </nav>

有什么方法可以使用我的导航栏代码,但是使用“操作”标签和名称标签,因为 include/login.inc.php 包含一些登录时的错误处理检查。当点击登录时,login.inc.php 文件没有运行。任何帮助都会非常感谢。

【问题讨论】:

  • 到底是什么问题?什么不工作?您的导航栏在 .php 文件中吗?我真的不明白你想要实现什么!
  • 嗨@AfifZafri,无论如何我可以在'nav'菜单标签内仍然使用它吗?
  • Hello @Soheyl ,所以在第一个有效的代码 sn-p 中(来自教程),我需要将该代码修改为我的菜单的导航栏代码,但是操作标签似乎没有工作,所以当点击 LOGIN 时,includes/login.inc.php 文件没有运行。因此,我正在努力寻找解决方案或解决此问题的方法,以便在单击 LOGIN 时文件确实运行。
  • 将此includes/login.inc.php 放入href 并从登录&lt;a&gt; 标记中删除action 属性。

标签: php html


【解决方案1】:

好的,这就是我从您的 cmets 中了解到的,

您的表单在 login.php 中,用于测试用户电子邮件和密码以及其他内容的 php 代码在 login.inc.php 中,

首先说明一下,不能在表单外使用action="",也不能在表单标签内使用href="",所以可以:

例如,改变:

echo "<a class='nav-item nav-link px-3' name='login-submit'
action='includes/login.inc.php' href='login.php'>

收件人:

echo "<a class='nav-item nav-link px-3' name='login-submit' href='login.php'>

只需使用 href="login.php" 将用户发送到登录表单,在那里您可以使用带有 action="login.inc.php" 的表单或将 login.inc.php 中的所有代码添加到login.php 文件并在表单提交后运行代码:

if (isset($_POST['email'])) {
  // Run the code inside login.inc.php
} // Example to check if the form is submitted

【讨论】:

    猜你喜欢
    • 2021-08-04
    • 1970-01-01
    • 2019-01-15
    • 2017-09-20
    • 1970-01-01
    • 1970-01-01
    • 2017-03-06
    相关资源
    最近更新 更多