Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][JavaScript][PHP]Walidacja formularza logowania do bazy danych, Walidacja formularza logowania do bazy danych
Zajac1982
post 4.08.2012, 20:29:49
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 27.05.2012

Ostrzeżenie: (0%)
-----


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>
Go to the top of the page
+Quote Post
CuteOne
post 4.08.2012, 22:44:59
Post #2





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

Ostrzeżenie: (0%)
-----


1. Zrezygnuj z mysql_* i zacznij używać biblioteki PDO
2. Nie mieszaj PHP z HTML bo wychodzi z tego sieczka, której nie da się czytać - poczytaj o szablonach np. Smarty
3. Po co pobierasz z bazy dane uwierzytelnienia jeżeli użytkownik nie podał loginu lub hasła??

Reasumując przepisz ten kod na nowo lub użyj frameworka - narzuci na Ciebie odpowiednie konwencje i standardy
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 4.05.2025 - 05:50