rane33 Posted April 14, 2011 Report Share Posted April 14, 2011 Witam wszystkich! Dopiero rozpoczynam przygodę z PHP, mam jednak problem z przykładowym skryptem z kursu. Porównuję i porównuję z tym w książce, ale nadal nie potrafię znaleźć błędu, Przglądarka wyrzuca błąd w linii 19 jako "Notice: Undefined index: wylicz", skrypt poniżej: <form method="post" action="skrypt.php"> <table> <tr> <td>Wpisz pierwszą liczbę: </td> <td><input type="text" name="liczba1"></td> </tr> <tr> <td>Wpisz drugą liczbę: </td> <td><input type="text" name="liczba2"></td> </tr> <tr> <td><input type="hidden" name="wylicz" value="tak" /></td> <td><input type="submit" name="sprawdz" /><td> </tr> </table> </form> <?php if($_POST['wylicz'] == 'tak') { if($_POST['liczba1'] == "" AND $_POST['liczba2'] == "") { echo 'Wypelnij wszystkie pola w formularzu'; } else { if(!is_numeric($_POST['liczba1']) AND !is_numeric($_POST['liczba2'])) echo 'Wpisane dane nie sa liczbami'; else { $WynikMnozenia=$_POST['liczba1']*$_POST['liczba2']; if($WynikMnozenia>20) { echo 'Wynik mnozenia jest wiekszy od 20'; } else { if($_POST['liczba1']>$_POST['liczba2']) { echo 'Liczba1 jest wieksza od Liczba2'; } else { if($_POST['liczba1']<$_POST['liczba2']) { echo 'Liczba1 jest mniejsza od Liczba2'; } else { echo 'Obie liczby maja taka sama wartosc'; } } } } } } ?> Ok, już sobie poradziłem, głupi błąd. Temat do kosza. Link to comment Share on other sites More sharing options...
fijolek90 Posted April 29, 2011 Report Share Posted April 29, 2011 No ja mam ten sam kurs i ten sam problem jak to zrobiłeś ?? w czym tkwi błąd ?? Link to comment Share on other sites More sharing options...
bartop Posted May 4, 2011 Report Share Posted May 4, 2011 spokojnie, to nie błąd tylko uwaga interpretera PHP A tak po ludzku - wejdź do pliku php.ini i zmień linijkę ERROR_REPORTING - czy jakoś tak i nie ma problmu Link to comment Share on other sites More sharing options...
Artifex Posted May 6, 2011 Report Share Posted May 6, 2011 Nie jestem jakimś wielkim programistą php ale ponieważ czasem proszę kogoś o przygotowanie takiego kodu siłą rzeczy trochę się go naumiałem Po pierwsze wyłączanie komunikatu o błędzie nie oznacza rozwiązania błędu. Moim zdaniem php czepia się tego, że jeśli zmienna $_POST['wylicz'] nie istnieje to nie bardzo można porównać ją z wartością "tak". Ponieważ $_POST jest tablicą gdy klucz wylicz nie istnieje php zgłasza błąd. Co prawda skrypt działa poprawnie w końcu "null" nie równa się "tak", ale inne języki np as3 nie są tak idioto odporne i mogą się wykrzaczyć na takim zagraniu. Jak się przed tym zabezpieczyć? Przypuszczam, że warto sprawdzić czy klucz istnieje, zajrzałem do dokumentacji php i najlepiej wygląda funkcja "array_key_exists", w twoim wypadku wykorzystać można to tak: if (array_key_exists("wylicz", $_POST)) { ...tutaj caly kod... } Link to comment Share on other sites More sharing options...