Madlova
2.10.2012, 15:04:50
Witam! Chcę zrobić coś takiego: użytkownik wpisuje w Polę liczbę, następnie zatwierdza Dalej. System ma sprawdzać, czy użytkownik poprawnie wpisuje liczby od np 100 do 90. Mój kod niestety nie działa, a męczę go już dłuższy czas:
CODE
for($licznik=100;$licznik>89;$licznik--){
if(isset($_POST['dalej'])){
if($licznik==$_POST['wpisz']){
echo "Ok.".$licznik;
}
else{
echo "nie.".$licznik;
break;
}
}
}
Wynik kodu to Ok.100nie.99. Nie bardzo wiem, jak zrobić, żeby pętla po 1 wykonaniu czekała, aż użytkownik znów naciśnie dalej. Może ktoś coś podpowie?
darko
2.10.2012, 18:04:08
$min = 90;
$max = 100;
$valid = ($_POST['wpisz'] >= $min && $_POST['wpisz'] <= $max) ? true : false;
if($valid)
{
// poprawna, w przedziale
}
else
{
// niepoprawna
}
Madlova
2.10.2012, 18:33:26
Kurde, teraz czytam swój post to faktycznie niezrozumiale to ujęłam, sorki. Chodzi mi o to, że program ma sprawdzać, czy użytkownik poprawnie liczy (odlicza) od zadanej liczby w dół. Np, wpisuje 100, dalej, 99, dalej, i tak do 90. Jeśli źle wpisze liczbę, np da 100, 98, to wyrzuci błąd i każe liczyć od nowa. Mój kod generalnie wykonuje ok pierwszego fora, po czym niestety automatycznie zaczyna drugiego (a chciałabym żeby zaczynał go dopiero po kolejnym "Dalej"), ale że tym razem licznik ustawił się już na liczbę o 1 mniejszą, toteż wchodzi w else'a i kończy działanie. I nie wiem co z tym fantem:(
darko
3.10.2012, 01:23:54
Jakoś nie zajarzyłem. Zrobiłbym to na sesji:
if(isset($_POST['dalej'])) {
$start = 100;
$_SESSION['licznik'] = isset($_SESSION['licznik']) ?
( $_SESSION['licznik'] -1
) : $start; if($_POST['wpisz'] == $_SESSION['licznik'])
{
}
else
{
$_SESSION['licznik'] = $start;
}
}
Madlova
3.10.2012, 14:44:44
Dziękuję ślicznie, teraz działa.