Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Mój pierwszy skrypt, jak zatrzymać wykonywanie funkcji?
Forum PHP.pl > Forum > Przedszkole
lopik
  1. <form method="post" action="index.php">
  2. <input type="text" name="tekst" size="80" /><br />
  3. <input class="submit" type="submit" value="Przemien"/>
  4. </form>
  5. <br />
  6. <?
  7. $tekst = $_POST['tekst'];
  8.  
  9. if (ereg("[[:alpha:]]" , $tekst)) {
  10. function name($imie) {
  11. $name = ucwords(strtolower($imie));
  12. return $name;
  13.  
  14. }}
  15.  
  16. else { echo "<h3>Tylko litery małe i duże wolno pisać</h3>"; }
  17.  
  18. echo 'Poprawne: <i>'.name($tekst).'</i>';
  19.  
  20. ?>


Napisałem sobie taki skrypt winksmiley.jpg
Wiem baaaardzo prosty, ale dobiero od miesiąca siedze w php
I Dodałem wyrażenie regularne, ze jak ktos wpisze w tym formularzu cyfry to sie pokaze odpowiedni komunikat.
I wszystko się dobrze pokazuje, ten komunikat, ale po wpisaniu cyferek w tym formularzy, i wciśnięciu buttona pokazuje sie taki błąs
"Fatal error: Call to undefined function: name() in c:\usr\krasnal\www\nauka\index.php on line 63"

Co można z tym zrobić żeby ten błąd się nie pokazywał?

Sorry za głupie pytanie.
I wielkie dzięki za odp. smile.gif
Pozdrawiam.
dr_bonzo
Nie definiuj funckji wewnatrz warunku if().

Gdy if (ereg("[[:alpha:]]" , $tekst)) NIE jest spelnione to funkcja name() nie jest zdefiniowana.
lopik
A czemu nie wolno tak robić ?

To jak powinienem takie cos napisać ?

sad.gif
slammer
  1. <form method="post" action="index.php">
  2. <input type="text" name="tekst" size="80" /><br />
  3. <input class="submit" type="submit" value="Przemien"/>
  4. </form>
  5. <br />
  6. <?
  7. $tekst = $_POST['tekst'];
  8.  
  9. function name($imie) {
  10. $name = ucwords(strtolower($imie));
  11. return $name;
  12. }
  13.  
  14. function sprawdz($tekst) {
  15. if (ereg("[[:alpha:]]" , $tekst) == true) {
  16. echo 'Wszystko w porzadku';
  17. }
  18. else {
  19. echo "<h3>Tylko litery małe i duże wolno pisać</h3>";
  20. echo 'Poprawne: <i>'.name($tekst).'</i>';
  21. }
  22. }
  23. sprawdz($tekst);
  24. ?>


Pisane na sucho wiec nie wiem czy odpali, ale cos takiego raczej powinno byc tongue.gif

Takie zasady funkcji nie wpisuje się w instrukcje warunkowe przeanalizuj swój kod krok po kroku a zobaczysz winksmiley.jpg

Dobra zrobie to za Ciebie... smile.gif Jeżeli ktoś wpisze niepoprawne dane instrukcja warunkowa przyjmie wartość false i Twoja funkcja nie zostanie odczytana więc w dalszej części Twoje 'name($tekst)' nie jest wogóle rozpoznawane przez php co powoduje ten błąd smile.gif
lopik
Super!!!
Serdeczne dzięki exclamation.gif smile.gif

Zmieniłem troche tylko instrukcje warunkowe, i działa jak należy smile.gif
Jeszcze raz Dzięki.

PS. Więc rozumiem że w instrukcjach warunkowych nie wolno pisac funkcji, a w funkcjach wolno pisać instrukcje warunkowe ? tak ?

Dzięki.
Pozdrawiam. smile.gif
slammer
hehe nie ma sprawy winksmiley.jpg

Nie tyle że nie można pisać funkcji w instrukcji warunkowej bo praktycznie mozesz to zrobic i nawet może wszystko działać. Jednak jest to kompletnie bez sensu, gdyż napisana funkcja nie wykonuje się sama ona tylko zapisuje sie do pamięci i czeka na wywołanie. Każda funkcja coś robi i żeby robiła najpierw ją deklarujesz, a następnie wykorzystujesz w kodzie.
phpion
Najlepiej stworz sobie plik funkcje.php i includuj go na kazdej stronie. W pliku tym tworz swoje funkcje - gdy bedzie trzeba cos poprawic nie bedziesz musial szperac po wszystkich plikach w poszukiwaniu odpowiedniej funkcji tylko wejdziesz w funkcje.php i tam poprawisz.
lopik
No tak o tym wiem winksmiley.jpg

Ale wiesz to jest taki skrypt wiesz, jednorazowy.
Nie uzywam go narazie na stronie smile.gif

Dzięki za Pomoc.
Pozdrawiam.
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.