Ich habe so ein Problem mit einem kleinen Projekt, an dem ich gearbeitet habe. Ich versuche so viel wie möglich über HTML, PHP, MySQL usw. zu lernen. Ich habe eine Datenbank mit MySQL erstellt und ich weiß, dass ich das Setup richtig eingerichtet habe, weil die Login-Seite, die ich benutze, wissen kann, was ist die richtigen und falschen Benutzerkonten. Ich kann anscheinend nicht in der Lage sein, die Seite zu erhalten, um bei einer erfolgreichen Anmeldung auf die Begrüßungsseite umzuleiten. Hier ist mein Code.Die Anmeldeseite kann nicht umgeleitet werden, wenn Benutzeranmeldeinformationen eingegeben werden
Login-Seite-Code
<?php
include("config.php");
session_start();
if($_SERVER["REQUEST_METHOD"] == "POST") {
// username and password sent from form
$myusername = mysqli_real_escape_string($db,$_POST['username']);
$mypassword = mysqli_real_escape_string($db,$_POST['password']);
$sql = "SELECT id FROM admin WHERE username = '$myusername' and passcode = '$mypassword'";
$result = mysqli_query($db,$sql);
$row = mysqli_fetch_array($result,MYSQLI_ASSOC);
$active = $row['active'];
$count = mysqli_num_rows($result);
// If result matched $myusername and $mypassword, table row must be 1 row
if($count == 1) {
session_register("myusername");
$_SESSION['username'] = $myusername;
header("location: welcome.php");
}else {
$error = "Your Login Name or Password is invalid";
}
}
?>
<html>
<head>
<title>Login Page</title>
<style type = "text/css">
body {
font-family:Arial, Helvetica, sans-serif;
font-size:14px;
}
label {
font-weight:bold;
width:100px;
font-size:14px;
}
.box {
border:#666666 solid 1px;
}
</style>
</head>
<body bgcolor = "#FFFFFF">
<div align = "center">
<div style = "width:300px; border: solid 1px #333333; " align = "left">
<div style = "background-color:#333333; color:#FFFFFF; padding:3px;"><b>Login</b></div>
<div style = "margin:30px">
<form action = "" method = "post">
<label>UserName :</label><input type = "text" name = "username" class = "box"/><br /><br />
<label>Password :</label><input type = "password" name = "password" class = "box" /><br/><br />
<input type = "submit" value = " Submit "/><br />
</form>
<div style = "font-size:11px; color:#cc0000; margin-top:10px"><?php echo $error; ?></div>
</div>
</div>
</div>
</body>
</html>
Session-Code
<?php
include('config.php');
session_start();
$user_check = $_SESSION['myusername'];
$ses_sql = mysqli_query($db,"select username from admin where username = '$user_check' ");
$row = mysqli_fetch_array($ses_sql,MYSQLI_ASSOC);
$login_session = $row['username'];
if(!isset($_SESSION['username'])){
header("location:welcome.php");
}
?>
Weitergeleitete Seite
<?php
include('session.php');
?>
<html>
<head>
<title>Welcome </title>
</head>
<body>
<h1>Welcome <?php echo $login_session; ?></h1>
<h2><a href = "logout.php">Sign Out</a></h2>
</body>
</html>
<?php
session_start();
if(session_destroy()) {
header("Location: login.php");
}
strong text ?>
Sie mischen ** $ _ SESSION ['myusername']; $ row ['username'] ** und ** $ _ SESSION ['username'] ** –
Und deine session.php ist falsch. Im Falle eines Fehlers wird es zu welcome.php umgeleitet, so dass Sie in einer Weiterleitungsschleife stecken bleiben werden –
Und wenn die Anmeldeseite keinen Fehler wirft, wird echo $ error Fehler verursachen, was ziemlich lustig ist :). Do $ error = "" irgendwo –