Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Błąd w skrypcie, ktorego nie umiem znalezc.
Forum PHP.pl > Forum > Przedszkole
Nimlot20
Witam!
Napisalem taki skrypt, lecz on nie dziala. Prawdopodobnie wynika to moich zlych przyzwyczajen z mojego innego jezyka. Tutaj go pokazuje:

index.php
  1. <html>
  2. <head>
  3. <title>Formularz</title>
  4. </head>
  5. <body>
  6. <form id="form" action="send.php" method="post" >
  7. <textarea name="tresc" cols="20" onfocus="if (this.value == 'Write your name') {this.value = '';}" onblur="if (this.value == '') {this.value = 'Write your name';}">Write your name</textarea>
  8.  
  9.  
  10. <div><strong style="margin:0 15px 0 0px;">
  11. <input type="submit" value="Send" />
  12. <input type="reset" value="Reset"></strong></div>
  13.  
  14. </form>
  15. </body>
  16. </html>



  1. <?php
  2. if (!empty($_POST['tresc']) {
  3.  
  4.  
  5.  
  6. $zmienna = rand(0,6);
  7. if ($zmienna % 2)
  8. {
  9. echo $_POST.", wylosowana liczba: ".$zmienna.' jest nieparzysta';
  10. }
  11. else
  12. {
  13. echo $_POST.", wylosowana liczba: ".$zmienna.' jest parzysta';
  14. }
  15. }
  16. else
  17. {
  18. echo 'Nie wpisales swego imienia';
  19. }
  20.  
  21. ?>


Ma ten skrypt polegac na tym, ze po wpisaniu imieniu pojawi sie strona, na ktorej bedzie tekst. "Imie", wylosowales liczbe 4, ktora jest parzysta.

Bardzo prosze o pomoc. Wiem, ze dla Was bedzie proscizna, ale ja dopiero zaczynam tongue.gif
fenix.robi
o to Ci chodziło?

  1. <?php
  2.  
  3.  
  4. if (!empty($_POST['tresc'])) {
  5. $zmienna = rand(0,6);
  6. if ($zmienna % 2){
  7. echo $_POST['tresc'].", wylosowana liczba: ".$zmienna.' jest nieparzysta';
  8. }else{
  9. echo $_POST['tresc'].", wylosowana liczba: ".$zmienna.' jest parzysta';
  10. }
  11. }else{
  12. echo 'Nie wpisales swego imienia';
  13. }
  14. ?>



Poza tym bym nie dawał imienia do <textarea> tylko do <input type="text">oraz wywalił z walidacji js onfocus, wystarczy onblur

Nimlot20
Nie do konca, bo teraz pokazuje zawsze komunikat: Nie podales imienia.
lessi
Cytat(Nimlot20 @ 21.02.2010, 13:34:05 ) *
Nie do konca, bo teraz pokazuje zawsze komunikat: Nie podales imienia.

Może nie dałeś nazwy
  1. <input type="text" name="tresc">
Nimlot20
Tak, dziekuje.

A takie pytanie jeszcze mam. Dlaczego pierw jest sprawdzany falsz przy warunku o parzystosc liczby? tj.


if //Czy jest patrzysta?
nie jest
else
jest
koniec

Wydawaloby sie, ze pierw sprawdza sie prawde.
Blame
To dlatego, że użyty jest znak modulo "%", który zwraca resztę z dzielenia. A że gdy liczba jest parzysta to reszta dzielenia na 2 jest równa 0, to if interpretuje to jako FALSE.
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.