Hallo allemaal!
Ik probeer in simpel inlog form te maken via informatie uit een database. De informatie uit de database komt door een registratie form die ik heb gemaakt. Er is nu dus een probleem met mijn code waar hij geen foutmelding over geeft. Het enige wat hij doet is de hele tijd "echo "U heeft een onjuist login/wachtwoord ingevoerd";" uitvoeren dus ik heb heel erg het gevoel alsof ik iets ben vergeten. Ik heb op het moment niet iemand dichtbij die misschien wel het probleem ziet, maar daarom hoop ik dat jullie mij kunnen helpen. Hier is mijn code:


<?php
session_start();
	
	$connect = new mysqli("localhost", 
			"root",
			"usbw", 
			"cms");
		if($connect ->connect_errno)	
		{
		        printf("Connect failed %s", $db->connect_error);
			return false;
		}
			
	if (isset($_POST['submit'])) 
	{	
		$loginpost = $_POST['login'];	
		$wachtwoordpost = $_POST['wachtwoord'];
			
		$loginpost = $_SESSION['login'];
			
		$uitkomst = mysqli_query($connect, "SELECT * FROM auteurs") or die($uitkomst . "<br/><br/>" . mysqli_error());
		$row = mysqli_fetch_array($uitkomst);
		$login = $row['Login'];
		$wachtwoord = $row['Wachtwoord'];
		if ($row["Login"] == $loginpost && $row["Wachtwoord"] == $wachtwoordpost)		
		{
			echo "U bent ingelogd!";
		}
		else 
		{
			echo "U heeft een onjuist login/wachtwoord ingevoerd";
		}
	}
}
?>


Ik hoop dat jullie mij hiermee kunnen helpen want ik word er helemaal gek van!
Alvast bedankt!

Je pakt nu een willekeurig record uit de database en gaat dan kijken of het eventueel de goede is.

Gebruik gewoon WHERE in de query.
**quoteknip**

Dat gebruikte ik ook eerst maar dat werkte niet... ik heb het er nu weer in gezet en het werkt nog steeds niet. Hij geeft ook verder geen foutmelding dus ik snap er echt niks van.
Laat de relevante code zien.
- SanThe - op 28/02/2018 22:50:02

Laat de relevante code zien.



$uitkomst = mysqli_query($connect, "SELECT * FROM auteurs WHERE Login = '$loginpost' and Wachtwoord = '$wachtwoordpost'");
			$row = mysqli_fetch_array($uitkomst);
			if ($row['Login'] == $loginpost && $row['Wachtwoord'] == $wachtwoordpost)		
Jochem Odendaal op 28/02/2018 22:38:08

Hallo allemaal!
Ik probeer in simpel inlog form te maken via informatie uit een database. De informatie uit de database komt door een registratie form die ik heb gemaakt. Er is nu dus een probleem met mijn code waar hij geen foutmelding over geeft. Het enige wat hij doet is de hele tijd "echo "U heeft een onjuist login/wachtwoord ingevoerd";" uitvoeren dus ik heb heel erg het gevoel alsof ik iets ben vergeten. Ik heb op het moment niet iemand dichtbij die misschien wel het probleem ziet, maar daarom hoop ik dat jullie mij kunnen helpen. Hier is mijn code:


<?php
session_start();
	
	$connect = new mysqli("localhost", 
			"root",
			"usbw", 
			"cms");
		if($connect ->connect_errno)	
		{
		        printf("Connect failed %s", $db->connect_error);
			return false;
		}
			
	if (isset($_POST['submit'])) 
	{	
		$loginpost = $_POST['login'];	
		$wachtwoordpost = $_POST['wachtwoord'];
			
		$loginpost = $_SESSION['login'];
			
		$uitkomst = mysqli_query($connect, "SELECT * FROM auteurs") or die($uitkomst . "<br/><br/>" . mysqli_error());
		$row = mysqli_fetch_array($uitkomst);
		$login = $row['Login'];
		$wachtwoord = $row['Wachtwoord'];
		if ($row["Login"] == $loginpost && $row["Wachtwoord"] == $wachtwoordpost)		
		{
			echo "U bent ingelogd!";
		}
		else 
		{
			echo "U heeft een onjuist login/wachtwoord ingevoerd";
		}
	}
}
?>


Ik hoop dat jullie mij hiermee kunnen helpen want ik word er helemaal gek van!
Alvast bedankt!


Probeer deze query eens:

SELECT * FROM auteurs WHERE Login ='$loginpost' 


als er een result is, vergelijk $_POST['wachtwoord']; met het wachtwoord uit de db.

Ook moet je rekening houden met sql injection. Je moet de string escapen.
Bijvoorbeeld:

$wachtwoordpost = mysqli_real_escape_string($connect, $_POST['Wachtwoord'];


Ik hoop dat je je wachtwoord wel veilig gehashed hebt!

[size=xsmall]Toevoeging op 28/02/2018 22:53:22:[/size]

Jasper Schellekens op 28/02/2018 22:51:55


als er een result is, vergelijk $_POST['wachtwoord']; met het wachtwoord uit de db.

Ook moet je rekening houden met sql injection. Je moet de string escapen.
Bijvoorbeeld:
$wachtwoordpost = mysqli_real_escape_string($connect, $_POST['Wachtwoord'];);


Dit is zo, maar als een wachtwoord gehashed is (AANRADER!!!), dan is het niet nodig. Je hebt dan toch altijd een veilige string.
- Ariën - op 28/02/2018 22:51:57

Ik hoop dat je je wachtwoord wel veilig gehashed hebt!



Dat heb ik zeker! de registratie werkt prima. Alleen de login lukt me maar niet :(

- Ariën - op 28/02/2018 22:51:57

Ik hoop dat je je wachtwoord wel veilig gehashed hebt!

[size=xsmall]Toevoeging op 28/02/2018 22:53:22:[/size]

[quote="Jasper Schellekens op 28/02/2018 22:51:55"]

als er een result is, vergelijk $_POST['wachtwoord']; met het wachtwoord uit de db.

Ook moet je rekening houden met sql injection. Je moet de string escapen.
Bijvoorbeeld:
$wachtwoordpost = mysqli_real_escape_string($connect, $_POST['Wachtwoord'];);


Dit is zo, maar als een wachtwoord gehashed is (AANRADER!!!), dan is het niet nodig. Je hebt dan toch altijd een veilige string.

[/quote]

Inderdaad, ik had mijn wachtwoord input ook niet escaped omdat ik zoiets al had gedacht. Maar de rest wel, want als je een sql injectie krijgt ben je toch wel de sjaak.




[size=xsmall]Toevoeging op 28/02/2018 22:59:04:[/size]

Jochem Odendaal op 28/02/2018 22:55:40

[quote="- Ariën - op 28/02/2018 22:51:57"]
Ik hoop dat je je wachtwoord wel veilig gehashed hebt!



Dat heb ik zeker! de registratie werkt prima. Alleen de login lukt me maar niet :(


[/quote]

In je code zie ik geen manier van hash.
MD5 werkt bijvoorbeeld zo: (MD5 kan je beter niet gebruiken)

 $postwachtwoord = md5($_POST["Wachtwoord"]); 

Als ik het goed heb dan, anders vergelijkt hij volgensmij joun ingevulde wachtwoord met een lange code die encrypted is.
Jasper Schellekens op 28/02/2018 22:51:55

[quote="Jochem Odendaal op 28/02/2018 22:38:08"]
Hallo allemaal!
Ik probeer in simpel inlog form te maken via informatie uit een database. De informatie uit de database komt door een registratie form die ik heb gemaakt. Er is nu dus een probleem met mijn code waar hij geen foutmelding over geeft. Het enige wat hij doet is de hele tijd "echo "U heeft een onjuist login/wachtwoord ingevoerd";" uitvoeren dus ik heb heel erg het gevoel alsof ik iets ben vergeten. Ik heb op het moment niet iemand dichtbij die misschien wel het probleem ziet, maar daarom hoop ik dat jullie mij kunnen helpen. Hier is mijn code:


<?php
session_start();
	
	$connect = new mysqli("localhost", 
			"root",
			"usbw", 
			"cms");
		if($connect ->connect_errno)	
		{
		        printf("Connect failed %s", $db->connect_error);
			return false;
		}
			
	if (isset($_POST['submit'])) 
	{	
		$loginpost = $_POST['login'];	
		$wachtwoordpost = $_POST['wachtwoord'];
			
		$loginpost = $_SESSION['login'];
			
		$uitkomst = mysqli_query($connect, "SELECT * FROM auteurs") or die($uitkomst . "<br/><br/>" . mysqli_error());
		$row = mysqli_fetch_array($uitkomst);
		$login = $row['Login'];
		$wachtwoord = $row['Wachtwoord'];
		if ($row["Login"] == $loginpost && $row["Wachtwoord"] == $wachtwoordpost)		
		{
			echo "U bent ingelogd!";
		}
		else 
		{
			echo "U heeft een onjuist login/wachtwoord ingevoerd";
		}
	}
}
?>


Ik hoop dat jullie mij hiermee kunnen helpen want ik word er helemaal gek van!
Alvast bedankt!


Probeer deze query eens:

SELECT * FROM auteurs WHERE Login ='$loginpost' 


als er een result is, vergelijk $_POST['wachtwoord']; met het wachtwoord uit de db.

Ook moet je rekening houden met sql injection. Je moet de string escapen.
Bijvoorbeeld:

$wachtwoordpost = mysqli_real_escape_string($connect, $_POST['Wachtwoord'];



[/quote]

Jammer genoeg werkt het alsnog niet maar toch bedankt!
Jochem Odendaal op 28/02/2018 22:55:40

[quote="- Ariën - op 28/02/2018 22:51:57"]
Ik hoop dat je je wachtwoord wel veilig gehashed hebt!



Dat heb ik zeker! de registratie werkt prima. Alleen de login lukt me maar niet :(
[/quote]
Vertel eens meer. Waar loop je po vast?
Wat heb je geprobeerd?
Hoe staat je wachtwoord opgeslagen in de database?

Enne, md5() is al gekraakt inmiddels en ontoelaatbaar gevonden voor veilig hashen.

Reageren