Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ PHP _ Wyświetlanie treśći z PHP do strony

Napisany przez: Eula 3.07.2014, 10:07:22

Cześć. Mam takie pytanie. W jaki sposób wyświetlić coś z PHP do strony? Nie chodzi mi tu o samo echo. Przykładowo. Mam panel logowania - wszystko pięknie. Klikam zaloguj wyskakuje błąd że podane dane są nieprawidłowe?



Daje przykład z interii.
Bo wyjściem "amatorskim" (w moim miemaniu) jest w odpowiednim miejscu w kodzie HTML umiejscowienie kodu PHP który tam ew. wypisuje że coś jest nie halo i jest błąd. Ew. zrobić to na returnach. Pozdrawiam i czekam na odpowiedź jak Wy to robicie! wink.gif

Napisany przez: !*! 3.07.2014, 10:16:31

Cytat(Eula @ 3.07.2014, 11:07:22 ) *
Daje przykład z interii.
Bo wyjściem "amatorskim" (w moim miemaniu) jest w odpowiednim miejscu w kodzie HTML umiejscowienie kodu PHP który tam ew. wypisuje że coś jest nie halo i jest błąd.


To dobrze kombinujesz.
Po wysłaniu formularza i jego walidacji sprawdzasz czy występują błędy, jak tak to je wyświetlasz.

Napisany przez: Michael2318 3.07.2014, 10:17:47

Do tego stosuje się system szablonów - jest to taki pomost pomiędzy kodem HTML/CSS (wyglądem), a PHP. W plikach .tpl (bo takie rozszerzenie mają pliki systemów szablonów) znajduje się sam kod HTML, tak aby nie mieszać go z kodem PHP.

Przykład ze starego systemu szablonów phpBB:

  1. if ( $pass !== $real_password )
  2. {
  3. $error = 'Błędne hasło!';
  4. }
  5.  
  6. $template->assign_block_vars('err_true', http://www.php.net/array(
  7. 'ERROR_VALUE' => $error)
  8. );


a w kodzie HTML (pliku .tpl):

Kod
<!-- BEGIN err_true -->
<div class="error_class">
{err_true.ERROR_VALUE}
</div>
<!-- END err_true -->


Zakładam, że o to Ci chodziło.

Napisany przez: Eula 3.07.2014, 10:20:30

Ta? Myslałem sie ze będzie coś by zapobieg burdelowi w kodzie.

Czyli jak. Np?

  1. function getPrint() {
  2. return "Bum!";
  3. }


  1. <http://december.com/html/4/element/div.html id="logowanie">
  2. <?php echo getPrint(); ?>
  3. </http://december.com/html/4/element/div.html>


Taki byle jaki przykład. Ta?

--
EDIT:
Szczerze, to czytałem o szablonach i nie wiem czy są mi potrzebne. One też narzucają dodatkową rzecz w kodzie, i efekt jest podobny. Chyba że to tylko jest w szablonie smarty czy jakoś tak. biggrin.gif

Napisany przez: Michael2318 3.07.2014, 10:23:25

To jak Ty to zrobisz to już Twoja sprawa. Chodzi tutaj o wygodę dla samego Ciebie. Jeśli uważasz, że klepanie 1500 funkcji jest dla Ciebie wygodne, a większość z tych funkcji będzie zwracać dwa/trzy słowa no to możesz i tak.
Natomiast 99% programistów korzysta z systemu szablonów (google -> php prosty system szablonów).

Na pewno znajdziesz sporo informacji m.in. o tzw. smarty, ale to dosyć spora kobyła.

EDIT:

Zbędną rzecz w kodzie? To teraz sobie wyobraź, że masz system logowania w jednym pliku, razem z php i html, kod zawiera ~2200 linii i odnajdź się w tym burdelu. Powodzenia ;p

Cytat
i efekt jest podobny


efekt to zawsze będzie dokładnie taki sam - zobaczysz w widoku zwykłą stronę. Chodzi o Ciebie, jako programistę i o Twoją wygodę podczas tworzenia swoich "wypocin" smile.gif

Napisany przez: Turson 3.07.2014, 10:25:28

Błędy powinna zwrócić jedna funkcja, więc o burdelu w kodzie PHP nie ma mowy, do tego MVC nadaje się idealnie.

Napisany przez: aras785 3.07.2014, 10:27:58

Strukturalnie i prosto biggrin.gif :

  1. //deklaracja zmiennej z błędami
  2. $messages = http://www.php.net/array();
  3.  
  4. if(http://www.php.net/isset($_POST['email'])) {
  5. if(!http://www.php.net/empty($_POST['email'])) {
  6. if(filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)){
  7. // wszystko ok
  8. }else $messages[]='Proszę podać poprawny email';
  9. }else $messages[]='Pole email jest wymagane';
  10. }




i później robisz komunikat o ew. błędach

  1. foreach($messages as $message) {
  2. http://www.php.net/echo $message.'<br />';
  3. }

Napisany przez: !*! 3.07.2014, 10:40:14

Cytat(Eula @ 3.07.2014, 11:20:30 ) *
Szczerze, to czytałem o szablonach i nie wiem czy są mi potrzebne. One też narzucają dodatkową rzecz w kodzie, i efekt jest podobny. Chyba że to tylko jest w szablonie smarty czy jakoś tak. biggrin.gif


PHP jest system szablonów. To czy wpiszesz na stronie {$foo} czy <?php echo $foo;?> nie ma znaczenia. Nakładki jak smarty czy twig są dla ludzi którzy mają uczulenia na znaczniki <?php ?> pomiędzy html.

Napisany przez: Eula 3.07.2014, 10:53:19

Ok, poczytam o szablonach. Dzięki za sprawną i szybką pomoc.

Napisany przez: by_ikar 3.07.2014, 14:54:08

Cytat(Michael2318 @ 3.07.2014, 11:23:25 ) *
To jak Ty to zrobisz to już Twoja sprawa. Chodzi tutaj o wygodę dla samego Ciebie. Jeśli uważasz, że klepanie 1500 funkcji jest dla Ciebie wygodne, a większość z tych funkcji będzie zwracać dwa/trzy słowa no to możesz i tak.
Natomiast 99% programistów korzysta z systemu szablonów (google -> php prosty system szablonów).


Sorry ale argument z ilością programistów korzystających z szablonów jest inwalidą. To że jest jakiś hype na twigi czy inne udziwnienia, nie oznacza że jest to słuszne, w momencie kiedy php bardzo dobrze sobie radzi jako system szablonów. I znam całą masę ludzi którzy są przeciwnikami wszelkiej maści szablonów, które wprowadzają swój kolejny "język" skryptowy, którego musi uczyć się kolejna osoba.

Cytat
Zbędną rzecz w kodzie? To teraz sobie wyobraź, że masz system logowania w jednym pliku, razem z php i html, kod zawiera ~2200 linii i odnajdź się w tym burdelu. Powodzenia ;p

Od tego jest IDE które ma odpowiednie narzędzia do przeszukiwania takiego kodu, raz że nie koniecznie powinno się w jednym pliku wszystko pakować, a dwa że w tym kodzie jest na bank kilka elementów które można by rozbić na osobne moduły/szablony/templatki/cokolwiek. Jak już zachwalasz tak systemy szablonów, powinieneś też wziąć pod uwagę że praktycznie większość z nich daje możliwość "includowania" innego szablonu. Więc IMO ten argument również jest inwalidą.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)