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();