![]() |
![]() ![]() |
![]() |
![]()
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> |
|
|
![]()
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 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 4.05.2025 - 05:50 |