登录标题不起作用

时间:2017-11-28 17:04:13

标签: php jquery html css bootstrap-4

我正在尝试编写登录系统代码,但我遇到了登录问题:

当您加入网页时

../?p=Login

当您按下登录按钮时,您应该被发送到

../?p=index 

但标题应为

../?a=loggedin

因为标准是

Includes/index.php

索引中的PHP代码:

if(isset($_GET['p'])) {
    $p = htmlspecialchars($_GET['p']);
}   else {
    $p = "index";
}

include 'Includes/' . $p . ".php";

如果等于登录,则Includes/index.php a 输出:

if(isset($_GET['a'])) {
if($_GET['a'] == "loggedin") {
  echo('<div class="Password-true"> Du hast dich erfolgreich angemeldet. 
</div>');
}
}

我认为问题可能出在登录代码中,但我不知道在哪里 问题是,我插入了所有代码:

<?php
if(isset($_POST['username'], $_POST['password'])) {
$username = htmlspecialchars($_POST['username']);
$password = password_hash(htmlspecialchars($_POST['password']), 
PASSWORD_DEFAULT );

$login_statement = $pdo->prepare("SELECT * FROM user_users WHERE username 
LIKE :username OR email LIKE :username");
$login_statement->bindParam("username", $username);
$login_statement->execute();
$user = $login_statement->fetch();

if($user != null) {
  if(isset($_SESSION)) {
    session_start();
  }
  $_SESSION['username'] = $user['username'];
  header("Location: /?a=loggedin");
  } else {
  echo('<div class="login-false"> Benutzername und Passwort stimmen nicht 
  überein. </div>');
  }
  }

  <div class="login">
  <div class="login-header">
  <h1>Login</h1>
  <hr size="3" />
  </div>
  <div class="login-content">
  <form method="post" action="/?p=Login">
  <h3> Benutzername / E-Mail </h3>
  <input type="text" class="datainput" name="username" style="height: 30px; 
  padding-left: 5px;" required placeholder="Nutzername oder E-Mail"  /><br>
  <br>

  <h3> Passwort</h3>
  <input type="password" class="datainput" name="password" style="height: 
  30px; padding-left: 5px;" required placeholder="Passwort" /><br><br><br>
   <br><br>

  <input type="submit" value="Login" style="height: 30px; width: 100px;" />
   </form>
  </div>
    <div class="login-footer">
   <hr size="3" />
     Fülle alle Felder aus, um dich anzumelden.
 </div>
 </div>

最后我要补充一点,我使用a tutorial on YouTube并使用Bootstrap和jQuery。

我的网站是:http://mysticsouls.developed-media.de

(现在还不错)。

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

听起来你想要这个用于网址: ?/ P =指数&安培; A =的loggedIn

然后你可以从这里获得$ _GET和p。否则,你能澄清一下吗?

答案 1 :(得分:1)

如果标题已经发送,则

header()将无效... aka 如果在执行此部分之前显示某些代码/ html。

另一种方法是回应一些JavaScript。既然你有jquery,我认为你可能会接受另一种选择;)

<script>window.location = '/?a=loggedin'</script>

据我所知,您的代码存在一些严重的安全问题。你应该首先使用本地副本,我甚至会禁用实时版本...现在......