View Single Post
Takk @Yochi .

Skal ta å sjekke ut dette.

God dag igjen folkens.

Ble så gode svar sist gang at jeg nesten bare må fortsette. For her var det mye god kunnskap og mye å lære.
Oppsummert så fungerer alt som det skal nå. Insert, delete og hente ut brukere går helt fint og alle feilmeldinger er korrekte.

Nå tenkte jeg å bevege meg et steg videre for å se om det går an å gjøre ting kanskje "LITT" enklere enn hva jeg har gjort nå.



Det jeg nå skal er å ha et registreringsskjema. Dette ser da sånn her ut i PHP / SQL:

Kode

$username 	= $_POST['username'];
$password 	= $_POST['password'];
$email 		= $_POST['email'];
$country 	= $_POST['country'];


$hashed_password = $password_hash($password, PASSWORD_DEFAULT);



if(!preg_match("/^([a-zA-Z' ]+)$/",$username)) {
    die ("invalid username");
}

if(!filter_var($email, FILTER_VALIDATE_EMAIL)) {
	die("Invalid email format");
}


$sql = "INSERT INTO login (username, password, email, country) VALUES ('$username', '$hashed_password', '$email', '$country')";


if($stmt = $conn->prepare($sql)) {

	$stmt->bind_param("ssss", $username, $password, $email, $country);
	$stmt->execute();
	if(!$stmt->errno) {

	}

	$stmt->close();

}
Dette er første utkast og vil bli forbedret etter at jeg vet at funksjonaliteten fungerer og brukere kommer inn i databasen (Ikke testet enda).
Men så kommer jeg til der man skal logge inn. Jeg har aldri brukt password hash med php før. Har vell kanskje bruke MD5 og SHA1 kryptering en gang i sikkert 2010, 2011 en gang, men dette kan jeg ikke huske.


Når passordet er kryptert nå så ligger det kryptert passord i Passord entryen i databasen.
Hvordan kan jeg her da verifisere dette passordet ved login?
Må det da her blir 2 SELECT spørringer? En mot hashed password og 1 mot username?

Tenker noe ala dette? (Ikke fullført enda OG heller ikke lagt inn prepared her, men dette blir).

Kode

$username 	= $_POST['username'];
$password 	= $_POST['password'];



$hashed_password = $password_hash($password, PASSWORD_DEFAULT);

$fpass = "SELECT password FROM login WHERE password='$hashed_password'";




if(!preg_match("/^([a-zA-Z' ]+)$/",$username)) {
    die ("invalid username");
}

if(!filter_var($email, FILTER_VALIDATE_EMAIL)) {
	die("Invalid email format");
}

$sql = "SELECT username FROM login where username='$username'";
Er det noe ala dette man skal gjøre for å verifisere passord og brukernavn eller har dere kanskje noen bedre ideer?
Sist endret av Nikon01; 29. april 2019 kl. 11:47. Grunn: Automatisk sammenslåing med etterfølgende innlegg.