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

Jak użyć funkcji w innej funkcji w PHP ?

Object Storage Arubacloud
+1 głos
314 wizyt
pytanie zadane 8 lutego 2021 w PHP przez mat19 Obywatel (1,580 p.)

Cześć. Uczę się obecnie obiektowego PHP i napotkałem problem. Otóż w funkcji insert_user() chcę włożyć zahaszowane hasło, które jest haszowane w funkcji hash_password(). Wiem że na pewno jest jakiś sposób na to, bo przecież po co robić haszować hasło w nastepnej funkcji skoro zrobiłem to wcześniej. Mam nadzieję że ktoś mi pokaże wskazówki.

 

public function hash_password()
	{
		$field = $this->data['password'];
		$hash = password_hash($field, PASSWORD_DEFAULT);
	}

	public function Insert_user()
	{
		$field1 = $this->data['login'];
		$field2 = $this->data['password'];
		$field3 = $this->data['first_name'];
		$field4 = $this->data['last_name'];
		$field5 = $this->data['email'];
		$field6 = $this->data ['birth_date'];
		$field7 = $this->data['gender'];
		$field8 = $this->data['number_phone'];
		$field9 = $this->data['gender'];
		$field10 = $this->data['avatar'];
		$field20 = date("Y-m-d");
		$field100 = date('H:i:s');
		$field30 = strtotime($field6);
		$field40 = strtotime($field20);
		$age = $field40-$field30;
	    $age10 = $age/(60*60*24*365);
		
		
		if(empty($this->errors))
		{
			$sql = $this->database->connect()->prepare("INSERT INTO users(`login`, `password`, `first_name`, `last_name`, `email`, `birth_date`, `age`, `number_phone`, `gender`, `avatar`) VALUES(:login, :password, :first_name, :last_name, :email, :birth_date, :age, :number_phone, :gender, :avatar)");
			$sql->bindParam(':login', $field1, PDO::PARAM_STR);
			$sql->bindParam(':password', hash_password(), PDO::PARAM_STR);
			$sql->bindParam(':first_name', $field3, PDO::PARAM_STR);
			$sql->bindParam(':last_name', $field4, PDO::PARAM_STR);
			$sql->bindParam(':email', $field5, PDO::PARAM_STR);
			$sql->bindParam(':birth_date', $field6, PDO::PARAM_STR);
			$sql->bindParam(':gender', $field7, PDO::PARAM_STR);
			$sql->bindParam(':age', $age10, PDO::PARAM_INT);
			$sql->bindParam(':number_phone', $field8, PDO::PARAM_INT);
			$sql->bindParam(':avatar', $field10, PDO::PARAM_STR);
			$sql->execute();
		}
		
	}
    

 

2 odpowiedzi

0 głosów
odpowiedź 8 lutego 2021 przez CSSoup Mądrala (6,460 p.)
Po prostu wywołaj tą funkcję w insert_user()
komentarz 8 lutego 2021 przez CSSoup Mądrala (6,460 p.)
A żeby było poprawniej jeżeli o obiektówkę chodzi to - wywołaj tą metodę wewnątrz metody insert_user(), w taki sposób:

$this->metoda();
0 głosów
odpowiedź 8 lutego 2021 przez VBService Ekspert (253,340 p.)
edycja 8 lutego 2021 przez VBService

Ta funkcja może zwracać wartość

public function hash_password()
    {
        $field = $this->data['password'];
        return password_hash($field, PASSWORD_DEFAULT);
    }

. . .

$sql->bindParam(':password', $this->hash_password(), PDO::PARAM_STR);

. . .

jeżeli mamy

public function Insert_user()
    {
        . . .

        $field2 = $this->data['password'];

        . . .

to można

public function hash_password($field)
    {
        return password_hash($field, PASSWORD_DEFAULT);
    }

. . .

$sql->bindParam(':password', $this->hash_password($field2), PDO::PARAM_STR);

. . .

 

Podobne pytania

0 głosów
1 odpowiedź 134 wizyt
pytanie zadane 8 lutego 2021 w PHP przez mat19 Obywatel (1,580 p.)
0 głosów
2 odpowiedzi 308 wizyt
pytanie zadane 6 czerwca 2016 w PHP przez hiper007 Stary wyjadacz (11,270 p.)

92,570 zapytań

141,422 odpowiedzi

319,643 komentarzy

61,958 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!

...