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

Jak wstrzyknąć zależność w PHP ?

VPS Starter Arubacloud
0 głosów
371 wizyt
pytanie zadane 6 lutego 2021 w PHP przez mat19 Obywatel (1,580 p.)

Cześć. Od kilku godzin męczę się z kodem, a konkretnie z wstrzykiwaniem zależności w PHP. Nie za bardzo to rozumiem. Wzorując się na przykładach próbowałem jakoś to zrobić ale wyskakuje mi błąd 
Fatal error: Uncaught Error: Object of class UserValidation could not be converted to string in C:\xampp\htdocs\messbox\index.php:48 Stack trace: #0 {main} thrown in C:\xampp\htdocs\messbox\index.php on line 48. Mam nadzieję że ktoś mi pomoże i wyłumaczy na tym przykładzie jak należy to zrobić. potrzebuję poprostu jednego przykładu aby to zrozumieć.

class database
{
	private $servername = "localhost";
	private $username = "root";
	private $password = "";
	private $dbname = "messbox";
	
    public function connect()
	{
			
	$this->servername = "localhost";
	$this->username = "root";
	$this->password = "";
	$this->dbname = "messbox";
		
		try{
		$dsn = "mysql:host=".$this->servername.";dbname=".$this->dbname;
       $pdo = new PDO($dsn, $this->username, $this->password);
	   $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
	   return $pdo;
		}catch(PDOException $e){
			echo "Connection failed: ".$e->getMessage();
		}
	   
	}
}
require_once('connect.php');

class signIn
{
	private $data;
	private $errors = '';
	private $licznik;
	private	$database;

	
	public function __construct($data, $database) {
  $this->data= $data;
  $this->database = $database;
	}
	
	
	public function validate_login() 
	{
		$val  = trim($this->data['log']);
		
		if(empty($val))
		{
			return $this->errors = "Pole nie może być puste"; 
		}
	}
	
	public function validate_password()  
		$val  = trim($this->data['pass']);
		
		if(empty($val))
		{
			return $this->errors = "Pole nie może być puste"; 
		}
	}
	
	public function ifexist()
	{
		$field1 = $this->data['log'];
		$field2 = $this->data['pass'];
		$sql = $this->database->prepare("SELECT * FROM users where login = :login");
		 $sql->bindParam(':login', $field1, PDO::PARAM_STR);
            $sql->execute();		

				 if($sql->rowCount()){
					header("location:./home.php");
					return $this->licznik = 10;
				 }else
				 {
				return $this->licznik = 2;
				 }
		
	}
	
	
	public function setSession()
	{
		if($this->licznik == 10){
			
			$field1 = $this->data['log'];
			$sql = $this->connect()->prepare("SELECT * FROM users where login = :login");
			 $sql->bindParam(':login', $field1, PDO::PARAM_STR);
            $sql->execute();		
			
			
			while ($row = $sql->fetch())
			{
				  $_SESSION['id'] = $row['id'];
				  echo $_SESSION['login'] = $row['login'];
				  $_SESSION['avatar'] = $row['avatar'];
				  echo "<img src='".$row['avatar']."'/>";
				  $_SESSION['email'] = $row['email'];
				  $_SESSION['imie'] = $row['first_name'];
				  $_SESSION['nazwisko'] = $row['last_name'];
				  $_SESSION['tel'] = $row['number_phone'];
				  $_SESSION['gender'] = $row['gender'];
				  $_SESSION['birth_date']  = $row['birth_date'];
				  $_SESSION['age'] = $row['age'];

			}
				
				
		}else
			return "NIE DZIALA";
			
	}
}

	$object = new database;
    $object->connect();
	echo $validation = new UserValidation($_POST, $object);
	 $error4 = $validation->validateName();

 

komentarz 7 lutego 2021 przez CubeStorm Pasjonat (15,020 p.)

Co chciałeś osiągnąć używając

echo $validation = new UserValidation($_POST, $object);

 

komentarz 7 lutego 2021 przez mat19 Obywatel (1,580 p.)
Ok, po prostu wstrzyknełem zależnosc do obiektu walidacji forumlarza rejestracji , zamiast logowania, dlatego nie działało. Dzieki wielkie ze zwrociles na to uwage.

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
1 odpowiedź 242 wizyt
pytanie zadane 10 maja 2020 w PHP przez XiverKi Bywalec (2,050 p.)
0 głosów
1 odpowiedź 619 wizyt
pytanie zadane 5 kwietnia 2020 w PHP przez Assasz Nałogowiec (30,460 p.)
0 głosów
1 odpowiedź 649 wizyt
pytanie zadane 17 lutego 2021 w Algorytmy przez CSSoup Mądrala (6,460 p.)

93,023 zapytań

141,986 odpowiedzi

321,288 komentarzy

62,369 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

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...