Jesteś tutaj: webmade.org >> porady >> php + mysql
autor: Mateusz Bogolubow, ostatnia modyfikacja: 2007-02-23
Token jest generatorem jednorazowych kodów służących do autoryzacji. W naszym przypadku będzie on zabezpieczał nasz formularz przed programami, które automatycznie wypełniają i wysyłają formularz - tzw. boty.
Nasz skrypt będzie oparty na plikach graficznych. Nie jest to najlepsze rozwiązanie, ale nie wymaga biblioteki GD .
Będziemy potrzebowali 10 plików graficznych, który każdy będzie zawierał inna cyfrę. Przyjmijmy, że plik zawierający 'zero' nazywa się '0.gif' itd. Nasz token, który będzie się składał z pięciu cyfr będzie przechowywany w zmiennej sesyjnej o nazwie token. Teraz tworzymy plik formularz.php i wprowadzamy do niego poniżej przedstawione fragmenty kodu...
Inicjujemy sesje i zmiennej $_SESSION['token'] przypisujemy pustą wartość.
<?php session_start(); $_SESSION['token'] = ''; ?>
Następnie losujemy 5 liczb z przedziału od '0' do '9' za pomocą funkcji rand() oraz tworzymy token jako ciag znaków ($_SESSION['token']) i ciąg obrazów($img). Zauważ, że przy znaku równości jest kropka - dzięki niej wartości są dopisywane, a nie podmieniane.
<?php for($i=0;$i<5;$i++) { $liczba = rand(0,9); $_SESSION['token'] .= $liczba; $img .= '<img src="'.$liczba.'.gif" />'; } ?>
Nasz jednorazowy kod już mamy teraz stworzymy prosty formularz, do którego użytkownik będzie wprowadzał wyświetlany ciąg cyfr.
<html> <head> <title>token</title> </head> <body> <p>Wprowadź ponizszy kod do formularza</p> <?php echo $img; /* Wyświetla token w formie graficznej */ ?> <form action="sprawdz.php" method="post"> <input type="text" name="token"> <input type="submit" value="ok" /> </form> </body> </html>
To cały kod jaki ma się znaleźć w pliku formularz.php, teraz stwórz plik sprawdz.php i wprowadź do niego poniższy kod:
<?php session_start(); if ($_SESSION['token'] == $_POST['token']) echo "Wprowadzono <b>poprawny</b> kod"; else echo "Wprowadzono <b>niepoprawny</b> kod"; ?>
To tyle... mam nadzieję, że wszystko zostało dostatecznie wyjaśnione.
Mateusz Bogolubow
szukaj: token generator kodów jednorazowych PHP
Osoby czytające tę publikację przeglądały również:
© 2004-2008 copyright by webmade.org