Sesja nie działa mimo spełnionych statementów

0

Hej, dziwna rzecz z której nie mogę wybrnąć.

Mam system logowania - w skrócie bo nikomu sie nie bedzie chciało analizować - jeśli istnieje email i haslo i nie ma sesji to sprawdz czy email i hasło są poprawne - jesli tak to sprawdz w bazie czy istnieje email i jeśli tak to sprawdź czy password istnieje i jeśli istnieje to utwórz sesję - NO I właśnie echuje mi "success" ale już sesja nie tworzy. A jeśli na przykład umieściłbym to: $_SESSION["member"] = "przykladowy email" na górze tego pliku czy przed if to wtedy sesja działa

PODSUMOWUJĄC: mimo, że if spełnia warunku to sesja się nie ustawia, ale gdy wjleje to przed if czy na poczatku pliku $_SESSION["member"] = "przykladowy email" to sesja istnieje. co moze byc powodem?

if(isset($_POST["enter_email"]) && isset($_POST["enter_password"]) && !isset($_SESSION['member'])) {    
	$enter_email = $_POST["enter_email"];
	$enter_password = $_POST["enter_password"];
	if(filter_var($enter_email, FILTER_VALIDATE_EMAIL) && preg_match("/^[a-zA-Z0-9]{8,30}$/", $enter_password)) {  
		include_once("server.php");
		$conn = db();
		$check_email_exist = $conn->prepare("SELECT * FROM members WHERE `email_address` = '$enter_email'");
		$check_email_exist->execute(); 	
		$count_result = $check_email_exist->rowCount();   
		if($count_result == 1) {    
			$row = $check_email_exist->fetch(PDO::FETCH_ASSOC);
			$password = $row['password'];
			if(password_verify($enter_password, $password)) {   
				$_SESSION["member"] = $enter_email;   
				echo "success";				
			} else {
				echo "wrong";
			}
		} else {
			echo "unfound";
		}
	} else {
		echo "invalid";
	}
}
0
katakrowa napisał(a):

A gdzie masz session_start https://www.php.net/manual/en/function.session-start.php ?

session start mam na samej górze index.php

umieściłem w osobnym pliku. więc mozna temat usunąć.

0

@DuzaCzarna: Czemu usunąć? Rozwiązałeś już problem? Jeżeli tak to napisz. Gdyby jednak nie było rozwiązane to, które "echo" się Tobie wyświetla z tego if'a?

0
leonpro778 napisał(a):

@DuzaCzarna: Czemu usunąć? Rozwiązałeś już problem? Jeżeli tak to napisz. Gdyby jednak nie było rozwiązane to, które "echo" się Tobie wyświetla z tego if'a?

wyświetla się echo "success" więc i sesja powinna działać, a że nie mialem innego pomysłu to funkcję logowania przeniosłem do osobnego pliku niezwiązanego z index.php

1 użytkowników online, w tym zalogowanych: 0, gości: 1