![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 30.04.2003 Ostrzeżenie: (0%) ![]() ![]() |
Witam serdecznie.
Chcialbym sobie napisac forum dyskusyjne i system niusow na stronke ale nie radze sobie z logowaniem. Tzn. umiem zrobic logowanie ale dla jednego uzytkownika a chcialbym zeby bylo wiecej osob. Ponizszy kod dotyczy wlasnie jednej osoby: // formularz <code> <form action=login.php> <input type=text name=member><br> <input type=password name=password><br> <input type=submit name=submit value=Login> </form> </code> // login.php <? $haslo = 'b22b963b7413da5cdca393be2d15f102'; if ((md5($password) == $haslo)) {echo "Witaj $member!";} else {echo "Złe hasło!";} ?> I teraz jak napisac zeby mi skrypt czytal hasla z pliku, linia po linii i sprawdzal z tym co przyjdzie z formularza? Hasla bylyby w pliku tekstowym w takiej postaci: // pass.txt tomek||e1bfd762321e409cee4ac0b6e841963c monika||8ddeb2027a8c79b3c46510a6dcef9dda robert||9451810adcc13a25e610332880cc447a Chodzi mi o to zeby tylko hasla byly szyfrowane. Bardzo prosze o pomoc bo bez tego logowania ani rusz ![]() |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarząd Postów: 2 277 Pomógł: 6 Dołączył: 27.12.2002 Skąd: Wołów/Wrocław ![]() |
[php:1:f27e0a31af]<?php
$login = "login"; $hasło = md5($haslo); ### to były dane testowe ### $tab = file($adres_pliku); foreach ($tab as $wiersz){ $_tab = explode ('|',$wiersz); if ($_tab[0] == $login){ if ($_tab[1] == $haslo) echo "zalogowany"; else echo "Błędne hasło"; break; } } unset ($tab, $_tab); ?>[/php:1:f27e0a31af] -------------------- "Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarząd Postów: 3 503 Pomógł: 28 Dołączył: 17.10.2002 Skąd: Wrocław ![]() |
-------------------- |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 86 Pomógł: 0 Dołączył: 2.04.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Skoro chcesz pisac forum i inne aplikacje to warto by bylo zaznajomic sie z SQL`em...
takie logowanie rozniez latwo mozna oprzec o baze danych.... przeslane dane najpierw filtrujesz a pozniej sprawdzasz ich prawdziwosc w SQL`u np. $aSQL="SELECT login, mdpassword FROM users WHERE login='$login' AND mdpassword='$zakodowanehaslo'"; Jesli jednak bedziesz sie upieral przy plikach to moze to Ci pomoze:: [php:1:d7a4f4d3f7] $linia= file("plik.txt"); $txt = current($linia); do { // $txt to linia z pliku } while($txt= next($linia)) [/php:1:d7a4f4d3f7] a tak wogole to nie potrafiac zrobic tego nie wroze Ci szybkiego ukonczenia innych aplikacji ;D |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarząd Postów: 3 503 Pomógł: 28 Dołączył: 17.10.2002 Skąd: Wrocław ![]() |
DeyV, pozwolę sobie lekko Twój przykład zmodyfikować:[php:1:bfe5b96ab0]<?php
$login = "login"; $hasło = md5($haslo); ### to były dane testowe ### $tab = file($adres_pliku); $zalogowany = FALSE; foreach ($tab as $wiersz){ $_tab = explode ('|',$wiersz); if ($_tab[0] == $login){ if ($_tab[1] == $haslo){ echo "zalogowany"; $zalogowany = TRUE; } else { echo "Błędne hasło"; } } else { echo "podany użytkowniek nie istnieje"; } } unset ($tab, $_tab); if (!$zalogowany) die('Logowanie nie powiodło się.'); ?>[/php:1:bfe5b96ab0] To tylko dla porządku - często nie wiadomo czy się wpisało źle hasło, czy użytkownika, czy jedno i drugie. -------------------- |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 30.04.2003 Ostrzeżenie: (0%) ![]() ![]() |
Dziekuje, naprawde nie spodziewalem sie az tak szybkiej odpowiedzi.
DeyV ---> sprobuje tego, choc nie bardzo wiem jak wyciagnac te dane z pliku, czy moglbym prosic troche jasniej. Dopiero zaczynam i jeszcze wielu rzeczy nie wiem. Scanner ---> wiem, zapomnialem dodac znacznikow, chyba o to ci chodzi, przepraszam, nastepnym razem nie zapomne Project ----> niestety nie mam dostepu do SQL'a. |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 86 Pomógł: 0 Dołączył: 2.04.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
tak szczerze mowiac chlopaki to w waszym skryptcie nie podoba mi sie przekazywanie nazwy pliku przez parametr !!!
jezeli skrypt bylby napisany w takiej formie jak zaproponiowalicie to daje glowe ze zaloguje sie nie znajac ani loginu ani hasla ![]() |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarząd Postów: 2 277 Pomógł: 6 Dołączył: 27.12.2002 Skąd: Wołów/Wrocław ![]() |
zobacz Manual->file() i wszystko będzie jasne
-------------------- "Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
|
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarząd Postów: 3 503 Pomógł: 28 Dołączył: 17.10.2002 Skąd: Wrocław ![]() |
Cytat w waszym skryptcie nie podoba mi sie przekazywanie nazwy pliku przez parametr !!! Chyba czegoś nie rozumiem. Przez jaki parametr? Przez zmienną? A co to ma do rzeczy?
Cytat Jeżeli skrypt bylby napisany w takiej formie jak zaproponiowalicie to daje glowe ze zaloguje sie nie znajac ani loginu ani hasla Jak?
![]() -------------------- |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 86 Pomógł: 0 Dołączył: 2.04.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
http://adres.strony/skrpt.php?adres_pliku=...wer/moj.plk.txt
a co w mim pliku i na moim serwerze to juz chyba nie musze tlumaczyc ![]() to tak najprosciej jak mozna... czesto znajduje sie takie bledy w plikach ktore sa includowane przez inne skrpty ![]() |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 30.04.2003 Ostrzeżenie: (0%) ![]() ![]() |
Jeszcze raz dziekuje, mam nadzieje ze sobie jakos z tym poradze.
|
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarząd Postów: 2 277 Pomógł: 6 Dołączył: 27.12.2002 Skąd: Wołów/Wrocław ![]() |
Cytat DeyV, pozwolę sobie lekko Twój przykład zmodyfikować: Ależ oczywiście, będzie mi niezmiernie przyjemnie, Towarzyszu Scanner;)
Cytat czesto znajduje sie takie bledy w plikach ktore sa includowane przez inne skrpty W którym skrypcie posawiło się includowanie plików podanych przez paramenr?
Czy chodzi ci o file($nazwa_pliku) ? To ty nie wiesz, ze jeśli to miałby być parametr, to byłby pobrany jak na dane od użytkownika przystało przez ($_POST, $_REQUEST) ? A zresztą spróbuj zaszkodzić podając błędne dane do funckji file ![]() A zresztą nie na wiele by ci się przydał dosep do pliku z hasłami zakodowanymi przez md5 ![]() -------------------- "Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
|
|
|
![]()
Post
#13
|
|
![]() Grupa: Zarząd Postów: 3 503 Pomógł: 28 Dołączył: 17.10.2002 Skąd: Wrocław ![]() |
Project: Pod warunkiem, że wiesz, jaką nazwę ma zmienna trzymająca adres pliku. Do tego mam dla Ciebie coś takiego:[php:1:7433215ddd]<?php
define('__adresPliku__', 'sciezka/do/pliku.txt'); $__file = file(__adresPliku__); ?>[/php:1:7433215ddd] DeyV: azaliż dziękuję Panu za przyzwolenie. -------------------- |
|
|
![]()
Post
#14
|
|
![]() Grupa: Zarejestrowani Postów: 86 Pomógł: 0 Dołączył: 2.04.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
DeyV nie bardzo sie zrozumielismy...
nie potrzebowalbym wtedy juz tego pliku bo skrypt dane wzorcowe pobieralby odemnie z serwera ![]() co do tego includowania to wybieglem troche do przodu i staralem sie wyobrazic praktyczne zastosowanie tego (waszego) skryptu. Aby go nie modyfikowac trzeba bylo by zaincludowac go innym skryptem w ktorym bylaby zdefiniowana wartosc zmiennej $adres_pliku Co do twojej wypowiedzi scanner to faktycznie trzeba znac nazwe zmiennej... i jak zaznaczylem wczesniej dziala gdy w skryptcie nie jest okreslona sciezka do pliku. |
|
|
![]()
Post
#15
|
|
![]() Grupa: Zarejestrowani Postów: 87 Pomógł: 0 Dołączył: 13.04.2003 Skąd: Poznan Ostrzeżenie: (0%) ![]() ![]() |
Cytat Co do twojej wypowiedzi scanner to faktycznie trzeba znac nazwe zmiennej... i jak zaznaczylem wczesniej dziala gdy w skryptcie nie jest okreslona sciezka do pliku.
Moze czegos nie rozumiem ale jak, znajac nawet nazwe zmiennej, chcesz ja przekazac w URL do skryptu w ktorym bedzie ona i tak dopiero definiowana ? a z drugiej strony kto umieszcza plik z haslami w root-katalogu skryptu (gdzie jest dostepny jak zwykly plik)? Pozdrawiam |
|
|
![]()
Post
#16
|
|
![]() Grupa: Zarejestrowani Postów: 223 Pomógł: 0 Dołączył: 13.01.2003 Skąd: 3rd ball of mud behind a big ball of burning gas Ostrzeżenie: (0%) ![]() ![]() |
Cos podobnego bylo juz poruszane:
http://forum.php.pl/viewtopic.php?t=2158&highlight=md5 -------------------- It's Time to Join the PLD Linux Generation!
<? while (!$success) { $try++; } ?> |
|
|
![]()
Post
#17
|
|
![]() Grupa: Zarejestrowani Postów: 86 Pomógł: 0 Dołączył: 2.04.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Nie nie nie....
ten system mial sie opierac na plikach textowych a nie na sqlu. Wspominal o tym autor topicu wczesniej. Watek o ktorym ty wspominasz byl o wykorzystaniu istniejacej juz struktury SQL`a (a dokladniej o strukturze z phpbb) |
|
|
![]()
Post
#18
|
|
![]() Grupa: Zarejestrowani Postów: 87 Pomógł: 0 Dołączył: 13.04.2003 Skąd: Poznan Ostrzeżenie: (0%) ![]() ![]() |
fakt podany przyklad troche nie pasuje tutaj
Ja kiedys gdy nie mialem dostepu do sql uzywalem tego: [php:1:f017ba8c64]<? require("includes/funkcje.php"); include("db/config.php"); $is_loged_in="0"; if(isset($username)) { if(!isset($md5_password)) { $md5_password=md5($password); } $members_db=file("db/user.txt"); foreach($members_db as $member_db_line){ $member_db=explode("||",$member_db_line); if($member_db[1]==$username && $member_db[2]==$md5_password) { $is_loged_in=1; setcookie("username", $username, time()+21600); setcookie("md5_password", $md5_password, time()+21600); break; } } } $pokaz = new only; if($is_loged_in==0) { $pokaz->head(0, "Zaloguj sie"); echo"<form action='secure.php' method='post'>n"; echo"<table width='100%' class='tabela'>"; echo"<tr><td align='right'>Username:</td><td align='left'><input type='text' name='username' ></td></tr>n"; echo"<tr><td align='right'>Password:</td><td align='left'><input type='password' name='password'></td></tr>n"; echo"<tr><td></td><td><input type='submit' value='Login'></td></tr>n"; echo"</table>"; echo"</form>n"; $pokaz->foot(0); } elseif($is_loged_in==1) { switch($action) { default: ?>[/php:1:f017ba8c64] I nadal nie widze mozliwosci obejscia tego w taki sposob jak przedstawil Project... Przyklad: jakisskrypt.php [php:1:f017ba8c64]<?php $blabla=123; echo"$blabla"; ?>[/php:1:f017ba8c64] I teraz wywolujemy Kod http://jakasstrona.com/jakisskrypt.php?blabla=321
i co sie wyswietli? A na koniec wszystko sie sprowadza do tegi iz, niewaznie jak bezpieczny(od strony php) masz system logowania jak i tak znajdzie jakis script-kiddie, ktory forcebrut'em i tak wejdzie bo uzytkownicy przewaznie maja hasla typu "monitor", "myszka" itp ![]() |
|
|
![]()
Post
#19
|
|
![]() Grupa: Zarejestrowani Postów: 86 Pomógł: 0 Dołączył: 2.04.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Bo to nie o to tu chodzilo...
jase ze w taki sposob to nie zadziala... ale w przykladzie ktory padl na samym poczatku wcale nie bylo zdefiniowanej zadnej wartosci.. a calosc wygladala jakby miala byc includowana do wiekszej calosci... czesto zdaza sie ze wywolujac odpowiedni plik z ustawionymi zmiennymi mozna uzyskac nieautoryzowany dostep (np do panelu administracyjnego) !!! ![]() Pewnie niejeden z was powie ze to bledy niedoswiadczonych programistow ale prawda jest taka ze moga zdazyc sie kazdemu gdy termin nagli (wtedy czlowiek pracuje jak automat)... |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 24.07.2025 - 20:17 |