ďťż

[php]token

       

Podstrony


telcocafe

mam skrypt geneujący token, jeśli zapisze go w pliku np token.php to żeby wyświetlił liczbę będe musiał wpisać np

<img src="token.php?nr=123456">
ale ja ktak zrobie to traci on sens bo wystarczy do źródła zerkonąć

z drugiej strony jak zrobie żeby liczbę losował już skrypt token.php to skąd jak mam sprawdzić jaki numer jest prawidłowy ??



Hmmm...może spróbuj tak, że skrypt bierze to wylosowaną liczbę i porównuje ją z tym co użytkownik wpisze w okienko(bo obstawiam, że tak to zrobiłeś:P). Zadziała to na zasadzie zwykłego wysłania hasła i sprawdzenie poprawności bo kod wygenerowany jako token masz pod zmienną $a, a to co użytkownik wpisze pod $b. I jeśli $a == $b to gitara ;]

wrzuc go tutaj na forum to sie zobaczy co z nim :)

weź zrób z niego md5 i porównój w skrypcie md5 :)



dodaj sobie token do tablicy ze zmiennymi sesyjnymi i w funkcji sprawdzającej poprawność sprawdzaj czy są takie same

Znalazłem takie coś, może Ci się przyda:
grafixToken.php
<?php // Nadaje nazwe sesji i ja startuje. session_name("ImageSess"); session_start(); // dodatkowe naglowki, by nie buforowac wyniku header ("Expires: Mon, 22 Sep 1997 09:00:00 GMT"); header ("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); header ("Cache-Control: no-store, no-cache, must-revalidate"); header ("Cache-Control: post-check=0, pre-check=0", false); header ("Pragma: no-cache"); // tworzę obrazek o określonych wymiarach $grafix = ImageCreate(250, 100); // Losowanie kolorow dla tla i napisu mt_srand(time()*123456); $settings= array( array( "wallpaper" => "./wallpapers/wallpaper1.png", "bgColor" => array(mt_rand(30,180), 0, mt_rand(0,30)), "txtColor" => array(0, mt_rand(180,255), mt_rand(0,30)), "noiseColor" => array(200, mt_rand(150, 250), mt_rand(200,210)) ), array( "wallpaper" => "./wallpapers/wallpaper2.png", "bgColor" => array(255, mt_rand(30,180), 0), "txtColor" => array(0, mt_rand(0,60), mt_rand(50,205)), "noiseColor" => array(200, mt_rand(100,130), mt_rand(185, 255)) ), array( "bgColor" => array(mt_rand(30,180), 0, mt_rand(0,30)), "txtColor" => array(0, mt_rand(10,130), mt_rand(50,155)), "noiseColor" => array(mt_rand(150,230), 0, mt_rand(120, 250) ) ) ); $randSettingsNo = mt_rand(0, sizeof($settings)-1); //kolor tla $bgColorRGB = $settings[ $randSettingsNo ]["bgColor"]; $bgColor = ImageColorAllocate($grafix, $bgColorRGB[0], $bgColorRGB[1], $bgColorRGB[2]); //kolor tekstu $txtColorRGB = $settings[ $randSettingsNo ]["txtColor"]; $txtColor = ImageColorAllocate($grafix, $txtColorRGB[0], $txtColorRGB[1], $txtColorRGB[2]); //kolor zanieczyszczen $noiseColorRGB = $settings[ $randSettingsNo ]["noiseColor"]; $noiseColor = ImageColorAllocate($grafix, $noiseColorRGB[0], $noiseColorRGB[1], $noiseColorRGB[2]); // maluję tło if(isset($settings[ $randSettingsNo ]["wallpaper"])){ // otwieram obrazek typu PNG $grafixBackground = @ImageCreateFromPng($settings[ $randSettingsNo ]["wallpaper"]); // kopiuje cala zawartosc na $grafix ImageCopy($grafix, $grafixBackground, 0, 0, 0, 0, 250, 100); }else{ ImageFill($grafix, 250, 100, $bgColor); } // Losowanie slowa $words = array("Alice", "cat", "rabbit", "Queen"); $randWordNo = mt_rand(0, sizeof($words)-1); // sprawdzam czy istnieje funkcja ImageTTFText() if(TRUE == function_exists("ImageTTFText")){ //definiuje zbior czcionek i wybieram losowo jedna $fontsList = array( "./fonts/ariblk.ttf", "./fonts/verdana.ttf", "./fonts/tahoma.ttf" ); $randFontNo = mt_rand(0, sizeof($fontsList)-1); $randFontPath = realpath($fontsList[ $randFontNo ]); // losowe znaki w tle wlasciwego napisu ImageTTFText for($i=1;$i<30;$i++){ $randCharSpaceLeft = mt_rand(0, 250); $randCharSpaceUp = mt_rand(0, 100); $randChar = chr(mt_rand(45, 250)); ImageTtfText($grafix, 20, mt_rand(3,180), $randCharSpaceLeft, $randCharSpaceUp, $noiseColor, $randFontPath, $randChar); } $randSpaceLeft = mt_rand(0,170); $randSpaceUp = mt_rand(40,75); ImageTtfText($grafix, 26, mt_rand(-15,15), $randSpaceLeft, $randSpaceUp, $txtColor, $randFontPath, $words[$randWordNo]); }else{ // losowe znaki w tle wlasciwego napis ImageString for($i=1; $i<30; $i++){ $randCharSpaceLeft = mt_rand(0, 250); $randCharSpaceUp = mt_rand(0, 100); $randChar = chr(mt_rand(45, 250)); ImageString($grafix, 4, $randCharSpaceLeft, $randCharSpaceUp, $randChar, $noiseColor); } $randSpaceLeft = mt_rand(0,200); $randSpaceUp = mt_rand(0,70); ImageString($grafix, 6, $randSpaceLeft, $randSpaceUp, $words[$randWordNo], $txtColor); } //zanieczyszam obrazek niewielkimi liniami for($i=1;$i<50;$i++){ $randPixSpaceLeft = mt_rand(0, 250); $randPixSpaceTop = mt_rand(0, 100); $style = mt_rand(0,2); if(0 == $style){ ImageLine($grafix, $randPixSpaceLeft, $randPixSpaceTop, $randPixSpaceLeft+10, $randPixSpaceTop+7, $txtColor); }elseif(1 == $style){ ImageLine($grafix, $randPixSpaceLeft, $randPixSpaceTop, $randPixSpaceLeft-3, $randPixSpaceTop+7, $noiseColor); }else{ ImageLine($grafix, $randPixSpaceLeft, $randPixSpaceTop, $randPixSpaceLeft-5, $randPixSpaceTop-5, $bgColor); } } // przekazuje przez sesje wylosowane slowo $_SESSION["choosenWord"] = $words[$randWordNo]; // wysyłam odpowiedni nagłówek a następnie obrazek do przeglądarki header("Content-type: image/png"); ImagePNG($grafix); // sprzątam po sobie ImageDestroy($grafix); ?>
form.php
<?php session_name("ImageSess"); session_start(); // sprawdzanie formularza $show = "form"; if(isset($_POST["guessedWord"])){ if($_POST["guessedWord"] == $_SESSION["choosenWord"]){ $show = "OK"; }else{ $show = "error"; } } if($show == "form" || $show == "error"){ if($show == "error"){ echo "Nie odgadles slowa. Spróbuj ponownie"; } ?> <form method="post" action="<?=$_SERVER["PHP_SELF"]?>"> <img src="grafixToken.php?ImageSess=<?=session_id()?>"> <input type="text" name="guessedWord"> <input type="submit" value="Check me!"> </form> <? }else{ echo "Gratulacje poprawnego odczytania slowa."; } ?>

// code => codebox -m
Użytkownik migajek edytował ten post 16 listopad 2005, 15:59

Znalazłem takie coś, może Ci się przyda:
grafixToken.php
...

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

  • Sitedesign by AltusUmbrae.