Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Problem z dodawaniem..
Forum PHP.pl > Forum > Przedszkole
Neercc
Piszę zabezpieczenie przez botami co składa się z sumy dwóch liczb. Niestety jak wpisuję do formularza to nie dodaje. Bo jak daję $a+$b to chcę żeby wyświetliło nie wynik dodawania tylko wyrażenie. Macie jakieś pomysły żeby to obejść ? smile.gif Kod:

  1. <?php
  2.  
  3. $a= mt_rand(1,8);
  4. $b= mt_rand(1,5);
  5.  
  6. $number= $a . '+' . $b;
  7.  
  8. echo $number;
  9.  
  10. echo '<form method="post">
  11. <div id="number">
  12. <input type="text" name="result" />
  13. <input type="submit" value="Send" />
  14. </div>
  15. </form>';
  16.  
  17. $nr= $a+$b;
  18.  
  19. if ($number== $_POST['result']) {
  20.  
  21. echo 'Correct';
  22.  
  23. } 
  24.  
  25. else {
  26.  
  27. echo 'Wrong';
  28.  
  29. }
  30.  
  31. ?>
Piniek
  1. <?php
  2.  
  3. $a= mt_rand(1,8);
  4. $b= mt_rand(1,5);
  5.  
  6. $number= $a . '+' . $b;
  7.  
  8. echo $number;
  9.  
  10. echo '<form method="post" action="tutaj_nazwa_tego_pliku">
  11. <div id="number">
  12. <input type="text" name="result" />
  13. <input type="submit" value="Send" />
  14. </div>
  15. </form>';
  16.  
  17. $nr= $a+$b;
  18.  
  19. if ($nr== $_POST['result']) {
  20.  
  21. echo 'Correct';
  22.  
  23. } 
  24.  
  25. else {
  26.  
  27. echo 'Wrong';
  28.  
  29. }
  30.  
  31. ?>
Neercc
Dalej nie działa. Co może być nie tak?
Piniek
No umknęło mi ostatnim razem po prostu zmienna a i b po wyslłniu formularza jest generowana na nowo wiec wynik się zgadzać nie będzie. Musisz gdzieś utrwalić te zmienną np w tablicy $_GET lub w cookie.


EDIT: @webdice no tak też można ;]
webdice
Po co kombinować? Dodaj ukryte pole w formularzu.

  1. <input type="hidden" name="nr" value="6" />
Neercc
Jak to zrobić konkretnie bo wymyśliłem tylko coś takiego, ale dalej nic:

  1. <?php
  2.  
  3. $a= mt_rand(1,8);
  4. $b= mt_rand(1,5);
  5.  
  6. echo '<form method="post" action="prob.php">
  7. <div id="number">
  8. <input type="text" name="result" />
  9. <input type="submit" value="Send" />
  10. </div>
  11. </form>';
  12.  
  13. $number= $a . '+' . $b;
  14.  
  15. echo $number;
  16.  
  17. if ( $_POST['result']== $nr) {
  18.  
  19. $a= $_GET['nr'];
  20. $b= $_GET['id'];
  21. echo 'Correct';
  22.  
  23. } 
  24.  
  25. else {
  26.  
  27. echo 'Wrong';
  28.  
  29. }
  30.  
  31. ?>
Piniek
  1. <?php
  2.  
  3. $a= mt_rand(1,8);
  4. $b= mt_rand(1,5);
  5.  
  6. echo '<form method=\"post\" action=\"prob.php?a='.$a.'&b='.$b.'\">
  7. <div id="number">
  8. <input type="text" name="result" />
  9. <input type="submit" value="Send" />
  10. </div>
  11. </form>';
  12.  
  13. $number= $a . '+' . $b;
  14.  
  15. echo $number;
  16.  
  17. $nr = $_GET['a']+$_GET['b'];
  18.  
  19. if ( $_POST['result']== $nr) {
  20.  
  21. echo 'Correct';
  22.  
  23. } 
  24.  
  25. else {
  26.  
  27. echo 'Wrong';
  28.  
  29. }
  30.  
  31. ?>


Powinno działać winksmiley.jpg
Neercc
Wywala błąd że taki adres nie istnieje. Co zrobić? Dać headera na jakąś stronę czy co?
gosc
  1. <?php
  2.  
  3. $a= mt_rand(1,8);
  4. $b= mt_rand(1,5);
  5.  
  6. $_SESSION['wynik']=$a+$b;
  7.  
  8. ?>
  9.  
  10. <form method="post">
  11. <div id="number">
  12. <input type="text" value="<?php echo $a."+".$b."="; ?>" disabled="true" /> <input type="text" name="result" />
  13. <input type="submit" value="Send" />
  14. </div>
  15. </form>
  16.  
  17. <?php
  18.  
  19. $nr= $a+$b;
  20.  
  21. if ($_SESSION['wynik'] == $_POST['result']) {
  22.  
  23. echo 'Correct';
  24.  
  25. } 
  26.  
  27. else {
  28.  
  29. echo 'Wrong';
  30.  
  31. }
  32.  
  33. ?>
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.