Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]PHP obiektowo
devil1051
post
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 29.09.2015

Ostrzeżenie: (0%)
-----


Moje początki z PHP... (IMG:style_emoticons/default/smile.gif)

Mam plik (przedstawie tylko body, żeby nie zaśmiecać)

first
  1. <form action="first.php" method="GET">
  2. One: <input type=text name="one"/><br/>
  3. Two: <input type=text name="two"/><br/>
  4. <input type=submit value="Send"/>
  5. </form>
  6. One: <?php echo $_GET['one']?><br>
  7. Two: <?php echo $_GET['two']?><br>
  8. <?php
  9. $one = (int)$_GET['one'];
  10. $two = (int)$_GET['two'];
  11. echo $one;
  12. echo "<br/>";
  13. echo $two;
  14. echo "<br/>";
  15. echo $one+$two+10;
  16. ?>


I teraz mam 3 pytania
1.Dane, które odbieram chciałbym użyć i obiektowo troche na nich namieszać. W którym miejscu mogę tworzyć nowe klasy, abym mógł je używać (można zrobić to w innych plikach?)
2.Czy mogę w jakiś sposób użyć tylko raz wstawek <?php i ?> czy muszę za każdym razem gdy chcę wypisać coś na stronie "wychodzić" z nich?
3.Chciałbym ukryć drugą część pliku (od przycisku send), aby nie była pokazywana zanim się go nie naciśnie.

Ten post edytował devil1051 29.09.2015, 22:31:15
Go to the top of the page
+Quote Post
KsaR
post
Post #2





Grupa: Zarejestrowani
Postów: 520
Pomógł: 102
Dołączył: 15.07.2014
Skąd: NULL

Ostrzeżenie: (0%)
-----


Cytat(devil1051 @ 29.09.2015, 23:30:26 ) *
Moje początki z PHP... (IMG:style_emoticons/default/smile.gif)

Mam plik (przedstawie tylko body, żeby nie zaśmiecać)

first
  1. <form action="first.php" method="GET">
  2. One: <input type=text name="one"/><br/>
  3. Two: <input type=text name="two"/><br/>
  4. <input type=submit value="Send"/>
  5. </form>
  6. One: <?php echo $_GET['one']?><br>
  7. Two: <?php echo $_GET['two']?><br>
  8. <?php
  9. $one = (int)$_GET['one'];
  10. $two = (int)$_GET['two'];
  11. echo $one;
  12. echo "<br/>";
  13. echo $two;
  14. echo "<br/>";
  15. echo $one+$two+10;
  16. ?>


I teraz mam 3 pytania
1.Dane, które odbieram chciałbym użyć i obiektowo troche na nich namieszać. W którym miejscu mogę tworzyć nowe klasy, abym mógł je używać (można zrobić to w innych plikach?)
2.Czy mogę w jakiś sposób użyć tylko raz wstawek <?php i ?> czy muszę za każdym razem gdy chcę wypisać coś na stronie "wychodzić" z nich?
3.Chciałbym ukryć drugą część pliku (od przycisku send), aby nie była pokazywana zanim się go nie naciśnie.

1 mozna
2 mozesz
3 uzywaj isset().

  1. if (isset($_GET['one'], $_GET['two']))
  2. {
  3. # wyslano
  4. }
  5. else
  6. {
  7. # tu cos jak nie wyslano
  8. }

Go to the top of the page
+Quote Post
devil1051
post
Post #3





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 29.09.2015

Ostrzeżenie: (0%)
-----


A mógłbyś mi jakoś bardziej zobrazować odpowiedź do pytania nr 1?
Go to the top of the page
+Quote Post
markonix
post
Post #4





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

Ostrzeżenie: (0%)
-----


Po co na siłę pchać dane z formularza do obiektu? Jaki to miałoby mieć cel w Twoim przypadku?
Go to the top of the page
+Quote Post
Geniesis
post
Post #5





Grupa: Zarejestrowani
Postów: 53
Pomógł: 5
Dołączył: 4.12.2013
Skąd: Śląsk

Ostrzeżenie: (0%)
-----


Może wykorzystać obiekt np. do walidacji danych po stronie serwera,
dla przykładu one może być tylko tekstem, two może być tylko liczbą
wtedy:

Sposób pierwszy używania zmiennych (w tym konkretnym przypadku nie jest on preferowany)
Validator.class.php

  1. <?php
  2.  
  3. class Validator
  4. {
  5. private $one;
  6.  
  7. private $two
  8.  
  9. public function __construct($one, $two)
  10. {
  11. $this->one = $one;
  12. $this->two = $two;
  13. }
  14.  
  15. public function text()
  16. {
  17. if (preg_math(..., $this->one)) {
  18. return true;
  19. } else {
  20. return 'err.text.format';
  21. }
  22. }
  23.  
  24. public function number()
  25. {
  26. if (preg_math(..., $this->two)) {
  27. return true;
  28. } else {
  29. return 'err.number.format';
  30. }
  31. }
  32. }


Wywołanie:
  1. require_once ('/Validator.class.php');
  2. $aResultValidation = array();
  3.  
  4. $validator = new Validator($_GET['one'], $_GET['two']);
  5. $aResultValidation['one'] = $validator->text();
  6. $aResultValidation['two'] = $validator->number();


Sposób drugi:
  1. class Validator
  2. {
  3. public function text ($data)
  4. {
  5. if (preg_math(..., $data)) {
  6. return true;
  7. } else {
  8. return 'err.text.format';
  9. }
  10. }
  11.  
  12. public function number ($data)
  13. {
  14. if (preg_math(..., $data)) {
  15. return true;
  16. } else {
  17. return 'err.number.format';
  18. }
  19. }
  20. }

Wywołanie:
  1. require_once ('/Validator.class.php');
  2. $validator = new Validator();
  3. $aResultValidation = array();
  4.  
  5. $aResultValidation['one'] = $validator->text($_GET['one']);
  6. $aResultValidation['two'] = $validator->number($_GET['two']);

Każda klasa powinna być w osobnym pliku, czyli Validator w Validator.class.php, Mailer w Mailer.class.php itd.
Najlepiej podzielić to jeszcze na konkretne podfoldery:
validation <- klasy walidujące
database <- klasy wykorzystujące bazy danych
itd.

2.W przypadku wyświetlania nie używając gotowych systemów template można robić to za pomocą JavaScript (w pierw dane przekazać za pomocą AJAX).

Ten post edytował Geniesis 30.09.2015, 13:51:48
Go to the top of the page
+Quote Post
com
post
Post #6





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

Ostrzeżenie: (0%)
-----


@up sposób pierwszy nie ma sensu (IMG:style_emoticons/default/smile.gif)

Ten post edytował com 30.09.2015, 13:52:53
Go to the top of the page
+Quote Post
Tomplus
post
Post #7





Grupa: Zarejestrowani
Postów: 1 883
Pomógł: 231
Dołączył: 20.03.2005
Skąd: Będzin

Ostrzeżenie: (0%)
-----


Na stronie wortal.php.pl są manuale dot. objektówki, przeczytaj i powinieneś coś się dowiedzieć.

A jak chcesz uczyć się, to polecam: https://www.codecademy.com i tam od samego początku można uczyć się PHP razem z objektowością.

Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 16.09.2025 - 12:09