Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: token
Forum PHP.pl > Forum > PHP
glass
chce zrobić tokena do formularza, ponoć jest mniej efektywny ale mi się podoba z wyjątkiem jednego szczegółu nie chce działać!

wklejam taki kod 'formularz.php'

  1. <?php
  2. $_SESSION['token'] = '';
  3. ?>
  4.  
  5. <?php
  6. for($i=0;$i<5;$i++) {
  7.  $liczba = rand(0,9);
  8.  $_SESSION['token'] .= $liczba;
  9.  $img .= '<img src="'.$liczba.'.gif" />';
  10. }
  11. ?>
  12.  
  13. <html>
  14.  <head>
  15.  <title>token</title>
  16.  </head>
  17.  
  18.  <body>
  19. <p>Wprowadź ponizszy kod do formularza</p>
  20.  
  21. <?php echo $img; /* Wyświetla token w formie graficznej */ ?>
  22.  
  23. <form action="sprawdz.php" method="post">
  24.  <input type="text" name="token">
  25.  <input type="submit" value="ok" />
  26. </form>
  27.  </body>
  28. </html>


i w pliku 'sprawdź.php' takie coś:

  1. <?php
  2. if ($_SESSION['token'] == $_POST['token']) echo "Wprowadzono <b>poprawny</b> kod";
  3. else echo "Wprowadzono <b>niepoprawny</b> kod";
  4. ?>


myślę że źle wywołuje bądź rejestruje zmienną w sesji, albo zależy to od ustawienia serwera questionmark.gif
działam na localhost

niech ktoś poradzi P:)questionmark.gif
Xniver
  1. <?php
  2.  
  3. if(isset($_GET['option']) && $_GET['option'] == 'check')
  4. {
  5. if($_SESSION['token'] == $_POST['token'])
  6. {
  7. echo 'Poprawny';
  8. }
  9. else
  10. {
  11. echo 'Niepoprawny';
  12. }
  13. }
  14. else
  15. {
  16. $_SESSION['token'] = '';
  17. $images = '';
  18.  
  19. for($i = 0; $i < 5; $i++)
  20. {
  21. $num = rand(0, 9);
  22.  
  23. $_SESSION['token'] .= (string) $num;
  24.  
  25. $images .= '<img src="'.$num.'.gif" alt="'.$num.'" />';
  26. }
  27.  
  28. echo '<html>';
  29. echo '<head>';
  30. echo '<title>Token</title>';
  31. echo '</head>';
  32. echo '<body>';
  33. echo $images;
  34. echo '<form action="formularz.php?option=check" method="post">';
  35. echo '<input type="text" name="token" value="" />';
  36. echo '<input type="submit" value="ok" />';
  37. echo '</form>';
  38. echo '</body>';
  39. echo '</html>';
  40. }
  41. ?>
glass
okazuje się że to kwestia konfiguracji serwera już prawie się poddałem, gdy postanowiłem przetestować to na prawdziwym serwerze ..
i oba skrypty hulają ..

może ktoś dopowie mi dlaczego na localhost nie działa mam apache 2.0.59 z php 5.2.0 questionmark.gif

dzienx dla Xniver ten twój wydaje się być lepszy.
-=Peter=-
To zabezpieczenie które zaprezentowałeś jest dosyć skromne... Raczej powinieneś wykorzystać bibliotekę gd do wygenerowania obrazka, a nie wykorzystywać do tego obrazków z nazwą odpowiadającą danej liczbie... Raczej nie ma problemu, aby jakiś automat Ci zespamował.
largo3
Może to Ci pomoże.
glass
być może pójdę za radą i spróbuje polepszyć zabezpieczenie jakoś na czasie tongue.gif

tymczasem pojawił się mały problemik, mój skrypt zwiększy znaczenie swoją powierzchnię, chyba że uda mi się połączyć te dwa zdania w jeden warunek:

  1. <?php
  2. if(isset($_GET['option']) && $_GET['option'] == 'check')
  3. {
  4.  
  5. if($_SESSION['token'] == $_POST['token'])
  6. {
  7. ?>


próbowałem:

  1. <?php
  2. if((isset($_GET['option']) && $_GET['option'] == 'check') and ($_SESSION['token'] == $_POST['token']))
  3. {
  4. ?>


poczytam o tym przysięgam, jednak teraz muszę mieć to zrobione pomocy!

czarodziej.gif dzienx
Crozin
  1. <?php
  2. if(isset($_GET['option']) && $_GET['option'] == 'check')
  3. {
  4. if($_SESSION['token'] == $_POST['token'])
  5. {
  6. echo 'Poprawny';
  7. }
  8. else
  9. {
  10. echo 'Niepoprawny';
  11. }
  12. }
  13. ?>
->
  1. <?php
  2. if(isset($_GET['option']) && $_GET['option'] == 'check')
  3. echo ($_SESSION['token'] == $_POST['token']) ? 'Poprawny' : 'Niepoprawny';
  4. ?>
glass
no ;[[

sorki nie dokończyłem, ale z tym sobie poradzę jak mówiłem, chcę napisać warunek jednym ciągiem oka, możliwe że się nie da tego zrobić tak jak chce, niech ktoś poradzi jak to się pisze...?

worriedsmiley.gif

chyba to mam!

  1. <?php
  2. if(isset($_GET['option']) && $_GET['option'] == 'check' && $_SESSION['token'] == $_POST['token'])
  3.  {
  4.  echo 'Poprawny';
  5.  }
  6.  
  7.  else
  8.  {
  9.  echo 'Niepoprawny <br /><br />';
  10.  }
  11. ?>


umieściłem za dużo nawiasów, dzienx za pomoc pozdrawiam guitar.gif


http://garden-center.y0.pl
Jedynie radość niech będzie przewodnikiem Twojego dnia!
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.