![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 0 Dołączył: 3.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam, mam problem z formularzem. MIanowicie:
znajduje się on pod adresem http://www.pewniak.webd.pl/normalna/tmp/. Skrypt formularza: Kod <script language="javascript" type="text/javascript" src="js/mintAjax.js"></script> <script language="javascript" type="text/javascript" src="js/form.js"></script> <style> A:link{color: #4444ec; text-decoration: none;} A:visited{color: #3232af; text-decoration: none;} A:hover{color: #ff0000; text-decoration: underline;} </style> </head> <body style="text-align: center; margin: 0 auto; background: #fff url('img/n_head_bg.jpg') repeat-x; font: 14px verdana, sans-serif;"> <br><br> <div style="width: 850px; margin: 0 auto; background: #fff url('img/n_content.jpg') repeat-y; border-top:1px solid #000000; border-bottom:1px solid #000000; text-align: left;"> <h2> SKRYPT - token.php</h2> <form id="token_form" name="token_form" action="sprawdzaj.php" method="post" style="width: 842px; text-align: left; margin: 0 auto;"> <fieldset> <legend><b>Przetestuj dzialanie Formularza kontaktowego</b></legend> <tr> <td>Tre¶ć wiadomo¶ci:<br></td> <td><textarea name="tresc" style="width: 250px; height: 100px"></textarea></td> </tr><br> <tr> <td>Imię, nazwisko lub nick:<br></td> <td><input type="text" name="imie" style="width: 250px"></td> </tr><br> <tr> <td>Adres e-mail:<br></td> <td><input type="text" name="email" style="width: 250px"></td></tr><br> <tr><td>Wy¶lij kopię na adres e-mail:</td><br> <td><input type="checkbox" name="kopia" value="email" onclick="this.form.elements['emailk'].disabled = !this.checked" /> <input type="text" name="emailk" style="width: 225px" disabled="disabled" /> </td> </tr> <tr> <td> </td><br> <div id="error"></div> <br> <img id="img_token" src="token.php"> <br> <br> <label for="token_text">Kod z obrazka:</label><br> <input type="text" id="token_text" name="token_text" /> <button type="button" onclick="reloadToken();">Odswiez obrazek</button> <br> </table> <br> <button type="button" onclick="checkToken();">Wy¶lij</button> <input type="reset" value="Wyszy¶ć"></td> </fieldset> </form> <br> skrypt sprawdź.php Kod <? //start sesji session_start(); //pobranie tokena $token_post = strtolower($_POST['token_text']); $session_token = $_SESSION['token']; if( ($token_post == $session_token) && ($session_token != '') ) { $prawidlowy_token = true; }else { $prawidlowy_token = false; } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Token</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <style> A:link{color: #4444ec; text-decoration: none;} A:visited{color: #3232af; text-decoration: none;} A:hover{color: #ff0000; text-decoration: underline;} </style> </head> <body style="text-align: center; margin: 0 auto; background: #fff url('img/n_head_bg.jpg') repeat-x; font: 14px verdana, sans-serif;"> <br> <div style="width: 840px; text-align: left; margin: 0 auto;"> <font color="blue" size="2"> <? echo "TOKEN przekazany metodą; post <b>\$_POST['token_text']</b>: <font color='black'>$token_post</font> <br />"; echo "TOKEN pobrany ze zmiennej sesyjnej <b>\$_SESSION['token']</b>: <font color='black'>$session_token</font>"; ?> </font> <br /><br /> <?php if (count($_POST)) { ////////// USTAWIENIA ////////// $email = 'becom@o2.pl'; // Adres e-mail adresata $email_1=$_POST['emailk']; $subject = 'Wiadomosc demo'; // Temat listu $message = 'Wiadomo¶ć zostala wysłana!'; // Komunikat $error = 'Wystapil podczas wysyłania formularza'; // Komunikat błędu $charset = 'iso-8859-2'; // Strona kodowa ////////////////////////////// $head = "MIME-Version: 1.0\r\n" . "Content-Type: text/plain; charset=$charset\r\n" . "Content-Transfer-Encoding: 8bit"; $body = ''; foreach ($_POST as $name => $value) { if (is_array($value)) { for ($i = 0; $i < count($value); $i++) { $body .= "$name=" . (get_magic_quotes_gpc() ? stripslashes($value[$i]) : $value[$i]) . "\r\n"; } } else $body .= "$name=" . (get_magic_quotes_gpc() ? stripslashes($value) : $value) . "\r\n"; } echo mail($email, "=?$charset?B?" . base64_encode($subject) . "?=", $body, $head) ? $message : $error; echo mail ($email_1, "=?$charset?B?" . base64_encode($subject) . "?=", $body, $head) ? $message : $error; } else { ?> <form action="?" method="post"> Tutaj umiesć wszystkie pola formularza </form> <?php } ?> <br /><br /> <font color="red" size="4"> <? if ($prawidlowy_token == true) { echo "Wpisany TOKEN jest prawidłowy ![]() }else { echo "Wpisany TOKEN jest błędny ![]() } ?> </font> <br> <br> <a href="index.php" style="font:14px verdana, sans-serif;"><b>>> powrót do strony z TOKENem<b></a> <br> <br> </div> </div> <br><br> </body> </html> <? unset($_POST['token_text']); session_unset(); ?> <?php exit; ?> Nie dziala skrypt - cos jest nie tak z obsluga PHP :( Niestety przyciski formularza nie działaja. O co kaman? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 82 Pomógł: 9 Dołączył: 9.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
z tego co zauwazylem to nie dziala tylko Wyslij, a pokaz funckje checkToken i sprobuj jeszcze zmienic z onclick na onClick
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 0 Dołączył: 3.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Kod <? ################################################################################ #### ## ## ## ## KOPIOWANIE, UZYWANIE, SPRZEDAWANIE i ROZPOWSZECHNIANIE zabronione ![]() ## Jesli chcesz uzywac skryptu skontaktuj sie ze mna: ## email: becom@o2.pl ## GaduGadu: 2002083 ## ## KUPUJAC SKRYPT NABYWASZ LICENCJE NA JEGO MODYFIKACJE I ZASTOSOWANIE W SWOICH PROJEKTACH. ## NIE NABYWASZ LICENCJI NA SPRZEDAWANIE I ROZPOWSZECHNIANIE SKRYPTU ![]() ## ## Jesli zakupiles ode mnie ten skrypt wszelkich informacji technicznych udzielam na maila lub po przez GaduGadu. ## email: becom@o2.pl ## GaduGadu: 2002083 ## ## ## Skrypt 'token.php' generujacy TOKEN -- ## ## Skrypt wymaga biblioteki GD. ## Generuje losowego tokena skladajacego sie z duzych i malych liter (A-Z) (a-z) oraz z cyfr (0-9) - BEZ POLSKICH LITER! ## Skrypt zwraca obrazek w formacie PNG. A TOKENa (string) w zmiennej sesyjnej $_SESSION['token']. ## ## UZYCIE: ## Aby uzyc skryptu 'token.php' wystarczy wkleic go swojego skryptu jako obrazek w znacznikach HTML. ## Przyklad: ## echo '<img src="token.php">'; //skrypt zwroci nam obrazek PNG z wygenerowanym TOKENEM ## <img src="token.php"> - lub sam znacznik HTMLowy w sekcji HTML. ## Skrypt w miejscu 'token.php' wstawi nam obrazek z wygenerowanym TOKENem. ## A w zmiennej sesyjnej $_SESSION['token'] znajdzie sie aktualny TOKEN jako string. ## PAMIETAJ takze aby w tym folderze, w ktorym znajduje sie skrypt 'token.php', ## znalazl sie takze folder 'ttf' z czcionkami ![]() ## ## USTAWIENIA: ## Szerokosc i wysokosc obrazka ustawiamy zmieniajac wartosci zmiennych $szerokosc i $wysokosc. ## Zmieniajac powyzsze wartosci warto takze zmienic (analogicznie) $dlugosc_tokena i $wielkosc_czcionki, ## aby rozlozyc literki symetrycznie w obrazie z TOKENem. ## ## $dlugosc_tokena - okresla ilosc liter w TOKENie (przy zmianie tej wartosci nalezy takze zmienic $szerokosc) ## ## $wazna_wielkosc_liter - jesli ta zmienna jest ustawiona na TRUE wpisujac TOKEN musimy zwracac na ## wielkosc liter. Jesli wartosc jest FALSE TOKEN jest niezalezny od wielkosci liter. ## PAMIETAJ ![]() ![]() ## Przy sprawdzaniu TOKENa takze musisz zamienic literki na male ![]() ## Przyklad: ## $token_post = strtolower($_POST['token']); ## Jesli $wazna_wielkosc_liter == TRUE usun ze skryptu sprawdzajacego funkcje strtolower(). ## Przyklad: ## $token_post = $_POST['token']; ## ## $gestosc_wypelnienia - tutaj okreslamy gestosc z jaka wypelniamy punkcikami nasz obraz z TOKENem. ## ## $wielkosc_czcionki - okresla rozmiar czcionki uzytej do stworzenia TOKENa. ## Zmieniajac ta wartosc zmien takze $wysokosc. ## ## $czcionka - ta zmienna pozwala na wybor czcionki uzytej do stworzenia obrazu z TOKENem. ## Wybierz tylko jedna czcionke odkomentowujac ja, a zakomentowujac poprzednio uzywana. ## ## Kolory TOKENa ## $tlo = imagecolorallocate($obraz, 255, 255, 255); //bialy ## $ramka = imagecolorallocate($obraz, 0, 0, 0); //czarny ## $punkt1 = imagecolorallocate($obraz, 0, 0, 0); //czarny ## $punkt2 = imagecolorallocate($obraz, 128, 128, 128); //szary ## $tekst1 = imagecolorallocate($obraz, 0, 0, 0); //czarny ## $tekst2 = imagecolorallocate($obraz, 100, 100, 100); //szary ## Wybierz zestaw kolorow odkomentowujac kolory a zakomentowujac ostatnio uzywane. ## $tlo - kolor tla ## $ramka - kolor ramki ## $punkt1 - kolor pierwszego rodzaju punktowania ## $punkt2 - kolor drugiego rodzaju punktowania ## $tekst1 - pierwszy kolor czcionki ## $tekst2 - drugi kolor czcionki ## Komponujac wlasna palete barw pamietaj o tym, aby wszystkie kolory byly do siebie podobne. ## wtedy TOKEN bedzie dobrym zabezpieczeniem przed bootami internetowymi. ## ## Zaleznie od ustawien skrypt zwraca TOKENa normalnie lub wspak (od tylu). ## Ustawienie zmiennej '$wspak == true' spowoduje, ze w zmiennej sesyjnej $_SESSION['token'] ## string bedzie od ostatniej literki do pierwszej. ## Przyklad: ## Wygenerowany TOKEN == 'aDt3h5Hu'. Jesli zmienna '$wspak == true' w zmiennej sesyjnej ## $_SESSION['token'] znajdzie sie wartosc 'uH5h3tDa', w przeciwnym wypadku ## ('$wspak == false') w zmiennej sesyjnej $_SESSION['token'] znajdzie sie wartosc 'aDt3h5Hu'. ## ## ################################################################################ #### ###################### INICJALIZACJA SKRYPTU I USTAWIENIA ###################### //start sesji session_start(); //wyslanie do przegladarki content-type header("Content-type: image/png"); //rozmiary obrazka //*zmieniajac $szerokosc zmien takze dlugosc tokena $dlugosc_tokena ![]() //*zmieniajac $wysokosc zmien takze wielkosc czcionki $wielkosc_czcionki ![]() $szerokosc = 130; $wysokosc = 50; //stworzenie obrazka $obraz = imagecreatetruecolor($szerokosc, $wysokosc); //ilosc znakow w TOKENie //*zmieniajac $dlugosc_tokena zmien takze szerokosc obrazu $szerokosc ![]() $dlugosc_tokena = 4; //TOKEN podawany wspak $wspak = false; //wazna wielkosc liter w TOKENie $wazna_wielkosc_liter = false; //gestosc wypelnienia punktami $gestosc_wypelnienia = 500; //wielkosc czcionki //*zmieniajac $wielkosc_czcionki zmien takze wysokosc obrazu $wysokosc ![]() $wielkosc_czcionki = 16; //wybor czcionki #$czcionka = 'ttf/arial.ttf'; $czcionka = 'ttf/comic.ttf'; #$czcionka = 'ttf/georgia.ttf'; #$czcionka = 'ttf/impact.ttf'; #$czcionka = 'ttf/lucida.ttf'; #$czcionka = 'ttf/tahoma.ttf'; #$czcionka = 'ttf/times.ttf'; #$czcionka = 'ttf/verdana.ttf'; //kolory TOKENa (pamietaj aby kolory byly podobne do siebie - wtedy token jest dobrym zabezpieczeniem) //czarny i szary $tlo = imagecolorallocate($obraz, 255, 255, 255); //bialy $ramka = imagecolorallocate($obraz, 0, 0, 0); //czarny $punkt1 = imagecolorallocate($obraz, 0, 0, 0); //czarny $punkt2 = imagecolorallocate($obraz, 128, 128, 128); //szary $tekst1 = imagecolorallocate($obraz, 0, 0, 0); //czarny $tekst2 = imagecolorallocate($obraz, 100, 100, 100); //szary //czerwony i pomaranczowy #$tlo = imagecolorallocate($obraz, 255, 255, 255); //bialy #$ramka = imagecolorallocate($obraz, 255, 0, 0); //czerwony #$punkt1 = imagecolorallocate($obraz, 255, 0, 0); //czerwony #$punkt2 = imagecolorallocate($obraz, 255, 170, 0); //pomaranczowy jasny #$tekst1 = imagecolorallocate($obraz, 255, 0, 0); //czerwony #$tekst2 = imagecolorallocate($obraz, 255, 140, 0); //pomaranczowy ciemny //niebieski i blekit #$tlo = imagecolorallocate($obraz, 255, 255, 255); //bialy #$ramka = imagecolorallocate($obraz, 0, 0, 205); //niebieski #$punkt1 = imagecolorallocate($obraz, 0, 0, 205); //niebieski #$punkt2 = imagecolorallocate($obraz, 135, 206, 255); //blekit jasny #$tekst1 = imagecolorallocate($obraz, 0, 0, 205); //niebieski #$tekst2 = imagecolorallocate($obraz, 108, 166, 205); //blekit ciemny //zielony i limonkowy #$tlo = imagecolorallocate($obraz, 255, 255, 255); //bialy #$ramka = imagecolorallocate($obraz, 0, 139, 0); //zielony #$punkt1 = imagecolorallocate($obraz, 0, 139, 0); //zielony #$punkt2 = imagecolorallocate($obraz, 192, 255, 62); //limonkowy jasny #$tekst1 = imagecolorallocate($obraz, 0, 139, 0); //zielony #$tekst2 = imagecolorallocate($obraz, 102, 205, 0); //limonkowy ciemny //zdefiniuj wlasne kolory zmieniajac cyfry RGB w funkcji imagecolorallocate() #$tlo = imagecolorallocate($obraz, 255, 255, 255); #$ramka = imagecolorallocate($obraz, 0, 0, 0); #$punkt1 = imagecolorallocate($obraz, 0, 0, 0); #$punkt2 = imagecolorallocate($obraz, 128, 128, 128); #$tekst1 = imagecolorallocate($obraz, 0, 0, 0); #$tekst2 = imagecolorallocate($obraz, 100, 100, 100); ###################### SKRYPT ###################### //przygotowanie TOKENa $token = ''; for($i=0; $i<$dlugosc_tokena; $i++) { $losowa = rand(1,3); switch($losowa) { case 1: $token .= losuj_duza(); break; case 2: $token .= losuj_mala(); break; case 3: $token .= losuj_cyfre(); break; default: $token .= '0'; } } Kod //stworzenie ramki obrazu
imagefilledrectangle($obraz, 0, 0, $szerokosc, $wysokosc, $ramka); imagefilledrectangle($obraz, 1, 1, $szerokosc-2, $wysokosc-2, $tlo); //wypelnienie obrazu losowymi punktami for($i=0; $i<$gestosc_wypelnienia; $i++) { $los1_p1 = rand(2,$szerokosc-2); $los2_p1 = rand(2,$wysokosc-2); //punkt 1 ImageLine($obraz, $los1_p1, $los2_p1, $los1_p1, $los2_p1, $punkt1); $los1_p2 = rand(2,$szerokosc-2); $los2_p2 = rand(2,$wysokosc-2); //punkt 2 ImageLine($obraz, $los1_p2, $los2_p2, $los1_p2, $los2_p2, $punkt2); } //wpis TOKENa do obrazka $x = 10; $y = $wysokosc * 3 / 4; for($i=0; $i<$dlugosc_tokena; $i++) { //pobranie literki $literka = substr($token, $i, 1); //losowe nachylenie $nachylenie = rand(-20,20); //losowy kolor literki $losowa = rand(1,2); switch($losowa) { case 1: //wpis literki kolor1 z cieniem kolor2 imagettftext($obraz, $wielkosc_czcionki, $nachylenie, $x+1, $y+1, $tekst2, $czcionka, $literka); imagettftext($obraz, $wielkosc_czcionki, $nachylenie, $x, $y, $tekst1, $czcionka, $literka); break; case 2: //wpis literki kolor2 z cieniem kolor1 imagettftext($obraz, $wielkosc_czcionki, $nachylenie, $x+1, $y+1, $tekst1, $czcionka, $literka); imagettftext($obraz, $wielkosc_czcionki, $nachylenie, $x, $y, $tekst2, $czcionka, $literka); break; default: //wpis literki kolor1 z cieniem kolor2 imagettftext($obraz, $wielkosc_czcionki, $nachylenie, $x+1, 21+1, $tekst2, $czcionka, $literka); imagettftext($obraz, $wielkosc_czcionki, $nachylenie, $x, 21, $tekst1, $czcionka, $literka); } //przesuniecie literki $x += 30; } //przekazanie TOKENa do zmiennej sesyjnej if ($wspak == true) { for($i=$dlugosc_tokena; $i>=0; $i--) { $token_wspak .= substr($token, $i, 1); } $token = $token_wspak; } if ($wazna_wielkosc_liter == false) { $token = strtolower($token); } $_SESSION['token'] = $token; imagepng($obraz); imagedestroy($obraz); ###################### FUNKCJE SKRYPTU ###################### //losuj DUZA literke function losuj_duza() { do { $literka = chr(rand(65,90)); } while ( $literka == chr(79) ); return $literka; } //losuj mala literke function losuj_mala() { do { $literka = chr(rand(97,122)); } while ( $literka == chr(111) ); return $literka; } //losuj cyfre function losuj_cyfre() { do { $cyfra = chr(rand(48,57)); } while ( $cyfra == chr(48) ); return $cyfra; } ?> |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 82 Pomógł: 9 Dołączył: 9.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
a zmien jeszcze typ przycisku wyslij z "button" na "submit" lub w onClick="if (checkToken()) {submit(this.form)};"
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 0 Dołączył: 3.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Zrobiłem tak <button type="submit" onClick="if (checkToken()) {submit(this.form)};">Wy¶lij</button> <input type="reset" value="Wyszy¶ć"></td> </fieldset> </form> <br>
i działa, LECZ w przypadku wpisania złego tokenu też wysyła ;/ |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 82 Pomógł: 9 Dołączył: 9.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
a jak dasz
Kod <button type="submit" onClick="if (checkToken() == TRUE) submit(this.form);">
Ten post edytował trike 28.03.2009, 16:19:03 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 0 Dołączył: 3.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
wysyła nadal ;/
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 82 Pomógł: 9 Dołączył: 9.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
a zmien typ z submit na button zpowrotem, a reszte zostaw
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 0 Dołączył: 3.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
dalej zonk
![]() |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 17:35 |