martinstw Opublikowano 9 Stycznia 2009 Udostępnij Opublikowano 9 Stycznia 2009 Witam! Prosiłbym o sprawdzenie systemu logowania i rejestracji, który jest napisany poniżej: Tabela users: CREATE TABLE `users` ( `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY, `status` TEXT NOT NULL, <------ranga `nazwa` TEXT NOT NULL, `haslo` TEXT NOT NULL, `pytanie` TEXT NOT NULL, `odpowiedz` TEXT NOT NULL, `rejestracja` DATE NOT NULL, <-- data rejestracji użytkownika `imie` TEXT NOT NULL, `nazwisko` TEXT NOT NULL, `nr_kont` INT NOT NULL, `wydzial` TEXT NOT NULL, `funkcja` TEXT NOT NULL, ); INSERT INTO `users` ( `id` , `status` ,`nazwa` , `haslo` , `pytanie`, `odpowiedz` , `rejestracja`, `imie` , `nazwisko` , ‘nr_kont’, `wydzial` , `funkcja`,) VALUES ( NULL , 'A', 'admin', MD5('super tajne'), 'Jaki mam samochód?', 'Syrenka', `13.08.2008`, `Martin`, `Pak` , ‘12345’, `admin` , `admin`); ); INSERT INTO `users` ( `id` , `status` ,`nazwa` , `haslo` , `pytanie`, `odpowiedz` , `rejestracja`, `imie` , `nazwisko` , ‘nr_kont’, `wydzial` , `funkcja`,) VALUES ( NULL , 'PD', 'user1', MD5('super tajne'), 'Jaki mam rower?', 'BMX', `16.11.2008`, `Daniel`, `Dan` , ‘13345’, `WWWwm` , `planownik`); ); INSERT INTO `users` ( `id` , `status` ,`nazwa` , `haslo` , `pytanie`, `odpowiedz` , `rejestracja` , `imie` , `nazwisko` , ‘nr_kont’, `wydzial` , `funkcja`,) VALUES ( NULL , 'M', 'moderator', MD5('super tajne'), 'Jaki mam dom?', 'maly', `12.06.2008` , `Pawel`, `Minek` , ‘14345’, `moderator` , `moderator`); ); INSERT INTO `users` ( `id` , `status` ,`nazwa` , `haslo` , `pytanie`, `odpowiedz` , `rejestracja` , `imie` , `nazwisko` , ‘nr_kont’, `wydzial` , `funkcja`,) VALUES ( NULL , 'MOD', 'technics1', MD5('super tajne'), 'Jaki mam dlugopis?', 'pentel', `25.07.2007` , `Michal`, `Kasperek` , ‘15345’, `WWw- T` , `technics`); ); INSERT INTO `users` ( `id` , `status` ,`nazwa` , `haslo` , `pytanie`, `odpowiedz` , `rejestracja` , `imie` , `nazwisko` , ‘nr_kont’, `wydzial` , `funkcja`,) VALUES ( NULL , 'MODstrona2', 'master', MD5('super tajne'), 'Jaką mam ksywę?', 'papkin', `20.12.2008` , `Piotrek`, `Miazga` , ‘55345’, `WWw- SG` , `master`); ); INSERT INTO `users` ( `id` , `status` ,`nazwa` , `haslo` , `pytanie`, `odpowiedz` , `rejestracja` , `imie` , `nazwisko` , ‘nr_kont’, `wydzial` , `funkcja`,) VALUES ( NULL , 'P', 'customer1', MD5('super tajne'), 'Jaką lubię kolor?', 'biały', `20.12.2008` , `Andrzej`, `Patafianek` , ‘44345’, `WWw- SG` , `customer`); ); Gdzie poszczególne rangi oznaczają: A- uprawnienia administartora M- uprawnienia moderatora (może zmieniać wyglad strony) MOD- mogą wprowadzać zmiany na stronach (wpisywanie danych, obliczanie, pobieranie obrazków z bazy danych na stronę) bez strony 2 i drukować treść stron MODstrona2- mogą wprowadzać zmiany (wpisywać dane do tabelki, obliczać, zapisywać) i drukować na stronie2 i przeglądać i drukowac na innych stronach PD- mogą tylko przeglądać i drukować strony P- mogą tylko przeglądać stron bez ich drukowania to jest powiązane z stroną wykaż użytkowników: http://www.wklej.org/id/36827/ Następnie mam tabelę users_stan, gdzie sa informacje o aktualnie zalogowanych użytkownikach: CREATE TABLE `users_stan` ( `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY, `status` TEXT NOT NULL, <------ranga `nazwa` TEXT NOT NULL, `haslo` TEXT NOT NULL, `pytanie` TEXT NOT NULL, `odpowiedz` TEXT NOT NULL, `rejestracja` DATE NOT NULL, <-- data rejestracji użytkownika `imie` TEXT NOT NULL, `nazwisko` TEXT NOT NULL, `nr_kont` INT NOT NULL, `wydzial` TEXT NOT NULL, `funkcja` TEXT NOT NULL, ); INSERT INTO `users_stan` ( `id` , `stan` , `status` ,`nazwa` , `odpowiedz` , `ostatnie_logowanie`); VALUES ( NULL , 'zalogowany', 'A', 'admin', 'Syrenka', `15:05 / 16.12.2008`); ); INSERT INTO `users_stan` ( `id` , `stan` , `status` ,`nazwa` , `odpowiedz` , `ostatnie_logowanie`); VALUES ( NULL , 'zalogowany', 'PD', 'user1', 'BMX', `15:16 / 16.12.2008`); ); INSERT INTO `users_stan` ( `id` , `stan` , `status` ,`nazwa` , `odpowiedz` , `ostatnie_logowanie`); VALUES ( NULL , 'niezalogowany', 'M', 'moderator', 'maly', `15:07 / 16.12.2008`); ); INSERT INTO `users_stan` ( `id` , `stan` , `status` ,`nazwa` , `odpowiedz` , `ostatnie_logowanie`); VALUES ( NULL , 'niezalogowany', 'MOD', 'technics1', 'pentel', `15: 22 / 16.12.2008`); ); INSERT INTO `users_stan` ( `id` , `stan` , `status` ,`nazwa` , `odpowiedz` , `ostatnie_logowanie`); VALUES ( NULL , 'zalogowany', 'MODstrona2', 'master', 'papkin', `15:24 / 16.12.2008`); ); INSERT INTO `users_stan` ( `id` , `stan` , `status` ,`nazwa` , `odpowiedz` , `ostatnie_logowanie`); VALUES ( NULL , 'zalogowany', 'P', 'customer1', 'biały', `15:18 / 16.12.2008`); ); Może to oprzeć raczej na grupach sesji? Rangi i sesje znajdują się na wszystkich stronach, a nie tylko na jednej, jedynie w jednym przypadku użytkownik może modyfikować dane na jednej stronie a w pozostałych tylko oglądać. formularz1.php http://www.wklej.org/id/34911/ index.php http://www.wklej.org/id/34915/ strona logowania: http://www.wklej.org/id/34918/ zaloguj.php: http://www.wklej.org/id/34919/ users.php: http://www.wklej.org/id/34920/ rejestracja.html: http://www.wklej.org/id/34923/ logout.php <?php session_start(); if(!isSet($_SESSION['zalogowany'])) { $komunikat = "Nie byłes zalogowany!"; } else{ unset($_SESSION['zalogowany']); $komunikat = "Wylogowanie prawidlowe!"; } session_destroy(); ?> <html> <head> </head> <body> <?php echo $komunikat ?> </body> </html> chroniona_strona.php: http://www.wklej.org/id/34924/ rejestracjapomyslna.php: <html> <head> </head> <body> Zostales zarejestrowany. Teraz mozesz sie zalogowac i w pelni korzystac z serwisu! </body> </html> I na końcu chciałbym, żeby była możliwość po wciśnięciu przycisku Zapomniałeś hasła?, pojawienie się formularza z pytaniem i możliwością odpowiedzi na nie. Wysłanie danych, sprawdzenie czy wpisana odpowiedź jest taka jak w bazie danych i formularz do zmiany hasła bądź komunikat o błędnej odpowiedzi. Jeśli user prawidłowo odpowie to ponowne przekierowanie na stronę logowania, gdzie już jest w polu hasło w pisane właściwe hasło, które użytkownik zapomniał. Zrobiłem coś takiego: przypominanie_hasla SELECT * FROM users WHERE username = '{$username}' or password = '{$pass}' $username = mysql_real_escape_string($_POST['username']); $pass = md5($_POST['password']); print $user[0]['pytanie']; $odpowiedz = mysql_real_escape_string($_POST['odpowiedz']); if ($odpowiedz == $user[0]['odpowiedz']) { ... <html><head></head><body><fieldset style="border: 6px solid black; width: 500px; height: 50%; text-align: center; background-color: snow;"> <p style="color: blue;"><big>FORMULARZ ODZYSKIWANIA ZAPOMNIANEGO HASŁA</big></p> <center><form action="zaloguj.php" name="przypominanie" method="post" onsubmit="return setAction(this);" style="margin:0px;"> <fieldset style="border: 3px solid blue; width: 460px; height: 180px; text-align: center; background-color: snow;"> <legend><big>Wpisz dane:</big></legend> <a> Nazwa użytkownika: </a><input type="text" name="login" id="input" style="color: blue; background-color: yellow;"/> </a> <a> Odpowiedz na następujące pytanie:</a><input type="text" name="pytanie" id="input" size="20" style="color: blue; background-color: InactiveCaptionText;"/> <a href="#" title="To jest twoje pytanie przypominające, jakie podałeś przy rejestracji użytkownika"><small>INFO</small> <a> Wpisz odpowiedź na pytanie: </a><input type="password" name="odpowiedz" id="input" style="color: blue; background-color: InactiveCaptionText;"/> <a href="#" title="Tuataj wpisz twoja odpowiedź na powyższe pytanie przypominające, jakie podałeś przy rejestracji użytkownika"><small>INFO</small> <label for><a><button name="submit" value="Zatwierdź" onClick="parent.location.href='index.html'"/>Zatwierdź</button></a></label> </form></center> </fieldset></body></html> } else { <html><head></head><body><table border=1 align=center> <tr> <td bgcolor=aqua height=20 width=500>Komunikat</td> </tr> <tr> <td bgcolor="yellow" height=40 width=500>Podałeś błędną odpowiedź na zadane pytanie. Wpisz jeszcze raz poprawną odpowiedź na zadane pytanie!</td> </tr> </table></body></html> } W jaki sposób uwzględniać na stronach grupy sesji lub rangi oraz gdy będzie chciał się zalogować administartor? Za pomoc będę wdzięczny Pozdrawiam Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 9 Stycznia 2009 Udostępnij Opublikowano 9 Stycznia 2009 Wybacz, ale od razu jak się na to patrzy to można powiedzieć, że jest źle. I obawiam się, że nikt przy zdrowych zmysłach nie będzie Ci tego sprawdzał. Mówię odnośnie wszystkich tematów. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Piczer Opublikowano 9 Stycznia 2009 Udostępnij Opublikowano 9 Stycznia 2009 Może od razu wyślij nam całą zawartość komputera? Nie czytają twojego kodu, mogę ci powiedzieć, ze dobrym sposobem logowania jest tabela z wszystkimi użytkownikami i druga z: - id użytkownika z poprzedniej tabeli - session_id() - time() [ - zalogowanych użytkowników poznajemy, odejmując od wartości aktualnego time() minuty x60. Aktualizujemy tutaj przy każdym odświeżeniu strony] Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Kofel Opublikowano 9 Stycznia 2009 Udostępnij Opublikowano 9 Stycznia 2009 A ja bym polecał używać UNIXTIME do daty, bo potem możesz sobie to sformatować wedle woli a nie... ;s Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Filar Społeczności Ranmus Opublikowano 10 Stycznia 2009 Filar Społeczności Udostępnij Opublikowano 10 Stycznia 2009 @martinsw: Za darmo? Po tej liczbie tematów odnoszę wrażenie, że podjąłeś się jakieś zadania jako freelancer, nie mając kompletnie pojęcia o webmasterce i myślisz, że ktoś Ci pomoże za darmo. Chcesz odpowiedzi na te wszystkie pytania? Albo sam się wszystkiego naucz albo zleć to komuś za pieniądze. Cwaniakom pomagać nie będziemy. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Kofel Opublikowano 10 Stycznia 2009 Udostępnij Opublikowano 10 Stycznia 2009 http://picasaweb.google.com/kofels/Random#...428525111485282 ;dd Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
martinstw Opublikowano 11 Stycznia 2009 Autor Udostępnij Opublikowano 11 Stycznia 2009 Zastanawiam się ilu osobom pomogliście, skoro macie takie podejście do każdego, jak do mnie? Wy chyba tylko sobie pomagacie. Część problemów rozwiązałem już, bez waszej w cudzysłowiu "pomocy". Jeśli chodzi o złośliwości to mogę też napisać ich wiele, tylko jaki to będzie miało sens? Lepiej wam się zrobi jak coś takiego napiszecie? Te problemy, które zawarłem w postach same mi się nasunęły, podczas tworzenia swoich stron. Nie robię tego na żadne zlecenie! Ja dopiero zaczynam więc mam prawo do błędów. A wy powinniście to zrozumieć. Ale widzę, że to jest za trudne dla was. Kiepscy by z was byli nauczyciele. Jeśli chodzi o termin cwaniak, to chyba warto poczytać kto to. I ostatnia moja refleksja, jeśli ktoś nie chce pomóc to niech nie pomaga, a swoje uwagi niech pozostawi dla siebie, nikt nikogo nie zmusza do czytania tego postu. A posty są po to pisane, żeby na nie odpowiadać, a nie wypisywać niemiłe uwagi. Pozdrawiam Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Kofel Opublikowano 11 Stycznia 2009 Udostępnij Opublikowano 11 Stycznia 2009 Ale ty naprawdę nie wiesz o co chodzi? Lepiej było napisać to wszystko w JEDNYM TEMACIE, a nie cudzysłowowo "naspamowałeś" i czekasz na kogoś odpowiedź. A tak w ogóle nikt nie ma OBOWIĄZKU Tobie odpowiadać tym bardziej że forum jest zdeczka innej tematyki niż PHP. Btw. nie wiem ludzie, do nauki PHP wystarczy dokumentacja KTÓRA JEST BARDZO DOBRA. ... lenistwo co? A no i jeszcze, jak wklejasz jakiś kod to dawaj to na jakieś http://wklej.to what eva. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Filar Społeczności Ranmus Opublikowano 11 Stycznia 2009 Filar Społeczności Udostępnij Opublikowano 11 Stycznia 2009 @martinstw: Na forum php.pl też widzę, że nawaliłeś tych tematów i jest mały odzew. A wiesz czemu? Bo Ty znasz tylko kompletne podstawy. Nikt za Ciebie nie będzie robił takich funkcjonalności, o jakie prosisze, bo są one czasochłonne i poziom wiedzy którą prezentujesz nie gwarantuje, że coś się z tego nauczysz. To tak jakby ktoś, kto ledwo zaczął programować w c++, ściągnał źródła jakiegoś fpsa i się pytał jak zmienić niektóre części programu. Takim osobom nie pomagam raczej, bo i po co. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Piczer Opublikowano 11 Stycznia 2009 Udostępnij Opublikowano 11 Stycznia 2009 Skoro rozwiązałeś, to po co zaśmieciłeś dział i nam, za przeproszeniem, zawracasz dupę? Trzeba było wcześniej pomyśleć. Poza tym, my pomagamy DARMOWO. Kto ci teraz bez opłaty przeanalizuje tak duży kod i ci powie co jest źle/jak trzeba coś zrobić? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
martinstw Opublikowano 14 Stycznia 2009 Autor Udostępnij Opublikowano 14 Stycznia 2009 Wiadomość do administratora: Zwracam się z prośbą o usunięcie wszystkich moich postów oraz mojego konta. Nie za bardzo wiem, gdzie można wysłać tą wiadomość, więc tutaj umieściłem. Pozdrawiam Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się