Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Skrypt nie działa, dlaczego?
Forum PHP.pl > Forum > Przedszkole
Szupien
Siemka!!
Napisałem sobie mini totka smile.gif Prosze go sprawdzic bo nie działa mi informacja jak ktoś trafi wszystkie cyfry poprawnie. (co do kwesti bezpieczenstwa to to ma byc tylko do mojego urzytku wiec nie musiałem tego zabezpieczac).

  1. <?php
  2.  
  3. $cyfra_1 = $_POST['cyfra1'];
  4. $cyfra_2 = $_POST['cyfra2'];
  5. $cyfra_3 = $_POST['cyfra3'];
  6. $cyfra_4 = $_POST['cyfra4'];
  7. $cyfra_5 = $_POST['cyfra5'];
  8. $cyfra_6 = $_POST['cyfra6'];
  9.  
  10. $los = range(, 49);
  11. shuffle($los);
  12. $los_2 = range(, 49);
  13. shuffle($los_2);
  14. $los_3 = range(, 49);
  15. shuffle($los_3);
  16. $los_4 = range(, 49);
  17. shuffle($los_4);
  18. $los_5 = range(, 49);
  19. shuffle($los_5);
  20. $los_6 = range(, 49);
  21. shuffle($los_6);
  22.  
  23. for($los1 = 0 , $los2 = 0 , $los3 = 0 , $los4 = 0 , $los5 = 0 , $los6 = 0 ;
  24. $los1 < 1 , $los2 < 1 , $los3 < 1 , $los4 < 1 , $los5 < 1 , $los6 < 1 ;
  25. $los1++ , $los2++ , $los3++ , $los4++ , $los5++ , $los6++ )
  26. {
  27.  
  28. echo $los[$los1]; 
  29. echo ','.$los_2[$los2];
  30. echo ','.$los_3[$los3];
  31. echo ','.$los_4[$los4];
  32. echo ','.$los_5[$los5];
  33. echo ','.$los_6[$los6];
  34.  
  35. }
  36.  
  37. if($los[$los1] == $cyfra_1 && $los_2[$los2] == $cyfra_2 && $los_3[$los3] == $cyfra_3 && $los_4[$los4] == $cyfra_4 && $los_5[$los5] == $cyfra_5 && $los_6[$los6] == $cyfra_6 )
  38. {
  39. echo 'Moje Gratulacje, Własnie wygrałes Kopa!! biggrin.gif';
  40. }
  41.  
  42. ?>
Hazel
Skąd wiesz, że to nie działa - trafiłeś kiedyś wszystkie cyfry poprawnie? dostal.gif
Bo jedyną możliwością sprawdzenia tego pod tak skonstruowanym skryptem jest niestety trafienie szóstki...
P.S. Przy okazji, skrypt nie działa tak jak totolotek - tam są kule, które się nie powtarzają, a u Ciebie równie dobrze można trafić wszystkie cyfry identyczne winksmiley.jpg
P.S.2 Zeby nie było - uruchomiłem skrypt i wygenerowałem parę zestawów szóstek winksmiley.jpg Dorobiłem formularz do tego, ale ani razu nie trafiłem (dziwne...) tongue.gif
Szupien
Wiem że nie działa bo zrobiłem tak, że wygrywałem i sie nie pokazywało, dlatego załozyłem temat a co do tego ze moze sie trafic kilka identycznych to wiem tongue.gif
początkowo miałem coś takiego:

  1. <?php
  2. $los = range(, 49); //tworzy tabele z liczbami od 1 do 49
  3. shuffle($los); //losowanie
  4.  
  5. for ($i = 0 ; $i < 6 ; $i++)
  6. {
  7. echo $los[$i]; //wywołanie liczb
  8. echo ',' ; // dodanie przecinka 
  9. }
  10. ?>

ale nie wiedziałem zbytnio jak zrobic żeby info sie wyswietlało.
Hazel
No to Ci uświadamiam, że jeśli to ma byc totolotek to nie powinno tak być winksmiley.jpg
Skrypt działa i nie ma na to bata. U mnie się wyświetla, jak go trochę przerobię tak, żebym mial wpływ na moje zwycięstwo. No i pomijam fakt, że masę zbędnych instrukcji tam zamieściłeś.
Szupien
a mozna to losowanie z mojego ostatniego posta rozwiazac inaczej??
Hazel
Na przykład tak:
  1. <?php
  2. $los = range(, 49); //tworzy tabele z liczbami od 1 do 49
  3. shuffle($los); //losowanie
  4. $prz = 0;
  5.  
  6. for ($i = 1 ; $i <= 6 ; $i++)
  7. {
  8. echo $los[$i].','; //wywołanie liczb
  9. if ($_POST['cyfra'.$i]) != $los[$i])
  10. {
  11. $prz = 1;
  12. }
  13. }
  14. if (!$prz)
  15. {
  16.  echo 'Wygrałeś';
  17. }
  18. ?>
Szupien
Parse error: syntax error, unexpected T_IS_NOT_EQUAL in C:\xampp\htdocs\new3.php on line 9
Hazel
  1. <?php
  2. $los = range(, 49); //tworzy tabele z liczbami od 1 do 49
  3. shuffle($los); //losowanie
  4. $prz = 0;
  5.  
  6. for ($i = 1 ; $i <= 6 ; $i++)
  7. {
  8. echo $los[$i].','; //wywołanie liczb
  9. if ($_POST['cyfra'.$i] != $los[$i])
  10. {
  11. $prz = 1;
  12. }
  13. }
  14. if (!$prz)
  15. {
  16.  echo 'Wygrałeś';
  17. }
  18. ?>

Literówka. A mógłbyś nie przychodzić już z takimi pierdołami i zauważyć sam...
qrees
Cytat(Szupien @ 19.01.2008, 18:14:45 ) *
Parse error: syntax error, unexpected T_IS_NOT_EQUAL in C:\xampp\htdocs\new3.php on line 9

No nie dziwne skoro niepotrzebnie jest nawias zamknięty....
Szupien
fakt sorka biggrin.gif nie zauwarzyłem tego.
sobstel
co jak ktoś wpisze np. 5, 4, 2, 3, 1 a ten skrypt wylosuje np. 1, 5, 3, 4, 2? tak więc przed sprawdzeniem najlepiej by było posortować wyniki, a także to co wpisał user.

poza tym, polecam lekturę funkcji tablicowych jakie oferuje php. dzięki nim sprawa staje się o wiele prostrza, bez żadnych pętli itp.

  1. <?php
  2. $typy = array(4, 8, 15, 16, 23, 42);
  3.  
  4. $liczby = range(1, 49);
  5. shuffle($liczby);
  6. $wylosowane = array_slice($liczby, 0, 6);
  7.  
  8. $trafione = array_intersect($typy, $wylosowane);
  9.  
  10. echo 'Typy : '.implode(', ', $typy).'<br/>';
  11. echo 'Losowanie : '.implode(', ', $wylosowane).'<br/>';
  12. echo 'Trafione: <b>'.count($trafione).'</b> ('.implode(', ', $trafione).')<br/>';
  13. ?>


mozna tez uzyc od razu array_rand(), tylko ze ta funkcja zwraca klucze wiec potem trzeba dodatkowo odycztywac wlasciwie wartosci na podstawie kluczy, albo po prostu dodac 1 do kazdej wartosci, bo range zwraca tablice z kluczami 0 do 48 i wartosciami 1 do 49.
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.