PHP 2-Factor Autorisatie (2FA)
Pagina: « vorige 1 2 3 4 5 6 volgende »
Notice: Undefined index: User in C:\xampp\htdocs\website met 2fa\welcome.php on line 35
Dan is die sessie niet aangemaakt als je die oproept. Of je mist een session_start();
Dit is het hele login formulier:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<?php
session_start();
require_once('connection.inc.php');
if(isset($_POST['Login'])) {
htmlspecialchars($userName = $_POST['UName']);
htmlspecialchars($password = $_POST['pwd']);
if(empty($_POST['UName']) || empty($_POST['pwd'])) {
header("location:../login.php?Empty= Vul alle velden in");
}
else {
$sql= "SELECT * FROM employee WHERE UName=? AND Pass=?";
$stmt = mysqli_stmt_init($conn);
if(!mysqli_stmt_prepare($stmt, $sql)) {
header('Location: login.php?MYSQLI_ERROR');
}
else {
mysqli_stmt_bind_param($stmt, "ss", $userName, $password);
mysqli_stmt_execute($stmt);
$result = mysqli_stmt_get_result($stmt);
}
if($row = mysqli_fetch_assoc($result)) {
if($row['2FAStatus'] == 0) {
$_SESSION['User'] =$row['UName'];
$_SESSION['ID'] =$row['ID'];
header("location:../wellcome.php?uid=".$row['UName']);
exit();
}
else if ($row['2FAStatus'] == 1) {
if(isset($_COOKIE['remember'])) {
$_SESSION['User'] =$row['UName'];
$_SESSION['ID'] =$row['ID'];
header("Location:../welcome.php?uid=".$row['UName']);
exit();
}
else {
header('Location: ../2FALogin.php?request=valid');
exit();
}
}
}
else {
header("location:../login.php?Invalid= Verkeerd wachtwoord/gebruikersnaam combinatie");
exit();
}
}
}
else {
header('Location: inlogfail.html');
}
?>
session_start();
require_once('connection.inc.php');
if(isset($_POST['Login'])) {
htmlspecialchars($userName = $_POST['UName']);
htmlspecialchars($password = $_POST['pwd']);
if(empty($_POST['UName']) || empty($_POST['pwd'])) {
header("location:../login.php?Empty= Vul alle velden in");
}
else {
$sql= "SELECT * FROM employee WHERE UName=? AND Pass=?";
$stmt = mysqli_stmt_init($conn);
if(!mysqli_stmt_prepare($stmt, $sql)) {
header('Location: login.php?MYSQLI_ERROR');
}
else {
mysqli_stmt_bind_param($stmt, "ss", $userName, $password);
mysqli_stmt_execute($stmt);
$result = mysqli_stmt_get_result($stmt);
}
if($row = mysqli_fetch_assoc($result)) {
if($row['2FAStatus'] == 0) {
$_SESSION['User'] =$row['UName'];
$_SESSION['ID'] =$row['ID'];
header("location:../wellcome.php?uid=".$row['UName']);
exit();
}
else if ($row['2FAStatus'] == 1) {
if(isset($_COOKIE['remember'])) {
$_SESSION['User'] =$row['UName'];
$_SESSION['ID'] =$row['ID'];
header("Location:../welcome.php?uid=".$row['UName']);
exit();
}
else {
header('Location: ../2FALogin.php?request=valid');
exit();
}
}
}
else {
header("location:../login.php?Invalid= Verkeerd wachtwoord/gebruikersnaam combinatie");
exit();
}
}
}
else {
header('Location: inlogfail.html');
}
?>
Ik heb gekeken naar de geïnstalleerde php versie, via phpinfo();.
Het blijkt dat op mijn server staat php versie 7.3.1 geïnstalleerd en op mijn XAMPP, staat php versie 7.3.2.
Maakt dat uit?
- Ariën - op 11/03/2019 12:50:58:
Wat staat er in
Al geprobeerd?
Jin vanTongeren op 11/03/2019 16:51:24:
Notice: Undefined index: User in C:\xampp\htdocs\website met 2fa\welcome.php on line 35
Zei ik al bovenaan de pagina.
Dat lijkt mij sterk. Ik noem geen User in die functie.
Ik ga proberen om XAMPP opnieuw te installeren, maar nu met een oudere PHP versie. (php versie 7.3.1)
Hopen dat het downgraden van de PHP versie wel lukt...
Gewijzigd op 11/03/2019 17:34:26 door - Ariën -
Ik zie het al.
Ik had dit gedaan:
Nu ik dit heb gedaan:
zie ik dit: Array ( )
Ik heb net XAMPP opnieuw geïnstalleerd naar 7.3.1, maar dat werkt helaas niet.
Toevoeging op 11/03/2019 18:00:17:
Code (php)
1
2
3
4
5
2
3
4
5
<?php
session_start();
$_SESSION['User'] = array("Piet");
print_r($_SESSION['User']);
?>
session_start();
$_SESSION['User'] = array("Piet");
print_r($_SESSION['User']);
?>
Dit geeft hier Piet aan.
Of moet het 1 regel boven de $_SESSION['User']?
Test mijn code eens in een los bestand?
(Array ( [0] => Piet ))
Dan is er niks mis met je sessies, maar in je script zelf ergens. Ik raad aan om even te debuggen of $row wel zijn data krijgt, en of je if-statement waarin je sessies staat, wel wordt bereikt.
Code (php)
Nu krijg ik te zien:
JVT (Mijn gebruikersnaam op de website waarmee ik inlog, is JVT)
Dus hier is niets mis mee. (denk ik)
En zoals ik al zei: Op mijn server doen de sessions het perfect.
Alleen op de XAMPP niet.
Terwijl de code letterlijk hetzelfde is.
Waar heb je mijn code dan uitgetest?
Alleen in een ander apart bestand.
Je probleem ligt dan ergens anders, dus volg het pad uit mijn vorige bericht.
Het doet het ineens weer.
Ineens wordt ik weer ingelogd etc.
Ik heb GEEN IDEE wat er fout ging en ook GEEN IDEE wat er is gebeurd om het op te lossen.
Hij deed het ineens...
Voor de zekerheid: dit is mijn code:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<?php
session_start();
require 'connection.inc.php';
if(isset($_POST['Login'])) {
htmlspecialchars($userName = $_POST['UName']);
htmlspecialchars($password = $_POST['pwd']);
if(empty($_POST['UName']) || empty($_POST['pwd'])) {
header("location:../login.php?Empty= Vul alle velden in");
}
else {
$sql= "SELECT * FROM employee WHERE UName=? AND Pass=?";
$stmt = mysqli_stmt_init($conn);
if(!mysqli_stmt_prepare($stmt, $sql)) {
header('Location: login.php?MYSQLI_ERROR');
}
else {
mysqli_stmt_bind_param($stmt, "ss", $userName, $password);
mysqli_stmt_execute($stmt);
$result = mysqli_stmt_get_result($stmt);
}
if($row = mysqli_fetch_assoc($result)) {
if($row['2FAStatus'] == 0) {
$_SESSION['User'] = $row['UName'];
$_SESSION['ID'] =$row['ID'];
header("Location:../wellcome.php?uid=".$row['UName']);
exit();
}
else if ($row['2FAStatus'] == 1) {
if(isset($_COOKIE['remember'])) {
$_SESSION['User'] =$row['UName'];
$_SESSION['ID'] =$row['ID'];
header("Location:../wellcome.php?uid=".$row['UName']);
exit();
}
else {
header('Location: ../2FALogin.php?request=valid');
exit();
}
}
}
else {
header("location:../login.php?Invalid= Verkeerd wachtwoord/gebruikersnaam combinatie");
exit();
}
}
}
else {
header('Location: inlogfail.html');
}
?>
session_start();
require 'connection.inc.php';
if(isset($_POST['Login'])) {
htmlspecialchars($userName = $_POST['UName']);
htmlspecialchars($password = $_POST['pwd']);
if(empty($_POST['UName']) || empty($_POST['pwd'])) {
header("location:../login.php?Empty= Vul alle velden in");
}
else {
$sql= "SELECT * FROM employee WHERE UName=? AND Pass=?";
$stmt = mysqli_stmt_init($conn);
if(!mysqli_stmt_prepare($stmt, $sql)) {
header('Location: login.php?MYSQLI_ERROR');
}
else {
mysqli_stmt_bind_param($stmt, "ss", $userName, $password);
mysqli_stmt_execute($stmt);
$result = mysqli_stmt_get_result($stmt);
}
if($row = mysqli_fetch_assoc($result)) {
if($row['2FAStatus'] == 0) {
$_SESSION['User'] = $row['UName'];
$_SESSION['ID'] =$row['ID'];
header("Location:../wellcome.php?uid=".$row['UName']);
exit();
}
else if ($row['2FAStatus'] == 1) {
if(isset($_COOKIE['remember'])) {
$_SESSION['User'] =$row['UName'];
$_SESSION['ID'] =$row['ID'];
header("Location:../wellcome.php?uid=".$row['UName']);
exit();
}
else {
header('Location: ../2FALogin.php?request=valid');
exit();
}
}
}
else {
header("location:../login.php?Invalid= Verkeerd wachtwoord/gebruikersnaam combinatie");
exit();
}
}
}
else {
header('Location: inlogfail.html');
}
?>
Misschien ziet u wat er fout ging en wat er is gebeurd om het op te lossen.
Ik weet het niet.
Maarre... Rauwe passwords zonder hash? :-/