ďťż

Skrypt autoryzacji w PHP dostęp po podaniu hasła

       

Podstrony


telcocafe

Potrzebuję bardzo prostego skryptu w php:
na stronie jest pole na wpisanie hasła i pod spodem jest przycisk OK. Jak ktoś wpisze dobre haslo i kliknie OK, to skrypt sprawdza, czy takie haslo jest w pliku txt na serwerze, a jak jest, to przekierowywuje na odpowiednią stronę, jak haslo jest złe, to wyświetla komunikat "żle hasło". Ma być tylko jedno pole na haslo, bez nazwy użytkownika - samo haslo!



Było, było, było... google.pl google.pl google.pl - autoryzacja w php!


Było, było, było... google.pl google.pl google.pl - autoryzacja w php!


wiem. Było w Ekspercie, ale tam jest, że się podaje nazwę użytkownika i haslo, a ja chcę prostszy skrypt - samo haslo!



Ale tam wszędzie jest nazwa użytkownika, a ja nie znam się na PHP :(

Po pierwsze hasło zapisz w pliku php nie txt, bo txt da się odczytać a php za nic ;) Ten php z hasłem miałby najlepiej taką składnie:
<? $password = twoje_haslo; ?>
Następnie skrypt:
[strona na której jest pole z hasłem]
[..] <form method=post action=sprawdz.php> <p>Podaj hasło: <input type="password" name="pass" size="10"><input type="submit" value="OK"></p></form> [...]
Tego byś się sam domyślił ale ważne jest żeby ten pierwszy input miał parametr name="pass".

Teraz w tym samym katalogu daj plik sprawdz.phpi w nim taki kod:
if (isset($_POST['pass'])) { include('plik_z_haslem.php'); if($password == $_POST['pass']) { ?> <script language="Javascript"> location.href = 'strona.php'; </script> <? } else { echo "<b>Podano błędne hasło</b><br>"; } } else echo "Nie podano hasła";
Nie zapomniej zmienić strona.php na adres na jaki ma być przekierowanie, oraz tego plik_z_haslem.php na adres tego pliku z hasłem.

A jak chcę mieć kilka haseł, to dać je w tym pierwszym pliku php po przecinku, czy jak?

To trzeba je wsadzić do tabeli i zrobić instukcję iteracyjną który by to sprawdzała.
Tu masz przerobiony plik z hasłem:
<? $password[1] = "twoje_haslo1"; $password[2] = "twoje_haslo2"; $password[3] = "twoje_haslo3"; (..) $password[n] = "twoje_haslon"; ?>Teraz sprawdz.php:
<?if (isset($_POST['pass'])) { include('plik_z_haslem.php'); for($i = 1; $i <= [ilosc hasel]; $i++) { if($password[$i] == $_POST[pass]) $allow = TRUE; } if($allow == TRUE) { ?> <script language="Javascript"> location.href = 'strona.php'; </script> <? } else { echo "<b>Podano błędne hasło</b><br><br><code>By dh_maniak</code>"; } } else echo "Nie podano hasła<br><br><code>By dh_maniak</code>"; ?>
I taka notka: nie możesz korzystać z tego w kodu w celach komercyjnych... chyba że się dogadamy... heh ;)

Jescze jedno: jak się nie wpisze żadnego hasla i kliknie OK, to przekierowywuje na stronę, a tak nie może być!

sprawdz.php(poprawione)
<?if (isset($_POST['pass']) && $_POST['pass'] != "") { include('plik_z_haslem.php'); for($i = 1; $i <= [ilosc hasel]; $i++) { if($password[$i] == $_POST[pass]) $allow = TRUE; } if($allow == TRUE) { ?> <script language="Javascript"> location.href = 'strona.php'; </script> <? } else { echo "<b>Podano błędne hasło</b><br><br><code>By dh_maniak</code>"; } } else echo "Nie podano hasła<br><br><code>By dh_maniak</code>"; ?>

Mam kolejny problem :( Chodzi o to, że jest np. stronka index.php z tym polem na wpisanie hasla. Jak wpisze się haslo, to przekierowywuje na np. index2.php, ale jak wpisze się http://mojastrona/index2.php, to można obejrzeć tą stronę bez posiadania hasła :(
Użytkownik Romek D. edytował ten post 28 lipiec 2005, 13:16
I jescze jedno:
Czy nie można jakoś przerobićtego pliku z hsłami: <? $password[1] = "twoje_haslo1"; $password[2] = "twoje_haslo2"; $password[3] = "twoje_haslo3"; ?>
Bo tak jak są tylko trzy pozycje, to jest łatwo, ale co zrobić, gdy chce dać kilka tysięcy haseł :blink: Przecież nie będę ręcznie wszystkiego wpisywał! Możeby zrobić jakoś, żeby był jeden plik z samymi hasłami, bez tego "$password[1] =" itd. ???

<? $password = array("kolejne", "hasła", "po", "przecinku"); ?>


<? $password = array("kolejne", "hasła", "po", "przecinku"); ?>

To trzeba by było explodować te dane z tego pliku. Odsyłam do kursu php i zachęcam do przerabiania mojego skryptu.

1. W jakim formacie są te hasła? Jedno pod drugim?
2. Zapoznaj się z funcjami implode i explode w manualu PHP.


1. W jakim formacie są te hasła? Jedno pod drugim?
2. Zapoznaj się z funcjami implode i explode w manualu PHP.

W którymś z ostatnich ekspertów było o takim czymś. Na płytce był chyba nawet system do sprawdzania kodów.

Ja zrobiłem tak!
Zapisałem loginy użytkowników w bazie mysql. Następnie łącze się z baża danych i pobieram loginy i hasla uzytkowników (tego skryptu nie pisze bo jest baaardzo znany osobom uzywajacym php i mysql)! Następnie w skrypcie porównuje haslo wpisane i pobrane z bazy no i oczywiscie loginy i jesli sie zgadza to wrzucam kolesiowi na dysk ciacho i wtedy za kazdym razem jesli chce wejsc na strone ktró wymaga zalogowanie to skrypt na poczatku sprawdze czy w caichu jest odpowiednia wartosc i jesli kolo chce sie wylogowac to kolejny skrypt zmienia wartosc w ciachu! Może potem napisze cały ten skrypt a jesli chcesz go znac szybiecj to napisz do mnie na maila!

Człowieku czytaj. Jemu chodzi o to jak do skryptu php załadować te wszystkie 2000 lini z pliku txt(załadować do tabeli).

<?if (isset($_POST['pass']) && $_POST['pass'] != "") { $password = file('plik z haslami.txt'); for($i = 0; $i < count($password); $i++) { if($password[$i] == $_POST[pass]) $allow = TRUE; } if($allow == TRUE) { ?> <script language="Javascript"> location.href = 'strona.php'; </script> <? } else { echo "<b>Podano błędne hasło</b><br><br><code>By dh_maniak</code>"; } } else echo "Nie podano hasła<br><br><code>By dh_maniak</code>"; ?>
Teraz powinno działać. Zamiast plik z haslami.txt daj ścieżkę do pliku. I każde hasło w tym pliku musi być w osobnej linii ;) Niestety żeby wejść na tą stronę na którą ma być przekierowanie nie trzeba podawać wcale hasła. Wystarczy wejść bezpośrednio pod adres tej strony.
Użytkownik dh_maniak edytował ten post 28 lipiec 2005, 23:31

Niestety żeby wejść na tą stronę na którą ma być przekierowanie nie trzeba podawać wcale hasła. Wystarczy wejść bezpośrednio pod adres tej strony.

dh_maniak mógłbyś jescze raz powiedzieć wszystkie pliki, jakie powinny być na serwerze i co w każdym z tych plików ma być, bo już się całkowicie w ty pogubiłem :(


To to zdążyłem zauważyć, ale jak się przed tym zabezpieczyć?

Autoryzację możesz sciągnąć z TEJ strony


dh_maniak mógłbyś jescze raz powiedzieć wszystkie pliki, jakie powinny być na serwerze i co w każdym z tych plików ma być, bo już się całkowicie w ty pogubiłem :(

dh_maniak, a o in_array słyszałeś ? :>

A z czym to się je Bełdzio? :D

@Romek D. - poczytaj jakiś kurs php od podstaw - to jest 3 dni nauki - i pocztyaj o sesjach i wtedy napisz skrypt sprawdzający hasło i zapisujący zmienną sesyjną, że użytkownik wpisał hasło. Ew. możesz użyć też ciastek.

BTW. Zauważyłem że chcesz wykorzystać ten skrypt na stronie komercyjnej a więc niestety za frajer nie napisze Ci całego skryptu. Tak jak wyżej napisałem naucz się php i napisz taki skrypt. Jest to 5 min roboty.


dh_maniak, a o in_array słyszałeś ? :>

RTFM.
http://pl.php.net/ma...on.in-array.php

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.