Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]funkcje_wyswietl
Forum PHP.pl > Forum > Przedszkole
infolearn
Robie przyklady z ksiazki helionu system zakladek. Starama sie stworzyc plik funkcje_wyswietl.php Jedna z funkcji mi sie w ogole nie wyswietla function wyswietl_form_rej($rejestracja)
ma za zadanie stworzenia formularza rejestracji po przejsciu na ta strone jest tylko function tworz_naglowek_html($tytul)

  1. <?php
  2.  
  3. function tworz_naglowek_html($tytul)
  4. {
  5. // wyswietlanie naglowka
  6. ?>
  7. <html>
  8. <head>
  9.  
  10. <title><?php echo $tytul;?></title>
  11. <link href='css/store.css' rel='stylesheet' type='text/css' />
  12. </head>
  13.  
  14. <body>
  15. <img src="img/zakladka.gif" alt='Logo'>
  16. <h1>Keep your bookmarks here</h1>
  17. <hr />
  18. <?php
  19. if($tytul)
  20. tworz_tytul_html($tytul);
  21. }
  22. ?>
  23.  
  24. <?php
  25.  
  26. function wyswietl_informacje_witryny($witryna)
  27. {
  28. //text na stronie na d formularzem
  29. ?>
  30.  
  31. <html>
  32. <head>
  33. </head>
  34. <body>
  35. <li>Php Bookmarks System</li>
  36. <li>Keep your Bookmarks in one spot</li>
  37. <p><a href="formularz_rejestracji.php">Not a member yet?</a></p>
  38. </body>
  39. </html>
  40.  
  41. <?php
  42. if($witryna)
  43. wyswietl_informacje_witryny($witryna);
  44. }
  45. ?>
  46.  
  47.  
  48. <?php
  49. function wyswietl_form_log($logform)
  50. {
  51. //wyswietla formularz logowania
  52. ?>
  53. <html>
  54. <head></head>
  55. <body>
  56. <form action="czlonek.php" metod="post">
  57. <p><lable for="name">*Username:</lable>
  58. <input type="text" name="nazwa_uz" id="name" /></p>
  59. <p><lable for="password">*Password:&nbsp;</lable>
  60. <input type="password" name="haslo" id="password" />
  61. </p>
  62. <input type="submit" name="submit" value="Login" /><br />
  63. <p><a href="zapomnij_haslo.php">Forgot your password?</a></p>
  64. </body>
  65. </html>
  66. <?php
  67. if($logform)
  68. wyswietl_form_log($logform);
  69. }
  70. ?>
  71.  
  72. <?php
  73. function wyswietl_form_rej($rejestracja)
  74. {
  75. //formularz rejestracji usera
  76. ?>
  77. <html>
  78. <head></head>
  79. <body>
  80. <form action="nowa_rejestracja.php" metod="post">
  81. <p><lable for="name">*Username:</lable>
  82. <input type="text" name="nazwa_uz" id="name" /></p>
  83. <p><lable for="password">*Password:&nbsp;</lable>
  84. <input type="password" name="haslo" id="password" />
  85. </p>
  86. <input type="submit" name="submit" value="Login" /><br />
  87. <p><a href="zapomnij_haslo.php">Forgot your password?</a></p>
  88. </body>
  89. </html>
  90. <?php
  91. if($rejestracja)
  92. wyswietl_form_rej($rejestracja);
  93. }
  94. ?>
PiXel2.0
Bo musiales cos poplatac i masz w rezultacie niepoprwane funkcje rekurencyjne.
Poczytaj sobie o funkcjach rekurencyjnych to sie dowiesz dlaczego Twoj kod nie dziala.
infolearn
robi sie pewnie masz racje , pewno zle deklaruje funkcje

Zasatanawiam sie tylko dlaczego pierwsze 3 funkcje dzialaja a ostatnia nie
nospor
Cytat
Zasatanawiam sie tylko dlaczego pierwsze 3 funkcje dzialaja a ostatnia nie
Bo moze te pierwsze funkcje wywolujesz z parametrem false, a tę co ci nie dziala z parametrem true?
nevt
po pierwsze: nigdzie nie domykasz znacznika <form> ... w HTML nie istnieje znacznik <lable> ...- to, że w ogóle coś ci się wyświetla, to tylko dobra wola przeglądarki...

po drugie: nie wolno tak wywoływać funkcji z wnętrza wlasnej definicji (czyli rekurencyjnie) bez warunku na ograniczenie poziomu zagłębień...

po trzecie: te funkcje ci działają, kiedy przekazujesz im parametr o wartości FALSE - one po prostu ZAWSZE wyświetlają swoją treść...

po czwarte: kiedy wywołasz je z parametrem o wartości TRUE - wystąpi nieskończona pętla wywołań rekurencyjnych - efekt jak opisujesz - biała, pusta strona w przeglądarce, do tego może zwiesić się przeglądarka i/lub serwer PHP...

po piąte: o ile się nie mylę co do tego co chcesz osiągnąć, to powinieneś przerobić wszystkie te funkcje wg wzoru
  1. <?php
  2. function wyswietl_form_rej($rejestracja)
  3. {
  4. //formularz rejestracji usera
  5. if(!$rejestracja)
  6. return;
  7. ?>
  8. <html>
  9. <head></head>
  10. <body>
  11. <form action="nowa_rejestracja.php" metod="post">
  12. <p><label for="name">*Username:</label><input type="text" name="nazwa_uz" id="name" /></p>
  13. <p><label for="password">*Password:&nbsp;</label>
  14. <input type="password" name="haslo" id="password" /></p>
  15. <input type="submit" name="submit" value="Login" /><br />
  16. </form>
  17. <p><a href="zapomnij_haslo.php">Forgot your password?</a></p>
  18. </body>
  19. </html>
  20. <?php
  21. }
  22. ?>

po szóste: generalnie takiej funkcjonalności tak się nie robi. przecież te twoje "funkcje" php to praktycznie "czysty" kod HTML. powinieneś te podstronki zapisać w oddzielnuych plikach html, a w pliku php zawrzeć tylko logikę zrządzającą kiedy ma być ładowana konkretna podstronka.

powodzenia.
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.