Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php]Ksiega gosci, pierwszy skrypt w object php ;p
marcio
post
Post #1





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

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


siemka dzis wieczorem postanowilem napisac sobie ksiege gosci na klasie nie na funckjach bo mysle ze to prostota i nawet ja laik nie mial bym z tym problemu wiec chcialbyc od was minimalnej pomocy oto skrypty mowie odrazy ze sa dlugie
klasa_ksiegi.php
  1. <?php
  2.  
  3.  
  4. class Ksiega {
  5. include('../config.php');
  6. var $zmien;
  7. var $token;
  8.  
  9. public function Wyswietl_form() {
  10.  
  11. echo("<html>\n
  12.  <head><meta http-equiv="content-type" charset="utf-8" /></head>\n<body>\n<h1>Ksiega gosci</h1>\n<form method="post" />\n<table widht="100%" bgcolor="#4E4E68" border="1" />\n<tr><td>Podaj nick :)<input type="text" name="Nick" /></td></tr>\n<tr><td>Wpisz wiadomosc<input type="text" name="message" /></td></tr>\n<tr><td width="80"><img src="token.php"></td><td><input type="text" name="token" /></td></tr>\n<tr><td align="right"><INPUT TYPE=image VALUE=submit src="buttons.php"/></td></tr>\n"); 
  13. }
  14.  
  15. public function bbcode() {
  16.  
  17.  
  18.  $this->zmien = htmlspecialchars($this->zmien);
  19.  $this->zmien = preg_replace("#(.*?)#si", "<A HREF='2' TARGET='top'>3</A>", $this->zmien);
  20.  $this->zmien = str_replace(":D","<img src='obrazki/biggrin.gif' />", $this->zmien);
  21.  $this->zmien = str_replace(":)","<img src='obrazki/smile.gif' />", $this->zmien);
  22.  $this->zmien = str_replace(":(","<img src='obrazki/confused.gif' />", $this->zmien);
  23.  $this->zmien = str_replace(";p","<img src='obrazki/tongue.gif' />", $this->zmien);
  24.  $this->zmien = str_replace(":]","<img src='obrazki/cool.gif' />", $this->zmien);
  25.  $this->zmien = str_replace("[:","<img src='obrazki/bigrazz.gif' />", $this->zmien);
  26.  $this->zmien = str_replace("()","<img src='obrazki/wink.gif' />", $this->zmien);
  27.  $this->zmien = preg_replace("#(.*?)#si", "<i>1</i>" $this->zmien);
  28.  $this->zmien = preg_replace("#(.*?)#si", "<b>1</b>" $this->zmien);
  29.  $this->zmien = preg_replace("#[ins](.*?)[/ins]#si", "<ins>1</ins>", $this->zmien);
  30.  $this->zmien = preg_replace("#[small](.*?)[/small]#si", "<small>1</small>", $this->zmien);
  31.  $this->zmien = preg_replace("#[big](.*?)[/big]#si", "<big>1</big>", $this->zmien);
  32.  return $this->zmien;
  33.  }
  34.  
  35. public function Sesja_tokena() {
  36.  
  37. $this->token = $_SESSION['randtoken'];
  38. }
  39.  
  40. public function Generuj_token() {
  41.  
  42. $generuj_liczby = rand(1, 1000);
  43. $this->token = substr(md5($generuj_liczby)0, 6);
  44. $_SESSION['randtoken'] = $this->token;
  45. }
  46.  
  47. public function Zwroc_token() {
  48.  
  49. return $this->token;
  50. }
  51.  
  52. public function Resetuj() {
  53.  
  54. $_SESSION['randtoken'] = "";
  55. $this->token = "";
  56. }
  57.  
  58. public function Zrob_obrazek_tokena() { 
  59.  
  60.  
  61.  header("Content-type: image/png"); 
  62. $image = @imagecreate(100,20); 
  63.  if($image) { 
  64.  
  65. $background = imagecolorallocate($image, 0,0,0); 
  66. $text = imagecolorallocate($image, 255,255,235); 
  67. imagestring($image, 4, 25,5, $this->token, $text); 
  68. header("Content-type: image/png"); 
  69. imagepng($image); 
  70. imagedestroy($image);
  71. } 
  72.  
  73. }
  74.  
  75. public function Date() {
  76.  
  77. $this->data = date('j/n/Y H:i:s;');
  78. }
  79.  
  80.  
  81. public function Dodaj_wpis() {
  82.  
  83. $this->ip = $_SERVER['REMOTE_ADRESS'];
  84.  
  85. $this->nick = htmlspecialchars($_POST['nick'];
  86.  
  87. $this->message = bbcode(htmlspecialchars($_POST['message']));
  88.  
  89. if($token->Zwroc_token() == $_POST['token'] && !empty($this->nick) && !empty($this->message)) {
  90.  
  91. $db = mysql_connect($this->pasy['host'], $this->pasy['login'], $this->pasy['haslo']);
  92.  
  93. $db->select_db($this->pasy['baza']);
  94.  
  95. if(!is_resource($this->db)) {
  96. echo('Polaczenie z baza niemozliwe prosze sprobowac pozniej');
  97.  
  98.  return;
  99. }
  100.  
  101. $this->zapytanie = sprintf('insert into ksiega(nick,message,data,ip) values('%s', '%s','$this->data', '$this->ip')');
  102.  
  103. mysql_real_escape_string($this->nick, $this->db);
  104.  
  105. mysql_real_escape_string($this->message, $this->db);
  106.  
  107. $db->query($zapytanie) or die('Polaczenie nie mozliwe prosze sprobowac pozniej');
  108.  
  109. if($this->zapytanie) {
  110.  
  111. echo('<Br><center><h2>Dziekuje za wpis<Br></h2></center>');
  112. else {
  113.  
  114. echo('Prosze wypelnic wszystkie pola');
  115. }
  116.  
  117. else {
  118.  
  119. echo('Podaj wlasciy token');
  120.  
  121. $token->Resetuj();
  122.  
  123.  }
  124.  
  125.  }  
  126.  
  127. }
  128.  
  129. }
  130.  
  131. public function Pokaz_ksiege() {
  132.  
  133. $db = mysql_connect($this->pasy['host'], $this->pasy['login'], $this->pasy['haslo']);
  134.  
  135. $db->select_db($this->['baza']);
  136.  
  137. if(!is_resource($this->db)) {
  138. echo('Polaczenie z baza niemozliwe prosze sprobowac pozniej');
  139.  
  140. return;
  141. }
  142.  
  143. $this->zapytanie('select nick,message,data from ksiega order by data desc')
  144.  
  145. $wynik = $db->query($zapytanie);
  146.  
  147. while($tab = $wynik->fetch_assoc()) {
  148.  
  149. echo('<tr><td>"Dodal: ".'$this->tab['nick'].'</td></tr>
  150. <tr><td>'.$this->tab['message'].'</td></tr>\n</table>\n</form>\n</body>\n</html>\n');
  151.  
  152.  
  153.  
  154.  
  155. ?>


to index.php

  1. <?php
  2. include('klasa_ksiegi.php');
  3.  
  4. $token = new Ksiega;
  5. $token->Generuj_token();
  6. $ksiega_gosci = new Ksiega;
  7. $ksiega_gosci->Wyswietl_form();
  8. $ksiega_gosci->Dodaj_wpis();
  9. $ksiega_gosci->Pokaz_ksiege();
  10. ?>


token.php

  1. <?php
  2. include('klasa_ksiegi.php');
  3.  
  4. $token = new Ksiega;
  5. $token->Sesja_tokena();
  6. $token->Zrob_obrazek_tokena();
  7. ?>


i buttons.php

  1. <?php
  2. header("Content-type: image/png");
  3. $image = @ImageCreate(60,25);
  4. $tlo = imagecolorallocate($image, 0,0,0);
  5. $kolor_tekst = imagecolorallocate($image, 5,255,47);
  6. $text = imagestring($image, 3,8,5, 'wyslij', $kolor_tekst);
  7. header("Content-type: image/png");
  8. imagepng($image);
  9. imagedestroy($image);
  10. ?>


Watpie zeby komus sie chcialo czytac caly kod ale przynajmniej zeby zobaczyl na klase bo cos chyba zle zrobilem albo czegos nie zrozumialem

Ten post edytował marcio 5.10.2007, 23:27:56
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Sedziwoj
post
Post #2





Grupa: Zarejestrowani
Postów: 793
Pomógł: 32
Dołączył: 23.11.2006
Skąd: Warszawa

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


@marcio
Jak programujesz obiektowo, to nie myślisz jak coś działa, tylko co ma robić. Czyli masz jakieś rzecz Token, BazęDanych itp. itd. I te rzeczy powoli nauczysz się wyszukiwać a to będą obiekty.
Dlaczego 100% to nie jest obiektowo? Bo jeden obiekt ma spełniać jedno konkretne zadanie. Spróbuj w jednym/dwóch zdaniach opisać to co robi, nie uda się, a powinno się udać jeśli to byłby kod obiektowy. Moim zdaniem dobrym podejściem są karteczki (chyba 12x8cm) każda opisuje obiekt, jeśli się na niej nie mieści, znaczy że trzeba użyć nie jednego a więcej obiektów.

Ale ja nie jestem specem w sumie w tym, mimo wszystko radził bym poczytać np. "Thinking in Java" bo mimo wszystko to w dużej mierze skupia się również na OOP.
Go to the top of the page
+Quote Post

Posty w temacie
- marcio   [php]Ksiega gosci   5.10.2007, 22:35:09
- - sf   - str_replace - powinna być pętla przy tej operacj...   6.10.2007, 06:33:09
- - Cysiaczek   Twoja klasa spełnia 7 funkcji, co jest 100% przekr...   6.10.2007, 07:21:24
- - dzesi   Cysiaczek Nie to ze sie czepiam ale ciągle czepias...   8.10.2007, 20:03:28
- - Cysiaczek   @dzesi - może i się czepiam - fakt. Sam też nie za...   9.10.2007, 08:28:30
- - marcio   @all sorki ze nie odpisywalem ale nie mialem neta ...   10.10.2007, 16:54:04
- - Sedziwoj   @marcio Jak programujesz obiektowo, to nie myślisz...   11.10.2007, 15:09:33
- - marcio   aj dzieki ale nie bede czytal ksiazki o javie bo m...   11.10.2007, 15:16:49
- - Cysiaczek   Tak - fajna rzecz - te karteczki to tzw. karty CRC...   11.10.2007, 15:18:36
- - marcio   nie wiem o co chodzi z tymi karteczkami   11.10.2007, 16:02:56
- - Cysiaczek   http://adanti.files.wordpress.com/2006/05/mia_CRC....   11.10.2007, 18:10:57
- - marcio   nie rozumiem co to ma wspolnego ale mozesz powied...   11.10.2007, 18:43:17
- - Cysiaczek   Pytasz, co jest źle? Dostajesz odpowiedzi. Sedziwo...   11.10.2007, 21:00:51
- - marcio   ale nie dziala a nepewno idzie to latwiej wytlumac...   12.10.2007, 05:27:32
- - Sedziwoj   @marcio I właśnie pokazujesz, że nie rozumiesz OOP...   12.10.2007, 10:44:03
- - marcio   czyli mam zrozumiec ze mam sobie dac spokoj z OOP?...   12.10.2007, 14:58:45
- - Cysiaczek   Nie - oczywiście, że nie! Musisz tylko wkuć tr...   12.10.2007, 15:25:21
- - marcio   dobra poddaje sie wyeliminowalem wszystkie syntax_...   14.10.2007, 13:46:55
- - Sedziwoj   [PHP] pobierz, plaintext <?php$token = new Toke...   14.10.2007, 20:27:17
- - marcio   moze dlatego ze nie zrozumialem w poscie wyzej wy...   14.10.2007, 21:28:22


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: 12.10.2025 - 01:34