Loading:

Ferie zimowe - 3 za 2

Prosty token

Witam
Chciałbym Wam przedstawić bardzo prosty Token, który zrobiłem do swojego skryptu. Nie jest do końca taki jak inne gdzie przepisujemy kod. Do tego naszego wymagana jest znajomość dodawania Smile

Zaczynamy. Przypuśćmy, że mamy 2 strony. Jedna z formularzem, a druga z działaniem skryptu np. dodanie danych z formularza do bazy danych.
Nazwijmy je formularz.php i dodaj.php. jak zatem będzie wyglądal formularz? (oczywiście nie cały. uwzględniam tu tylko kod tokena Smile ):

formularz.php

Listing
<?php
$numbers = array(1, 2, 3, 4, 5, 6, 7, 8, 9);
$first = $numbers[array_rand($numbers)];
$second = $numbers[array_rand($numbers)];
$third = $first + $second;
$_SESSION['numbers'] = $third;
?>
<form method=post action="dodaj.php">
// pola formularza i nasze ostatnie:
<?php echo "$first + $second = ";?><input type="text" name="token" size=40 maxlength=150>
<p><input type="submit" name="submit" value="Dodaj"></p>


Natomiast plik dodaj.php

Listing
<?php
session_start();
if ($_POST['token'] == $_SESSION['numbers']) {
//jakaś treść skryptu, działającego w oparciu o dane z formularza
} else {
echo "Zła liczba";
}
?>


To wszystko! Smile Teraz krótko opiszę każdy z elementów:

Listing:
$numbers = array(1, 2, 3, 4, 5, 6, 7, 8, 9);

Ten kod, to tablica zawierająca zbiór liczb, ktore posłużą nam do losowania.

Listing:
$first = $numbers[array_rand($numbers)];
$second = $numbers[array_rand($numbers)];

Tutaj losowana jest pierwsz ($first) i druga ($second) liczba, spośród wcześniej wypisanych.

Listing
$third = $first + $second;

Ten kod, to suma pierwszej i drugiej liczby.

Listing:
$_SESSION['numbers'] = $third;

Tutaj rozpoczynamy sesję o nazwie numbers i wartości trzeciej liczby (czyli sumy 2 poprzednich)

Listing:
<?php echo "$first + $second = ";?><input type="text" name="token" size=40 maxlength=150>

Tutaj znajduje się nasze pole w formularzu do wpisania liczby (która jest sumą dwóch wylosowanych liczb)
Krótki kod jest podpowiedzią dla wypelniającego formularz użytkownika.

Listing:

W następnym pliku rozpoczynamy sesje (dzięki temu caly czas "trzymamy" sesję utworzoną w pierwszym pliku).

Listing:

if ($_POST['token'] == $_SESSION['numbers']) {

Tutaj porównujemy wpis użytkownika z sesją. Liczba, którą ma wpisac użytkownik to suma dwoch wylosowanych liczb. Ta sama liczba jest też wartością sesji. Ten kod sprawdza czy wartość sesji jest taka sama jak liczba wpisana przez użytkownika. Jeśli tak, to wykonywany jest jakiś kod, jeśli nie, to wyświetlany jest komunikat "Zła liczba"



Napisz Artykuł

Listing

niema


Ten wpis posiada swój wątek na forum

Wszystkie pytania prosimy kierować właśnie tam ponieważ komentarze to miejsce na poprawki do kodu lub alternatywne rozwiązania i pytania nie będą publikowane

http://forum.funkcje.net/forum/viewtopic.php?f=2&t=12297

Dane do logowania na forum są takie same jak na funkcje.net



Dodano przez: bidziu8900 Ranga: Poziom 9 Punktów: 351
Komentarze użytkowników
    • Treść komentarza
      Kod do komentarza (opcjonalnie)
      PHP JavaScript MySQL Smarty SQL HTML CSS ActionScript
      Autor
      Token
      token

       

       








funkcje.net
Wszelkie prawa zastrzeżone©. | Funkcje.net 2008-17 v.1.5 | design: diviXdesign & rainbowcolors