Loading:

Ferie zimowe - 3 za 2

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

Kod PHP:
<?php
$numbers 
= array(123456789);
$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

Kod PHP:
<?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:

Kod PHP:
$numbers = array(123456789); 

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

Kod PHP:
$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.

Kod PHP:
$third $first $second

Ten kod, to suma pierwszej i drugiej liczby.

Kod PHP:
$_SESSION['numbers'] = $third

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

Kod PHP:
<?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.

Kod PHP:
session_start(); 

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

Kod PHP:
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=12&t=12389

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



Dodano przez: bidziu890 Ranga: Poziom 7 Punktów: 248
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