Ich verwende eine Sitzungsvariable, um zu überprüfen, ob der Benutzer angemeldet ist. Aber das erste Mal, wenn Sie das Anmeldeformular die Sitzungsvariable ist irgendwie nicht festgelegt, aber ONLY das erste Mal.Sitzungsvariable nicht beim ersten Versuch festgelegt
Wenn ich das Anmeldeformular zweimal abschicke, funktioniert es.
Oder lassen Sie uns sagen, ich habe das Formular zweimal eingereicht, um sich einzuloggen. Dann abmelden. Jetzt brauche ich nur ein einziges Mal das Formular abzuschicken eingeloggt
Hier ist der Code im ist mit der Benutzerkennung anmelden.
<?php
session_start();
define('DB_NAME', 'madsanker_dk_db');
define('DB_USER', 'madsanker_dk');
define('DB_PASSWORD', '');
define('DB_HOST', 'mysql43.unoeuro.com');
$link = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD);
if (!$link) {
die('Could not connect: ' .mysqli_error());
}
$db_selected = mysqli_select_db($link, DB_NAME);
if (!$db_selected) {
die('Could not connect: ' .mysqli_connect_error());
}
$username = $_POST['username'];
$password = $_POST['password'];
$username = mysqli_real_escape_string($link,$username);
$password = mysqli_real_escape_string($link,$password);
$password = md5($password);
$sql = "SELECT * FROM mainLogin WHERE username = '$username'";
$result = mysqli_query($link, $sql);
$count=mysqli_num_rows($result);
if($count==1){
$row = mysqli_fetch_assoc($result);
if ($password == $row['password']){
SETTING THE VARIABLE HERE --> $_SESSION['login'] = $username;
echo "<script> window.location.assign('http://www.madsanker.dk'); </script>";
return true;
}
else {
echo "<script> window.location.assign('http://www.madsanker.dk/loginpage'); </script>";
return false;
}
}else{
echo "<script> window.location.assign('http://www.madsanker.dk/loginpage'); </script>";
return false;
}
mysqli_close($link);
?>
Ich bin sicher, dass die Variable sein wird setze das erste Mal, denn wenn ich die Variable echo und tun exit();
direkt nachdem es eingestellt wurde es richtig angezeigt.
Die Seite, die ich wie folgt aussieht bin Umleiten:
<?php
session_start();
$_SESSION['activePage'] = "home";
?>
<!DOCTYPE html>
<html>
<head>
<title>Madsanker</title>
<link rel="stylesheet" href="main.css" name="pageStyle" type="text/css">
<?php include "nav-bar.php"; ?>
</head>
<body>
<h2>Welcome to Madsanker.dk</h2>
<?php include "chatIframe.php" ?>
</body>
</html>
Auch wenn ich var_dump($_SESSION['login']); exit();
es sagt, es zeigt am oberen Rand des Dokuments setzen NULL
das erste und das zweite Mal, der Benutzername richtig.
Ich habe versucht, dies für etwa eine Stunde zu beheben, und ich kann wirklich sehen, warum das nicht funktioniert.
'md5' ist keine sichere Möglichkeit, Ihre Passwörter zu hashen. Überlege, ob du zu [password_hash] wechseln willst (http://stackoverflow.com/questions/14992367/using-php-5-5s-password-hash-and-verify-function-am-i-doing-it-right) – Machavity
versuche es Verwenden Sie php 'header' Funktion, um statt js' window.location.assign' umzuleiten, wenn der Benutzer eingeloggt ist und das Ergebnis sehen –