![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 87 Pomógł: 6 Dołączył: 30.11.2008 Ostrzeżenie: (0%) ![]() ![]() |
Zrobiłem sobie prosty skrypt logowania:
Kod <?php session_start(); if(isSet($_POST['zalogowany'])){ header("Location: jakiś tam link"); exit(); } else if(isSet($_POST['nazwa']) && isSet($_POST['haslo'])){ if($_POST['nazwa'] == 'user1' && $_POST['haslo'] == 'pass1'){ $_SESSION['zalogowany'] = 'user1'; header("Location: jakiś tam link"); exit(); } } ?> <form method="POST" action="loguj.php"> Podaj nazwę i hasło<br /> Użytkownik: <input type="text" name="nazwa"><br /> Hasło: <input type="password" name="haslo"><br /> <input type="submit" value="Wejdź"> </form> I teraz chcę to połączyć z JS, po wpisaniu poprawnego hasła i loginu, powinna rozsunąć się treść prawidłowa. JS nie znam, kod na rozwijanie znalazłem u was: Kod <script type="text/javascript"> function showHidden(obj){ obj = document.getElementById(obj); obj.style.display == 'none' ? obj.style.display = '' : obj.style.display = 'none'; } </script> Kod <table border="0"> <tr><td><a onclick="showHidden('hidden2');" href="javascript:void(0);">Click me!</a></td></tr> <tr id="hidden2" style="display:none;"><td>treść</td></tr> </table> A teraz jak zrobić, żeby po wpisaniu danych rozwinęła się treść? ![]() I teraz druga sprawa: mianowicie dlaczego pola input od razu pokazują to co trzeba wpisać? ![]() -------------------- zmoderowano
|
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 111 Pomógł: 16 Dołączył: 19.02.2005 Skąd: Dębica Ostrzeżenie: (0%) ![]() ![]() |
Jezeli chcesz zabezpieczyc pewne dane przed widokiem to nie jest to wg mnie najlepszy sposob, ja proponowałbym uzycie ajaxa. W twoim przypadku mozna podejzec "ukryta tresc" wchodzac w zrodlo.
Co do zapamietywania hasel to prawdopodobnie przegladarka zapamietuje dane. -------------------- Psik!! A masz!! ...chamie - Porucznik Borewicz
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 87 Pomógł: 6 Dołączył: 30.11.2008 Ostrzeżenie: (0%) ![]() ![]() |
Hmm, tylko że ja danych nie wpisywałem nawet.... Od razu wczytuje się tak jak ma być. A jak można inaczej niż Ajaxem to zrobić, bo ja w tym temacie ni hu hu...
-------------------- zmoderowano
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 111 Pomógł: 16 Dołączył: 19.02.2005 Skąd: Dębica Ostrzeżenie: (0%) ![]() ![]() |
Jezeli to ma byc po wpisaniu tak jak napisales, a nie po wcisnieciu submita to musisz monitorowac caly czas dane ktore wchodza w inputy (event onChange). Sposob fajny jesli masz 1 konto do logowania. W tym momencie wklepujesz sobie gdzies zapisane loginy i hasla (oczywiscie w md5) i w JS porównujesz czy pasuje z tym co masz.
Mozna jeszcze wysylac ajaxem zapytanie do bazy co kazda zmiane ale to jest nawal informacji i mozna przeciazyc serwer. Proponuje ci zrobic to po nacisnieciu submita, ajaxem wyslac wtedy zapytanie do bazy i sciagnac tresc jesli jest taki user z takim loginem. Pozniej innerHTML i wsadzasz sciagnieta tresc do diva/td. Mialem podobny problem u siebie na localu - przegladarka zapamietala mi dla jednej strony login i haslo a na innej stronie je wklepywala. Pomogla mi zmiana nazw inputow w formie. -------------------- Psik!! A masz!! ...chamie - Porucznik Borewicz
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 87 Pomógł: 6 Dołączył: 30.11.2008 Ostrzeżenie: (0%) ![]() ![]() |
Heh, to ma być tylko jedna nazwa usera i hasło tak jak podałem to wyżej, bo będzie do tego miała dostęp tylko osoba powołana.
![]() -------------------- zmoderowano
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 111 Pomógł: 16 Dołączył: 19.02.2005 Skąd: Dębica Ostrzeżenie: (0%) ![]() ![]() |
Na poczatku funkcja(e) w JS:
Pozniej deczko przerobiony formularz: Mam nadzieje ze sie nie walnalem bo pisalem na zywca. %nazwa usera w md5% i %haslo usera w md5% wklep sobie w php uzywajac md5() Ten post edytował v1t4n 25.04.2009, 14:57:50 -------------------- Psik!! A masz!! ...chamie - Porucznik Borewicz
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 87 Pomógł: 6 Dołączył: 30.11.2008 Ostrzeżenie: (0%) ![]() ![]() |
Możesz objaśnić jak to ma działać, bo nie wiem jaki ma być efekt...
-------------------- zmoderowano
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 111 Pomógł: 16 Dołączył: 19.02.2005 Skąd: Dębica Ostrzeżenie: (0%) ![]() ![]() |
1. Wstawiasz sobie tresc w tej tabeli ktora podales w pierwszym poscie.
2. W php wypluwasz haslo i nazwe usera zakodowane w md5 i zapisujesz w polach ukrytych hName i hPass. 3. Na pola ktore utworzyles nalozylem event onChange ktory odwoluje sie do funkcji checkLogin() 4. Funkcja checkLogin sprawdza czy md5 wpisanych hasel jest taki sam jak hasla ktore wyciagnales w pkt 2 - jesli tak to zmienia ustawia tr hidden2 na widoczny Cala babranina w md5 jest potrzebna zeby uniknac kradzieży hasla. Powinien tez byc jakis interval zeby zblokowac boty. -------------------- Psik!! A masz!! ...chamie - Porucznik Borewicz
|
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 87 Pomógł: 6 Dołączył: 30.11.2008 Ostrzeżenie: (0%) ![]() ![]() |
No to powiem, żen ie działa.
![]() -------------------- zmoderowano
|
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 111 Pomógł: 16 Dołączył: 19.02.2005 Skąd: Dębica Ostrzeżenie: (0%) ![]() ![]() |
Przepraszam, zapomnialem ze md5 nie ma standardowo w JS. Mozesz go sciagnac tutaj: http://pajhome.org.uk/crypt/md5/2.2/md5.js
Przy okazji zmienilem troszke tamten uklad (sprawdza co 50ms bo onChange sie dziwnie zachowuje). Musisz dodac onLoad="checkLogin()" do body. JS:
HTML: -------------------- Psik!! A masz!! ...chamie - Porucznik Borewicz
|
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 87 Pomógł: 6 Dołączył: 30.11.2008 Ostrzeżenie: (0%) ![]() ![]() |
Na samym początku wyskakuje taki błąd, ale da się logować:
Gdy się zaloguję wyskakuje następny błąd:
Wiem, że to przez limiter, ale co teraz zrobić. -------------------- zmoderowano
|
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 111 Pomógł: 16 Dołączył: 19.02.2005 Skąd: Dębica Ostrzeżenie: (0%) ![]() ![]() |
Prozaiczny blad: printujesz jakies dane przed wysłaniem sesji - session_start() musi znajdowac sie na poczatku, najlepiej w pierwszej linii
![]() -------------------- Psik!! A masz!! ...chamie - Porucznik Borewicz
|
|
|
![]()
Post
#13
|
|
![]() Grupa: Zarejestrowani Postów: 87 Pomógł: 6 Dołączył: 30.11.2008 Ostrzeżenie: (0%) ![]() ![]() |
Tutaj musi być gdzieś błąd:
Pisze, że pierwszy błąd pojawia się w linijce, w której jest: session_start();, a drugi w linijce w której jest: exit();, może ktoś zna problem? Ten post edytował jinchuriki 25.04.2009, 17:02:05 -------------------- zmoderowano
|
|
|
![]()
Post
#14
|
|
![]() Grupa: Zarejestrowani Postów: 111 Pomógł: 16 Dołączył: 19.02.2005 Skąd: Dębica Ostrzeżenie: (0%) ![]() ![]() |
Masz jakies tagi html przed "<?php ... ?>"?
-------------------- Psik!! A masz!! ...chamie - Porucznik Borewicz
|
|
|
![]()
Post
#15
|
|
![]() Grupa: Zarejestrowani Postów: 87 Pomógł: 6 Dołączył: 30.11.2008 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki, były tagi html. Teraz nie pokazują się błędy, teraz po wpisaniu poprawnego loginu i hasła strona się restartuje i nic więcej. ;/
-------------------- zmoderowano
|
|
|
![]()
Post
#16
|
|
![]() Grupa: Zarejestrowani Postów: 111 Pomógł: 16 Dołączył: 19.02.2005 Skąd: Dębica Ostrzeżenie: (0%) ![]() ![]() |
Daj caly kod, konkretnie i szczegółowo opisz problem. Teraz to ja sie mogę tylko domyślać.
-------------------- Psik!! A masz!! ...chamie - Porucznik Borewicz
|
|
|
![]()
Post
#17
|
|
![]() Grupa: Zarejestrowani Postów: 87 Pomógł: 6 Dołączył: 30.11.2008 Ostrzeżenie: (0%) ![]() ![]() |
Ten post edytował jinchuriki 25.04.2009, 17:16:45 -------------------- zmoderowano
|
|
|
![]()
Post
#18
|
|
![]() Grupa: Zarejestrowani Postów: 111 Pomógł: 16 Dołączył: 19.02.2005 Skąd: Dębica Ostrzeżenie: (0%) ![]() ![]() |
A czy ten plik to edytuj.php?
Gdzie masz pole w formularzu o nazwie zalogowany? To chyba powinno byc $_SESSION ktore deklarujesz 7 linijek niżej. -------------------- Psik!! A masz!! ...chamie - Porucznik Borewicz
|
|
|
![]()
Post
#19
|
|
![]() Grupa: Zarejestrowani Postów: 87 Pomógł: 6 Dołączył: 30.11.2008 Ostrzeżenie: (0%) ![]() ![]() |
To pole nie ma być w formularzu, to sprawdza czy user już wcześniej się zalogował.
![]() Tak, to jest plik edytuj.php. -------------------- zmoderowano
|
|
|
![]()
Post
#20
|
|
![]() Grupa: Zarejestrowani Postów: 111 Pomógł: 16 Dołączył: 19.02.2005 Skąd: Dębica Ostrzeżenie: (0%) ![]() ![]() |
Nie rozumiem tutaj twojej logiki. Po co headerem wywoływać plik w którym już jesteś? Daje ci to tylko taki efekt, że tracisz wszystkie $_POST'y ktore przyszły z formularza. Jesli nawet ktos zalogowany przyjdzie (chociaz bede sie upieral ze tam powinno być $_SESSION zamiast $_POST w 2 linii) to i tak jak wejdzie na tą strone to trafi w martwą pętlę. Jeśli nie jest jeszcze zalogowany sprawdzi mu login i haslo, nada sesyjnej zalogowany jego login i znowu przeladuje nie dostajac zadnych $_POST'ów. Jedyne co teraz możesz zrobić to wsadzić tam niżej kod w php wykonujący się po ifie na $_SESSION['zalogowany'].
Opisz konkretniej co chcesz osiągnąc, bo wydaje mi sie, że idziesz całkiem w złą stronę. -------------------- Psik!! A masz!! ...chamie - Porucznik Borewicz
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 07:37 |