Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] token
Forum PHP.pl > Forum > Przedszkole
gibonik
cos mi zle działa bo na samym poczku zanim klikne na przycisk to wyswietla ze niepoprawy kod a jak wpisze cokolwiek to wyswietla ze poprawny

  1. <?
  2.  
  3. $_SESSION['token'] = '';
  4.    for($i=0;$i<5;$i++) {
  5.     $liczba = rand(0,9);
  6.    $_SESSION['token'] .= $liczba;
  7.    $img.= $liczba;
  8.    }
  9. ?>
  10.  
  11.  
  12.  
  13.  
  14. <? echo $img;
  15. if(isset($_POST['submit'])){
  16.    if ($_SESSION['token']=$_POST['token']) echo "Wprowadzono <b>poprawny</b> kod";
  17.    else echo "Wprowadzono <b>niepoprawny</b> kod";}
  18.    ?>
nospor
poczytaj w manualu jaka jest roznica miedzy = a ==
a potem zastanow sie czy w IF slusznie zastosowales =
gibonik
ok to powinno być ==,ale po zmianie krzyczy ze "niepoprawny" ,wszystko mam w jednym formularzu
  1. <?
  2. if(isset($_POST['submit']) ){
  3.    if ($_SESSION['token']==$_POST['token']) echo "Wprowadzono <b>poprawny</b> kod";
  4.    else echo "Wprowadzono <b>niepoprawny</b> kod";}
  5.    ?>
  6.  <form action="<?=$PHP_SELF ?>" method="post">
  7.   <input name="token" type="text" >
  8.   <input name="submit" type="submit" id="submit" value="ok" />
  9.    ?>
nospor
w kodzie co pokazales za kazdym razem generujesz nowy token do sesji, wiec raczej trudno jest sie wstrzelic postem w niego winksmiley.jpg
gibonik
aha czyli ta sesja nie potrzebna?
nospor
sesja potrzebna, tylko kurcze nie zmieniaj jej po wyslaniu forma bo w zyciu sie nie wstrzelisz.
gibonik
smile.gif, a czy macie jakis prosty przykład tokena z gdzie beda litery małe i duze+cyfry
loko0
Twój sposób jest OK, tylko rozdziel formularz z generowaniem tokena od skryptu sprawdzającego - to Ci sugerował nospor.

Jeśli chcesz dodać inne znaki do tokena, to zrób tablicę ze znakami, jakie chcesz i losuj w pętli element tej tablicy.
gibonik
to juz poprawione, tylko chce zrobić zeby były litery małe i duze i zeby graficznie sie fadnie wyswietlały z jakims cieniem czy cos.
trike
duze i male litery mozesz rozroznic za pomoca chr(ascii), a w nawiasie podajesz przedzialy duzych i malych liter, np dla malych to bedzie 97-122 a dla duzych 65-90
http://www.asciitable.com/ - tam znajdziesz kody ascii
dodaj do tego rand() i masz wszystko co ci trzeba do generowania losowych cyfr i liter chr(rand(min,max));
loko0
To musisz wygenerować obrazek. Domyślam się, że chcesz zrobić coś na wzór captchy, więc obrazek będzie niezbędny.
imagecreatetruecolor" title="Zobacz w manualu PHP" target="_manual
imagestring" title="Zobacz w manualu PHP" target="_manual
itd.
trike
na poczatek tak jak wyzej loko0 pisze imagecreatetruecolor() a pozniej zeby wpisac tokena do obrazka to potrzeba imagettftext()
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.