![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 27 Pomógł: 1 Dołączył: 18.11.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam!
Szukałem rozwiązania na różnych stronach oraz forach natomiast nic nie znalazłem, więc pytam. Tak zupełnie zielony z PHP nie jestem natomiast mógłbym zostać opierniczony że pisze pierwszego posta poza subforum "przedszkole". Mam problem, a mianowicie zrobiłem prosty formularz zamówienia, w którym użytkownik wpisuje swoje dane oraz login i hasło. Wszystkie dane są zapisywane do bazy danych. W następnym kroku chciałem zrobić stronkę na, którą użytkownik miałby dostęp po wpisaniu loginu i hasła. Wszystko wygląda prosto, ale tylko gdy strona jest na jedno i to samo hasło. A ja chciałbym, aby każdy użytkownik miał swoje hasło i swój login. Zrobiłem skrypt, który czyta z pliku pojedyncze hasło. Ale nie mogę przy każdym nowym użytkowniku modyfikować pliku na serwerze. Dlatego chciałem powiązać wpis użytkownika do bazy (hasło i login) ze skryptem logowania. Natomiast nie wiem w jaki sposób mam przeszukać bazę w poszukiwaniu hasła. Użyć pętli? Jak miałaby wyglądać taka pętla? Miałoby to wyglądać tak: Pierwsze zamówienie (użytkownik podaje login i hasło) -> wpis do bazy -> kolejne zamówienie (logowanie przez stronę na hasło) -> wpisane hasło porównuje z hasłami z bazy, jak znajdzie hasło to porównuje z loginem, jeżeli jest ok to przechodzi na stronkę zastrzeżoną hasłem -> pobiera pozostałe dane (zniżka itp.) Proszę o jakieś naprowadzenie. Z góry dziękuje. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Cytat Dlatego chciałem powiązać wpis użytkownika do bazy (hasło i login) ze skryptem logowania. Natomiast nie wiem w jaki sposób mam przeszukać bazę w poszukiwaniu hasła. To zwykły SELECT z odpowiednim WHERE (sprawdzasz, czy login=wpisany login, hasło=wpisane hasło). Jeśli zwraca rekord, poprawne logowanie, jeśli nie - intruz. (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 27 Pomógł: 1 Dołączył: 18.11.2008 Ostrzeżenie: (0%) ![]() ![]() |
No i właśnie chodzi o to w jaki sposób to sprawdzić czy login=login wpisany? Wiem jak pobrać kolumnę z tabeli tylko jak mam 50 loginów i 50 haseł to jak je przeszukać?
Jak powinno wyglądać takie przeszukanie? Chyba,że chodziło Ci o WHERE haslo LIKE '$pass'? Ten post edytował qdesigner 18.11.2008, 22:53:02 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 353 Pomógł: 50 Dołączył: 28.07.2005 Skąd: Łaziska Górne Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 80 Pomógł: 5 Dołączył: 23.09.2008 Skąd: Chełmno/Toruń Ostrzeżenie: (0%) ![]() ![]() |
Cytat Tak zupełnie zielony z PHP nie jestem natomiast mógłbym zostać opierniczony że pisze pierwszego posta poza subforum "przedszkole". Oj chyba jednak jesteś (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Poszukaj na googlu tutoriali. Warto poczytać (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Podpowiedź: select sprawdzający warunki i potem przykładowo mysql_num_rows (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Bo chyba nie chodzi Ci o gotowca? (IMG:http://forum.php.pl/style_emoticons/default/dry.gif) |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 27 Pomógł: 1 Dołączył: 18.11.2008 Ostrzeżenie: (0%) ![]() ![]() |
Z mysql-em dopiero zaczynam to fakt. W php się sporo bawiłem. Dziękuję za informacje. Aż taki zielony nie jestem - napisałem skrypt do pobierania danych z formularza, a wcześniej utworzyłem bazę danych. "Zielony" oznacza - nic nie kumam w temacie,a ja potrzebuje drobnych wskazówek. Co do bazy danych wolę się upewnić bo już raz metodą prób i błędów przeciążyłem serwer. I od razu mówię że nie chcę gotowca :-P
Przeczytałem już kilka tutoriali (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) chodzi mniej więcej o coś takiego?
Ten post edytował qdesigner 18.11.2008, 23:43:28 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 51 Pomógł: 5 Dołączył: 12.04.2007 Skąd: 1=1 Ostrzeżenie: (0%) ![]() ![]() |
1. na początku kodu, powiedzmy w linii 0 dodaj session_start();
2. przed polaczeniem z baza ustaw if (!empty($_POST['login'] && !empty($_POST['haslo']) { //logowanie } else echo ' <form method="post"> Login: <input type="text" name="login"> Hasło: <input type="text" name="haslo"> </form>'; 3. 11 linijke zamieniłbym na przechowywanie loginu, identyfikatora swiadczacego o zalogowaniu np. $_SESSION['zalogowany']='tak'; 4. 12 linijka nie podoba mi się, wystarczyłoby wpisać adres w przeglądarce do pliku plik-na-haslo.php, aby uzyskac dostep bez logowania, w plikach które maja wymagac autoryzacji umiesciłbym cos na styl if ($_SESSION['zalogowany']=='tak') { //zawartosc pliku } else echo ' <form method="post"> Login: <input type="text" name="login"> Hasło: <input type="text" name="haslo"> </form>'; 5. napisalem to bez funkcji, ale juz z samych poczatkow poczytaj o programowaniu funkcyjnym, jest wygodniejsze, a z czasem bedzie latwiej Ci przejsc na programowanie obiektowe jesli z php wiazesz przyszlosc |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 27 Pomógł: 1 Dołączył: 18.11.2008 Ostrzeżenie: (0%) ![]() ![]() |
4. 12 linijka nie podoba mi się, wystarczyłoby wpisać adres w przeglądarce do pliku plik-na-haslo.php, aby Spokojnie pliki wymagające autoryzacji też bym zabezpieczył po to właśnie przenoszę hasło oraz login w sesji. Zawartość strony z "plik-na-haslo.php" wyświetlałaby sie dopiero po autoryzacji. Dziekuje również za cenne wskazówki. Pozdrawiam. |
|
|
![]()
Post
#9
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Tak, jak przedmówcy:
Cytat
Ale po co trzymasz całe hasło w sesji? Nie kuś losu. (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) Wystarczy Ci chociażby $_SESSION['authorized'] = true; ad. punktu 4. Jak wcześniej napisałem. Do tego register_globals na off i (IMG:http://forum.php.pl/style_emoticons/default/guitar.gif) Cytat Co do bazy danych wolę się upewnić bo już raz metodą prób i błędów przeciążyłem serwer. A o cache'u słyszałeś? (IMG:http://forum.php.pl/style_emoticons/default/snitch.gif) Ten post edytował erix 19.11.2008, 16:59:55 |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 27 Pomógł: 1 Dołączył: 18.11.2008 Ostrzeżenie: (0%) ![]() ![]() |
Tylko problem jest taki że jak w sesji nie przekaże hasła i loginu to w jaki sposób na stronie "na hasło" pobiorę resztę danych z tabeli?
Np. w celu autoryzacji wyszukuje loginu i hasła jeżeli się zgadza to umożliwiam dostęp i wtedy przechodzi na stronę "na hasło" i na tej stronie ma pobierać resztę danych użytkownika np. ile kupił produktów i jaką ma zniżkę. A przekazując samo: $_SESSION['authorized'] = true; musiałbym jeszcze raz w pliku "na hasło" pytać o login i hasło. chyba żebym zrobił to w jednym pliku. Tak aby treść była ukryta i pojawiała się po wpisaniu loginu i hasła - wtedy będę miał możliwość operowania na pobranym z bazy haśle i loginie. |
|
|
![]()
Post
#11
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Nie musiałbyś pytać, bo w sesji już miałbyś zapisane UŻYTKOWNIK ZALOGOWANY, czy też samo ID usera (co w Twoim wypadku rozwiązywałoby problem).
Przecież tej flagi nikt Ci z zewnątrz nie przestawi (pomijam fakt ingerencji w pliki sesyjne, czy przechwycenie identyfikatora sesji). |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 27 Pomógł: 1 Dołączył: 18.11.2008 Ostrzeżenie: (0%) ![]() ![]() |
No tak na temat zalogowania nie musiałbym pytać ale po to żeby pobrać resztę danych z bazy. Bo wyszukałem po loginie i haśle czy taki user istnieje. Jeżeli tak to w sesji jest przekazywana informacja o autoryzacji. A czy można przesłać i info o zalogowaniu $_SESSION['authorized'] = true; i info o ID usera?
|
|
|
![]()
Post
#13
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
No można. (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Ale po co oba? Wstawiasz np:
i sprawdzasz przez empty" title="Zobacz w manualu PHP" target="_manual ten klucz. ID 0 raczej nikt nie będzie miał. Ten post edytował erix 19.11.2008, 18:37:26 |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 27 Pomógł: 1 Dołączył: 18.11.2008 Ostrzeżenie: (0%) ![]() ![]() |
Fajny numerek,ale aż tylu userów nie będzie (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Po to oba żeby pierwszym if($_SESSION['authorized'] == true) {} otworzyć dostęp do zablokowanej treści a drugim pobrać dane z bazy już po odblokowaniu treści. (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Chyba że chodziło Ci o coś takiego: if (!empty($ID) { treść na hasło } Ten post edytował qdesigner 19.11.2008, 19:04:08 |
|
|
![]()
Post
#15
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Ale przecież niezalogowany user nie będzie trzymał identyfikatora w sesji. (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Po co nadmiarowe dane? |
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 27 Pomógł: 1 Dołączył: 18.11.2008 Ostrzeżenie: (0%) ![]() ![]() |
Zrobiłem coś takiego tylko jest problem że czy podam dobre dane czy złe to i tak przekierowuje do pliku. Jaki błąd popełniłem? Kombinuje już sporo i nie mogę go znaleźć. |
|
|
![]()
Post
#17
|
|
Newsman Grupa: Moderatorzy Postów: 4 005 Pomógł: 548 Dołączył: 7.04.2008 Skąd: Trzebinia/Kraków ![]() |
ja korzystam z takiego logowania...
i później na stronie do której ma być hasło sprawdzam:
Ten post edytował piotrooo89 19.11.2008, 21:01:17 |
|
|
![]()
Post
#18
|
|
Grupa: Zarejestrowani Postów: 27 Pomógł: 1 Dołączył: 18.11.2008 Ostrzeżenie: (0%) ![]() ![]() |
A czy mogę w sesji przenieść cos takiego?
$_SESSION["ident"]=$id; Logowanie już działa natomiast po przeniesieniu do drugiego pliku nie ma nic w $_SESSION["ident"] Już działa (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]()
Post
#19
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
No pewnie, że możesz; sesja, to tak naprawdę zwykła tablica. (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
[quote]Logowanie już działa natomiast po przeniesieniu do drugiego pliku nie ma nic w $_SESSION["ident"] Już działa [/quuote] To w końcu działa, czy nie? (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 3.10.2025 - 11:55 |