Witajcie, raczkuję w tematyce PHP. Mam kilka problemów w związku z poniższym skryptem. Jest to skrypt do strony z logowaniem użytkowników. Strona łączy się z bazą 'UWIERZ', na której istnieje tabelka 'UWIERZYTELNIENI_UZYTKOWNICY'. Maja oni dwa pola: LOGIN i HASLO.
Chcę, aby po wpisaniu loginu użytkownika ("użytkownik") i hasła ("haslo"), aplikacja wygenerowała komunikat:
1) o poprawnym zalogowaniu i przekierowała do strony o nazwie index2.html
2) o niepoprawnym zalogowaniu i przekierowała z powrotem do formularza logowania.
Dodatkowo chcę, aby po poprawnym zalogowaniu został uruchomiony mechanizm obsługi sesji.
Problem w tym, że jakiekolwiek hasło nie wpiszę, zawsze przekierowuje mnie na stronę index2.html. Testy aplikacji wykazały, że również nie pojawiają mi się okienka alertowe pokazujące komunikaty o tym, czy dany użytkownik się zalogował, czy też nie.
Nie wiem, gdzie błąd popełniłem. Proszę o jakieś podpowiedzi. Proszę także o wyrozumiałość, każdemu zdarza się czegoś nie wiedzieć...
<?php
class Polaczenie
{
var $lacz;
var $baza;
var $uzytkownik;
var $host;
var $haslo;
public function lacz_z_baza($host, $uzytkownik, $haslo, $baza)
{
//$polaczenie = new mysqli('localhost', 'root', '', 'uwierz');
$this->baza="uwierz";
$this->lacz=mysql_connect("localhost", "root", "");
if(!mysql_connect)
{
echo "Brak polaczenia z baza danych";
return false;
}
else
{
mysql_select_db($this->baza);
return true;
}
return true;
}
public function ustawZapytanie($query)
{
$this->query=$query;
return query;
}
public function wykonajZapytanie($query)
{
$wynik=mysql_query($this->query);
}
}
ob_start();
//session_start();
@$uzytkownik = $_POST['uzytkownik'];
@$haslo = $_POST['haslo'];
if(empty($uzytkownik)||empty($haslo))
{
//Uzytkownik musi podac swoj identyfikator i haslo
// sprawdzenie unikatowości nazwy użytkownika
$polaczenie=new Polaczenie();
$db=$polaczenie->lacz_z_baza('localhost', 'root', '', 'uwierz');
$wynik = $polaczenie->wykonajZapytanie("select * from uwierzytelnieni_uzytkownicy;");
if (!$wynik)
{
echo '<script type="text/javascript">';
echo 'alert("brak danych")';
echo '</script>';
}
//1.else
//2.if ($wynik->num_rows>0)
//return true;
//else
// echo "Logowanie nie powiodło się.";
?>
<html>
<head>
<script type="text/javascript">
function poprawneZalogowanie()
{
alert('Dziekujemy. Poprawnie podano dane');
}
function niepoprawneZalogowanie()
{
alert('Niestety, nie podano prawidlowych danych. Prosimy sprobowac ponownie');
}
function brakDanych()
{
alert('Brak danych');
}
</script>
</head>
<body bgcolor="gray">
<form name="zalogowanie" method="post" action="index2.html">
<center><h1>Logowanie</h1>
<table border="0">
<tr><td>Podaj login:</td><td><input type="text" name="uzytkownik"></td><td>Podaj hasło:</td><td><input type="password" name="haslo"></td></tr>
<tr><td><input type="submit" value="Zaloguj sie"></td></tr>
</table>
<a href="#">Nie pamiętasz hasła?</a>
</form>
<?php
}
else if($uzytkownik=='uzytkownik'&&$haslo=='haslo')
{
// kombinacja: identyfikator i haslo jest poprawna
echo '<script type="text/javascript">';
echo 'alert("poprawne logowanie")';
echo '</script>';
session_start();
session_register("user");
$polaczenie=new Polaczenie();
$db=$polaczenie->lacz_z_baza('localhost', 'root', '', 'uwierz');
header('Location: index2.html');
ob_end_flush();
}
else
{
// kombinacja: identyfikator i haslo jest nieprawidlowa
echo '<script type="text/javascript">';
echo 'alert("niepoprawne logowanie")';
echo '</script>';
header('Location: index.php');
ob_end_flush();
}
?>
</body>
</html>