• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Czemu nie działa zwracanie wartości?

Object Storage Arubacloud
0 głosów
240 wizyt
pytanie zadane 5 listopada 2017 w PHP przez `Krzychuu Stary wyjadacz (13,940 p.)
zamknięte 5 listopada 2017 przez `Krzychuu

Witam

Tworzę skrypt logowania, mam problem ze zwróceniem wartości, gdy np napisze echo w funkcji VerificationLogin() to się wyświetla a jak dam return to nie wyświetla się dany błąd

class AuthC
{		
	private $login;
	private $password;
	
	public function login($login, $password)
	{
		$this->login = htmlentities($login);
		$this->password = htmlentities($password);
		
		try
		{
			$vlogin = new verificationLogin();
			$vlogin->verification($this->login, $this->password);		
		}
		catch(Exception $e)
		{
			$_SESSION['exceptionLogin'] = $e->getMessage();
			return DATABASE_ERROR;
		}
	}
}
class VerificationLogin
{
	private $login;
	private $password;
				
	public function verification($login, $password)
	{
		$this->login = $login;
		$this->password = $password;
				
		return LOGIN_FAILED;
    }
}

index.php

if(isset($_POST['login']))
{
	if((empty($_POST['login'])) || (empty($_POST['password'])))
	{
		$_SESSION['viewLoginError'] = true;
	}
	else
	{
		switch($AuthC->login($_POST['login'], $_POST['password']))
		{
			case LOGIN_SUCCESS:
				header('Location: templates/informations.php');
				break;
			case LOGIN_FAILED:
				$_SESSION['viewLoginError'] = true;
				break;
			case DATABASE_ERROR:
				$_SESSION['viewExceptionLogin'] = true;
				break;
		}
	}
}

 

komentarz zamknięcia: wystarczyło dodać return przed funkcją $vlogin->verification()

1 odpowiedź

+1 głos
odpowiedź 5 listopada 2017 przez Lrror Bywalec (2,720 p.)

Jak do zwykłej rejestracji to nawaliłeś niepotrzebnie tego kodu.
Np klasa VeryficationLogin mogła by być metodą klasy AuthC.
Co do problemu to wyciągnij "$vlogin = new verificationLogin();" przed "try{".
Tworzenie nowego objektu także zwraca true.

komentarz 5 listopada 2017 przez `Krzychuu Stary wyjadacz (13,940 p.)
zrobiłem tak jak napisałeś ale nadal nie działa, spróbowałem przenieść VeryficationLogin do klasy AuthC i zrobiłem z tego metodę, odwołałem się w ten sposób $this->verification($this->login, $this->password); i nadal to samo :/
komentarz 5 listopada 2017 przez Boshi VIP (100,240 p.)
@lrror bzdury gadasz, metoda walidacji nie mogła by być w klasie Auth bo jest to nie zgodne z zasadą SRP
komentarz 5 listopada 2017 przez `Krzychuu Stary wyjadacz (13,940 p.)
@Boshi czyli dobrze zrobiłem że rozbiłem to na dwie klasy, podpowiesz co mogę zrobić żeby rozwiązać mój problem?

Podobne pytania

0 głosów
4 odpowiedzi 994 wizyt
–1 głos
1 odpowiedź 131 wizyt
pytanie zadane 27 stycznia 2019 w PHP przez daniel2k Obywatel (1,380 p.)
0 głosów
1 odpowiedź 270 wizyt

92,551 zapytań

141,400 odpowiedzi

319,531 komentarzy

61,938 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...