Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Nie działają przyciski w formularzu
Forum PHP.pl > Forum > Przedszkole
lolek18
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>&nbsp;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>&nbsp;</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 exclamation.gif!";
                 }else {
                     echo "Wpisany TOKEN jest błędny exclamation.gif!";
                 }
             ?>
         </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?
trike
z tego co zauwazylem to nie dziala tylko Wyslij, a pokaz funckje checkToken i sprobuj jeszcze zmienic z onclick na onClick
lolek18
Kod
<?
################################################################################
####
##
##
##                           
##                            KOPIOWANIE, UZYWANIE, SPRZEDAWANIE i ROZPOWSZECHNIANIE zabronione exclamation.gif!.
##                            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 exclamation.gif!
##                            
##                            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 exclamation.gif!
##
## 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 exclamation.gif! Jesli ta zmienna ma wartosc FALSE to wszystkie literki w TOKENie sa zamieniane na 'male' exclamation.gif!
##  Przy sprawdzaniu TOKENa takze musisz zamienic literki na male exclamation.gif!
##  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 exclamation.gif!
//*zmieniajac $wysokosc zmien takze wielkosc czcionki $wielkosc_czcionki exclamation.gif!
$szerokosc = 130;
$wysokosc = 50;
//stworzenie obrazka
$obraz = imagecreatetruecolor($szerokosc, $wysokosc);

//ilosc znakow w TOKENie
//*zmieniajac $dlugosc_tokena zmien takze szerokosc obrazu $szerokosc exclamation.gif!
$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 exclamation.gif!
$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;
}
?>
trike
a zmien jeszcze typ przycisku wyslij z "button" na "submit" lub w onClick="if (checkToken()) {submit(this.form)};"
lolek18
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 ;/
trike
a jak dasz
Kod
<button type="submit" onClick="if (checkToken() == TRUE) submit(this.form);">
lolek18
wysyła nadal ;/
trike
a zmien typ z submit na button zpowrotem, a reszte zostaw
lolek18
dalej zonk biggrin.gif moje g: 8415416
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.