我在登錄代碼時出現了一些問題,當我嘗試登錄時第一次無法運行。我不知道我在做什麼錯,但它第一次將永遠給我的錯誤,這裏的代碼(評論是在荷蘭):我的登錄代碼第一次不工作?第二次呢?
<?php
if(isset($_POST['login'])){
$username = $_POST['username'];
$password = $_POST['password'];
//Maakt de variables korter, en beschermt ze tegen sql injectie d.m.v. real_escape
$gb = mysqli_real_escape_string($con, $_POST['username']);
$password = mysqli_real_escape_string($con, $_POST['password']);
//Deze maakt de wachtwoord en salt 1 Dat zorgt ervoor als je database
//ooit wordt gehackt, ze niet je klanten hun wachtwoord hebben.
$ww1 = $password.$salt;
//Deze encrypt het nieuwe wachtwoord, dus bijv stel het wachtwoord is lol123 en je salt is abc123
//dan is het wachtwoord lol123abc123
$ww = sha1($ww1);
//Vergeet niet de tablenaam medewerkers aan te passen naar jou shit.
//Dit is de query
$select_user = "SELECT * FROM users WHERE username='$gb' AND password='$ww'";
//Deze zin runned de query daadwerkelijk
$run_user = mysqli_query($con, $select_user);
//Deze kijkt hoeveel ROWS er terugzijn gekomen, als het meer dan 1 is klopt het dus.
$check_user = mysqli_num_rows($run_user);
if($check_user>0){
session_start();
$_SESSION['username'] = "$gb";
echo "<script>{location.href = 'home.php'; };</script>";
}else {
echo "<p> Gegevens kloppen <b>niet!</b></p>";
}
}
?>
這是登錄頁面代碼^。
這是主頁的代碼中,將在登錄後進入:
<?php
session_start();
$username = $_SESSION['username'];
if(strlen($username) < 1){
die('Error');
}
?>
我真的不知道什麼是錯
你正在做幾件事情錯誤......使用'escape_string'而不是準備好的查詢,使用'sha1'而不是'password_hash' /'password_verify'等等。 –
在發生任何事情或意圖發生之前,您應該在第一個文件中啓動會話。還要檢查會話是否已設置。 –
但這是否會影響登錄次數2次? – FluffyMe