Wystarczy jedna literówka w kodzie i PHP zawsze będzie mieć rację.
<?php
require_once"connect.php";
//popatrz co napisałeś tu, jaką masz zmienną na połączenie
$polaczenie=@new mysqli($host,$db_user,$db_password,$db_name);
if($polaczenie->connect_errno!=0)
{
echo "Error: ".$polaczenie->connect_errno;
}
else
{
$login=$_POST['login'];
$haslo=$_POST['haslo'];
$sql1="SELECT * FROM uzytkownicy WHERE user='$login' AND pass='$haslo'";
//a popatrz co masz napisane tu
if($rezultat=@$polacznie->query($sql1))
{
$ilu_userow=$rezultat->num_rows;
if($ilu_userow>0)
{
$wiersz=$rezultat->fetch_assoc();
$user=$wiersz['user'];
$rezultat->free_result();
echo $user;
}
else
{
}
}
$polaczenie->close();
}
?>
PHP ma rację, bo na początku ustawiłeś zmienną z połączeniem bazy $polaczenie, a nagle w środku ifa tworzysz nową zmienną $polacznie, która jest pusta. I teraz każesz systemowi wykonać zapytanie do pustej zmiennej.
Jedna literówka w kodzie albo brak EoL na końcu linii i cały kod się sypie, a potem nerwy i szukanie przyczyny.