Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]skrypt w OOP, Czy dobrze??
marcio
post 8.03.2008, 19:56:46
Post #1





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


Witam tak jak kiedys napisalem chce sie nauczyc OOP i robie sa prosta ksiege

OTO KOD:
  1. <?php
  2.  
  3. include('config.php');
  4.  
  5. class Ksiega {
  6.  
  7. public $data, $ip, $host, $nick, $message;
  8. private $pasy, $action, $method, $db;
  9.  
  10. public function __construct($nick, $message, $action, $method) {
  11.  
  12. global $pasy;
  13.  
  14. $this -> action = $action;
  15. $this -> method = $method;
  16. $this -> data = date('j/n/Y H:i:s');
  17. $this -> nick = htmlspecialchars(addslashes($nick));
  18. $this -> message = htmlspecialchars(addslashes($message));
  19. $this -> ip = $_SERVER['REMOTE_ADDR'];
  20. $this -> host = gethostbyaddr($_SERVER['REMOTE_ADDR']);
  21. $this -> pasy = $pasy;
  22. }
  23.  
  24.  
  25. public function db_connect() {
  26.  
  27. if($this -> db = mysql_connect($this->pasy['host'], $this->pasy['login'], $this->pasy['haslo'])) {
  28. mysql_select_db($this->pasy['baza']);
  29. return true;
  30. }
  31.  
  32. else return false;
  33.  
  34. }
  35.  
  36.  
  37. public function db_close() {
  38.  
  39. mysql_close($this -> db);
  40.  
  41. }
  42.  
  43.  
  44. public function new_query($query) {
  45.  
  46. $this -> db_connect();
  47. if($result = mysql_query($query))
  48. return $result;
  49.  
  50. else return die(mysql_error());
  51. $this -> db_close();
  52.  
  53. }
  54.  
  55.  
  56. public function show_form() {
  57.  
  58. echo('<html>
  59. <head><meta http-equiv="content-type" charset="utf-8" /><title>GuEsT bY MARCIO</title>
  60. <style type="text/css">
  61. a {color:#FDEDF2}
  62. body {color:#FDEDF2}
  63. </style>
  64. </head>
  65. <body bgcolor="#000000">
  66. <center><img src="gora.jpg" width="1240" height="100" alt="obrazek"/></center>
  67. <table align="center" width="75%">
  68. <form action="'.$this -> action.'" method="'.$this -> method.'">
  69. <tr><td align="center"><input type="text" name="nick" size="71" value="Nick" style="font-style:italic; background-color:#000000; color:#00A54E; border-color: #000000; border: #000000;"/></td></tr>
  70. <tr><td align="center"><textarea name="message" rows="3" cols="70" style="font-style:italic; background-color:#000000; color:#00A54E; border-color: #000000; border: #000000;">Tutaj wpisz wiadomosc</textarea></td></tr>
  71. <tr><td align="center"><input type="submit" name="dodaj" value="Dodaj wpis" style="font-style:italic; background-color:#000000; color:#00A54E; border-color: #000000; border: #000000;" /></td></tr>
  72. </form></table>
  73. </body><html>'); 
  74. }
  75.  
  76.  
  77. public function add_reply() {
  78.  
  79.  $this -> show_form();
  80.  
  81.  if(!empty($_POST['nick']) && !empty($_POST['message']) && isset($_POST['dodaj'])) {
  82.  
  83.  setcookie("Spamer", "Spam", time() + 300);
  84.  $zapytanie = ("insert into ksiega_gosci(nick,message,data,ip,kod) values('$this->nick', '$this->message', '$this->data', '$this->ip', '')");
  85.  
  86. if($_COOKIE['Spamer'] != "Spam") {
  87.  
  88. $this -> new_query($zapytanie);
  89. $host = $_SERVER['HTTP_HOST'];
  90. $uri = rtrim(dirname($_SERVER['PHP_SELF']), '/');
  91.  
  92. }
  93.  
  94. else {
  95.  
  96. echo('<script>alert("Spadaj spamerze musisz odczekac 5min :)");</script>');
  97.  
  98. }
  99. }
  100.  
  101.  else echo('<script>alert("Prosze wypelnic formularz");</script>'); 
  102.  
  103.  }
  104.  
  105.  
  106. public function show_reply($liczba = 30) {
  107.  
  108. $query = ("select * from ksiega_gosci");
  109. $wynik = $this->new_query($query);
  110. $num = mysql_num_rows($wynik);
  111. $ile = ceil($num/30);
  112.  
  113. if(!isset($_GET['strona'])) $_GET['strona'] = 0;
  114.  
  115. $strona = (int)$_GET['strona'];
  116. $id = (int)$_GET['id'];
  117. $query1 = ("select * from ksiega_gosci order by id desc limit ".$strona*$liczba.",".$liczba);
  118. $wynik1 = $this->new_query($query1);
  119. while($tab = mysql_fetch_assoc($wynik1)) {
  120.  
  121. echo('<table border="1" width="75%" align="center" style="border: 1px dotted red;"><tr><td width="40%">Dodal: '.stripslashes($tab['nick']).'</td><td width="26%">Dnia:'.$tab['data'].'</td></tr>
  122. <tr><td><b>'.stripslashes($tab['message']).'</b></td></tr></table></form>');
  123.  
  124. }
  125.  
  126. if(mysql_num_rows($wynik) == 0) {
  127.  
  128. echo('<script>alert("Nie ma wpisow");</script>');
  129. }
  130.  
  131. echo('<Br><center><b>Strona: '.($strona).' z '.($ile).'</b></center>');
  132.  
  133. if(is_numeric($strona) && !empty($strona) && $strona > 0) {
  134.  
  135. echo('<center><a href="?strona='.($strona-1).'"><img src=\'rev.gif' /></a> ');
  136.  
  137. }
  138.  
  139.  
  140. if(is_numeric($strona) && !empty($strona) && $strona < $ile) {
  141.  
  142. echo('<a href="?strona='.($strona+1).'"><img src='next.gif' /></a></center>');
  143.  
  144. }
  145.  
  146. else {
  147.  
  148. echo('<center><a href="?strona='.($strona+1).'"><img src='next.gif' /></a></center>');
  149.  
  150. }
  151.  
  152. echo('<table align="center" style="border: 1px dotted red;"><tr><td align="center">');
  153.  
  154. for($i = 0; $i < $ile; $i++) 
  155. echo('<a href="?strona='.$i.'">['.$i.']</a> ');
  156. echo('</td></tr></table>');
  157.  
  158. }
  159. };
  160.  
  161. $ksiega = new Ksiega($_POST['nick'], $_POST['message'], 'new_klasa.php', 'post');
  162. $ksiega -> add_reply();
  163. $ksiega -> show_reply();
  164.  
  165. echo('<Br><div style="background:#FFFFFF;color:#000000;text-align:center;border:2px solid:white;"><code><b>Powered by Marcio. GG(4854727)</b><img src="http://www.gadu-gadu.pl/users/status.asp?id=4854727&styl=1"/><Br><a style="color:#000000" href="http://ekmll.com" TARGET="_blank">My site</a></code></div>');
  166. ?>

NIe chce zebys ktos z was analizowal kod linijka po linicje po kod dziala lecz tak patrzac na oko czy kod jest zgdony z OOP czyli czy nie jest to tak jak wy to nazywacie pseudo OOP jesli tak to bylbym wdzeczny jak ktos by pokazal jak by to mialo wygladac w czystym OOP nie zeby mi pisal na nowo kod ale zeby pokazal np jak powinna wygldac funkcja add_reply() albo ktora z nich

Oprocz tego mam jeszcze kilka pytan bylbym wdzieczny jak by ktos na nie odpowiedzial nie musi odpowiadac na wszystkie

1.DO czego sluzy klasa interface??BO nie zrozumialem
2.Do czego sluzy abstract??
3.Do czego sluzy static??

I potem mam jeszcze jedno pytanie czytalem kurs na temat OOP
Czyli w OOP do obiektow mozna sie odwolywac za pomoca pol i metod jednak gdy zmienne klasowe sa publiczne gdy sa typu private albo protected to tylko za pomoca metod dobrze mowie??
Jednak chcialbym sie zapytac czy ktos z was bedzie tak mily i by mi pokazal roznice pomiedzy odwolywaniem sie do obiektow za pomoca pol i metod smile.gif bo pomieszalo mi sie teraz wszystko i juz nie wiem co jest czym...

Ten post edytował marcio 8.03.2008, 20:00:57


--------------------
Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/
Moj blog
Go to the top of the page
+Quote Post

Posty w temacie
- marcio   [PHP]skrypt w OOP   8.03.2008, 19:56:46
- - Piniek   po pierwsze nie umieszczaj kodu html w klasie i w...   8.03.2008, 19:58:56
- - marcio   P.S co sie stalo z bbcode'em pierwszy raz mi s...   8.03.2008, 20:02:22
- - Jarod   Ehh... global..   8.03.2008, 20:38:25
- - marcio   To moze ktos pokarze dlaczeg jest to tylko skladni...   8.03.2008, 20:50:26
- - Cysiaczek   Obejrzyj kod jakiegoś frameworka, albo zobacz...   8.03.2008, 21:03:59
- - marcio   o0..trudne to jest wiesz mysle ze odrazu nie napis...   8.03.2008, 21:13:18
- - Cysiaczek   Tylko, że tego się nie pisze, tylko generuje. Samo...   8.03.2008, 21:27:27
- - marcio   No ok dzieki ale to mi w niczym nie pomaga bo klas...   8.03.2008, 21:38:22
- - Cysiaczek   Nie da się tego kodu zmienić. należy go napisać zu...   8.03.2008, 22:01:42
- - marcio   @Cysiaczek na ksiazki sknera nie jestem mam w domu...   8.03.2008, 22:27:27
|- - zlw   Cytat(marcio @ 8.03.2008, 22:27:27 ) ...   9.03.2008, 10:28:32
- - marcio   No ok @zlw wiec poczytalem troche kurs'ow i pr...   9.03.2008, 14:28:39
- - Cysiaczek   [PHP] pobierz, plaintext <?phppublic function g...   9.03.2008, 15:09:54
- - marcio   Powiem tak ksiazki o OOP nie mam tzn mam ksiazki d...   9.03.2008, 15:20:52
- - Piniek   dam ci link do artykułu http://kavuka.pl/blog/show...   9.03.2008, 15:40:17
- - Cysiaczek   eheheh. To samo próbuję wytłumaczyć tutaj, w temac...   9.03.2008, 15:46:41
- - marcio   Czy jestem chociaz na taki etapie?? CytatUważam (p...   9.03.2008, 16:31:08
- - Cysiaczek   Masz, ale teraz to już naprawdę marsz do książek K...   9.03.2008, 16:36:40
- - marcio   Czyli ogolnie powinno sie tworzyc klasy dla kazdej...   9.03.2008, 16:52:23
- - Cysiaczek   Bo nie będę Ci przecież wszystkich funkcji pisał. ...   9.03.2008, 17:17:25
- - marcio   Wykombinowalem cos takiego bylbym wdzieczny jak kt...   9.03.2008, 18:29:30
- - l0ud   marcio, ale dlaczego tym kodem robisz właściwie ws...   9.03.2008, 18:46:58
- - marcio   @l0ud a moglbys pokazac mniej wiecej jak ma wyglad...   9.03.2008, 19:01:37
- - Xniver   Zobacz sobie Open Power Template albo Smarty Cyta...   9.03.2008, 23:30:52
- - marcio   OK Xniver wielkie dzieki zaraz lukne co robi ten s...   10.03.2008, 00:03:43
- - Xniver   IMHO gorzej tego zrobić nie mogłeś....   10.03.2008, 00:27:53
- - marcio   Wiem ze tego najlepiej nie napisalem ale czy mozes...   10.03.2008, 00:37:22
- - Xniver   Jeśli chodzi o ten twój poprzedni kod to tam ...   10.03.2008, 00:39:15
- - marcio   O lol az mi siara probowalem dac global ale do glo...   10.03.2008, 00:49:42
- - Xniver   [PHP] pobierz, plaintext <?phppublic function _...   10.03.2008, 01:08:07
- - marcio   no tak to jak zrobic zebym nie mysial uzywac globa...   10.03.2008, 01:10:33
- - Xniver   [PHP] pobierz, plaintext <?phppublic function _...   10.03.2008, 01:12:35
- - marcio   AHa tak patrzac na ten twoj kod zastanawialem sie ...   10.03.2008, 01:23:43
- - Cysiaczek   @marcio - Pokazałem Ci, jak wyglądają klasy księgi...   10.03.2008, 06:56:44
- - marcio   @Cysiaczek staram sie jak moge ale...jakos trudno ...   10.03.2008, 16:24:15
- - Cysiaczek   Nie, nie posiadam e-booków, ani adresów, bo na łam...   10.03.2008, 16:27:37
- - marcio   W sumie masz racje ale dzieki no coz poucze sie j...   10.03.2008, 23:16:09
- - Xniver   Czemu cały czas dziedziczysz/implementujesz i...   11.03.2008, 10:35:04
- - marcio   CytatNie możesz po prostu użyć jej jako zewnętrzne...   11.03.2008, 15:07:57
- - Xniver   Nie chodziło o to: [PHP] pobierz, plaintext ...   11.03.2008, 15:24:24
- - marcio   Cytat(Xniver @ 11.03.2008, 15:24:24 )...   11.03.2008, 16:35:28
- - carbolymer   Widze tu braki w podstawach OOP. Extends (jak sama...   11.03.2008, 21:56:24
- - marcio   Dzieki czyli operator :: mozna powiedziec ze zaste...   11.03.2008, 22:53:38
- - Xniver   CytatDzieki czyli operator :: mozna powiedziec ze ...   11.03.2008, 23:00:25
- - marcio   No troche sie uparlem nie wiem czemu jakos tak w...   11.03.2008, 23:13:27
- - Xniver   Bo $this wywołuje funkcje znajdujące się w ak...   11.03.2008, 23:20:39
- - marcio   No tak ale ta funckja new_query znajduje sie w kla...   11.03.2008, 23:32:43
- - specialplan   marcio, a moze zacznij od: http://pl.wikibooks.or...   12.03.2008, 12:00:28
- - Noctrum   Cysiaczek moge prosic Ciebie o wyjasnienie tej li...   14.03.2008, 18:56:53
- - Cysiaczek   Hm, to jest pseudokod, rozbudowany, ale nadal pseu...   14.03.2008, 19:26:49
- - marcio   Sorki ze nie odpowiadalem ale nie bylo mnie... Dz...   16.03.2008, 17:11:29
- - tomahawk   A powiedzcie mi jedną rzecz... Czemu w OOP używa ...   16.03.2008, 18:23:25
|- - shine   Cytat(tomahawk @ 16.03.2008, 18:23:25...   20.03.2008, 12:22:50
|- - mosqi83   Cytat(tomahawk @ 16.03.2008, 18:23:25...   22.03.2008, 22:44:51
- - marcio   Chyba dla przejzystosci...   16.03.2008, 18:27:29
- - tomahawk   Ale czemu akurat w ten sposób? Możne np. dać twar...   16.03.2008, 18:29:29
|- - Sedziwoj   Cytat(tomahawk @ 16.03.2008, 18:29:29...   16.03.2008, 18:48:04
- - itsme   temat ma duzo wspolnego z OOP ale nie na poziomie ...   16.03.2008, 18:48:02
- - tomahawk   To dlaczego w php jedne funkcję są s twardymi spac...   17.03.2008, 17:21:58
- - l0ud   CytatTo dlaczego w php jedne funkcję są s twardymi...   17.03.2008, 20:44:27
- - Sedziwoj   Cytat(l0ud @ 17.03.2008, 20:44:27 ) C...   17.03.2008, 23:12:51


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

 



RSS Wersja Lo-Fi Aktualny czas: 25.06.2025 - 21:14