Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

3 Stron V   1 2 3 >  
Reply to this topicStart new topic
> PHP Praca (praktyki), :D
KsaR
post
Post #1





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

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


To brzmi tak głupio że aż muszę się zapytać:
Slyszal ktos moze o praktykach ale "zdalnych"(przez neta)? (IMG:style_emoticons/default/tongue.gif)
Interesują mnie wszelkie informacje o tym (IMG:style_emoticons/default/tongue.gif)

Ten post edytował KsaR 24.09.2015, 19:00:08
Go to the top of the page
+Quote Post
memory
post
Post #2





Grupa: Zarejestrowani
Postów: 616
Pomógł: 84
Dołączył: 29.11.2006
Skąd: bełchatów

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


słyszał zdalne to takie przez internet, pracujesz na swoim komputrze, nie musisz przychodzić do biura. Coś jeszcze chcesz wiedzieć ? (IMG:style_emoticons/default/biggrin.gif)

A tak poważnie praktyki zdalne to troche chory pomysł, nie wiem jak można czegoś konkretnego się nauczyć.

Ten post edytował memory 24.09.2015, 19:11:23
Go to the top of the page
+Quote Post
KsaR
post
Post #3





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

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


Cytat(memory @ 24.09.2015, 20:07:47 ) *
słyszał zdalne to takie przez internet, pracujesz na swoim komputrze, nie musisz przychodzić do biura. Coś jeszcze chcesz wiedzieć ? (IMG:style_emoticons/default/biggrin.gif)

A tak poważnie praktyki zdalne to troche chory pomysł, nie wiem jak można czegoś konkretnego się nauczyć.

Hm, cos typu.
Ktos zadaje mi zadanie, do zrobienia w dzien,
I podaje warunki.
A ja musze to wykonac, + wysylam kod a ta osoba mnie ocenia co mozna by lepiej itd (IMG:style_emoticons/default/biggrin.gif)
--
Bo potrzebowalbym praktyk (darmowych) (IMG:style_emoticons/default/biggrin.gif)
Tylko nie wiem jak szukac, gdzie szukac, i (czy) szukac (IMG:style_emoticons/default/biggrin.gif)

Ten post edytował KsaR 24.09.2015, 19:25:44
Go to the top of the page
+Quote Post
mrc
post
Post #4





Grupa: Zarejestrowani
Postów: 160
Pomógł: 27
Dołączył: 22.09.2008
Skąd: Tarnów

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


Po prostu pisz. To są najlepsze praktyki. Z czasem zauważysz, że coś jest niewygodne, że można coś łatwiej albo po prostu inaczej. Możliwe, że nie szukasz praktyk, tylko mentora przez internet, który pomógłby Ci w dalszej nauce.
Go to the top of the page
+Quote Post
KsaR
post
Post #5





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

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


Cytat(mrc @ 24.09.2015, 20:39:46 ) *
[...]Możliwe, że nie szukasz praktyk, tylko mentora przez internet, który pomógłby Ci w dalszej nauce.

No, tak (IMG:style_emoticons/default/tongue.gif)
Pisac juz wiele napisalem.
Tak to od czasu do czasu pomagam na forach z nadzieja ze ktos sie doczepi ze cos zle, ale poki co tylko raz ktos sie mnie czepil o to ze sie czepiam, to lipa troche (IMG:style_emoticons/default/tongue.gif)
Tak to nwm w czym sie dalej rozwijac.

Najwieksze problemy z calego php mam z,
Bitami. (Za malo praktyk) mimo ze cos tam juz probowalem,

Z FW. Zaden mi sie nie spodobal, a co wazniejsze nie zachecil do siebie.

Jak googluje to o optymalizacji i trickach ale nic nowego nie znajduje ;D.
Oczywiscie znam rozne narzedzia (ale) nie mam do ich dostepu, jak np. AB. Czy cos.

I kod ktory pisze jest dla mnie akurat, najlepszy. Pytanie jak dla innych itd. Stad tez te pytania.

Ps. Do komputera tez nie mam dostepu (IMG:style_emoticons/default/aaevil.gif)

Ten post edytował KsaR 24.09.2015, 19:50:48
Go to the top of the page
+Quote Post
aniolekx
post
Post #6





Grupa: Zarejestrowani
Postów: 340
Pomógł: 46
Dołączył: 31.07.2009
Skąd: A

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


pokaz kod to ci powiemy (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
hikaryu
post
Post #7





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

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


Gdzie mieszkasz miszczu ? To może załatwię jakieś praktyki albo staż(płatny) jeżeli dałbyś radę dojeżdżać.
Go to the top of the page
+Quote Post
KsaR
post
Post #8





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

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


Cytat(aniolekx @ 25.09.2015, 11:09:19 ) *
pokaz kod to ci powiemy (IMG:style_emoticons/default/wink.gif)

Jestem w trakcie programowania małego bloga,
Ale nie wiem czy za mały by się nie okazał (IMG:style_emoticons/default/tongue.gif)
Poki co jeszcze nawet nie ostylowany, nie przetestowany.
Ale jak zrobie to moge na GitHuba wrzucić.

Hikaryu:
Tak jak pisałem: zdalne, przez neta.
A dwa: "Grupa: Zarejestrowani
Postów: 243
Pomógł: 50
Dołączył: 15.07.2014
Skąd: Świecie nad wisłą"
(IMG:style_emoticons/default/tongue.gif)

--
Dobra jednak bloga nie wrzuce na GH bo bym musial troche pozmieniac, ale np.
install.php bloga taki, jeszcze nie testowalem:
  1. <!DOCTYPE html>
  2. <html lang="pl">
  3. <head>
  4. <meta charset="UTF-8"/>
  5. <title>Instalacja bloga KsaR.</title>
  6. <style>.scc{color:green}.err{color:red}</style>
  7. </head>
  8. <body>
  9. <?php
  10. function tabExs($pdo, $table)
  11. {
  12. try
  13. {
  14. $r=$pdo->query("SELECT 1 FROM `$table` LIMIT 1");
  15. }
  16. catch (PDOException $e) // PDOE. Bo domyslnie zmienione w $pdo.
  17. {
  18. return 0;
  19. }
  20. return $r!==false;
  21. }
  22.  
  23. $install='';
  24.  
  25. if (file_exists('sql/blog_users.sql') && !tabExs($pdo, 'blog_posts'))
  26. {
  27. $pdo->query(file_get_contents('sql/blog_users.sql'));
  28. unlink('sql/blog_users.sql');
  29. $install.='<span class="scc">Dodano tabelę, `blog_users`</span><br/>';
  30. }
  31.  
  32. if (file_exists('sql/blog_categories.sql') && !tabExs($pdo, 'blog_categories'))
  33. {
  34. $pdo->query(file_get_contents('sql/blog_categories.sql'));
  35. unlink('sql/blog_categories.sql');
  36. $install.='<span class="scc">Dodano tabelę, `blog_categories`</span><br/>';
  37. }
  38.  
  39. if (file_exists('sql/blog_tags.sql') && !tabExs($pdo, 'blog_tags'))
  40. {
  41. $pdo->query(file_get_contents('sql/blog_tags.sql'));
  42. unlink('sql/blog_tags.sql');
  43. $install.='<span class="scc">Dodano tabelę, `blog_tags`</span><br/>';
  44. }
  45.  
  46. if (file_exists('sql/blog_posts.sql') && !tabExs($pdo, 'blog_posts'))
  47. {
  48. $pdo->query(file_get_contents('sql/blog_posts.sql'));
  49. unlink('sql/blog_posts.sql');
  50. $install.='<span class="scc">Dodano tabelę, `blog_posts`</span><br/>';
  51. }
  52.  
  53. if (isset($install[0]))
  54. {
  55. echo $install,'Odśwież teraz stronę.';
  56. }
  57. else
  58. {
  59. $form='<form method="post" action="#"><input type="text" name="adm" required/><input type="submit" value="Dodaj admina"/></form>';
  60. if (isset($_POST['adm']))
  61. {
  62. $pdo->prepare('UPDATE `blog_users` SET `staff`=1 WHERE `email`=?')->execute([$_POST['adm']]);
  63. if ($pdo->rowCount())
  64. {
  65. echo '<br/><span class="scc">Dodano admina, aktualny plik został skasowany ze względów bespoieczeństwa..</span>';
  66. unlink(__FILE__);
  67. }
  68. else
  69. {
  70. echo $form;
  71. }
  72. }
  73. else
  74. {
  75. echo $form;
  76. }
  77. }
  78. ?>
  79. </body>
  80. </html>

Taki byle jaki bo na 2 requesty bedzie (dodanie bazy, dodanie admina - zarejestrowanego).
+ jeszcze trzeba by PDO zaincludować.

Hmmm, lub tez taki inny (ktory koloruje literki, oraz podaje bbcode) robiony na szybko bo tylko do jednorazowego użytku.
Takze spacje, nowe linie itd tez bbcoduje (IMG:style_emoticons/default/biggrin.gif) , oraz nie sprawdza jaki poprzedni kolor... ale serio do 1x uzytku..
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8"/>
  5. <title>KsaR - color mixer.</title>
  6. <style scoped>body,html{background:#3C3D3C;color:white}</style>
  7. </head>
  8. <body>
  9. <form action="#mix" method="POST"/>
  10. <input type="text" name="t" required/><br/>
  11. <select name="c">
  12. <option value="1">Niebieskie</option>
  13. <option value="2">Zielone</option>
  14. <option value="3">Wszystkie razem</option>
  15. </select>
  16. <input type="submit" value="Mixuj !"/>
  17. </form>
  18. <?php
  19. if (isset($_POST['t'],$_POST['c']))
  20. {
  21. $new='';
  22. $newBB='';
  23. switch ($_POST['c'])
  24. {
  25. case '1': $colors=['62A2E3','3280CF','196CBF','197CE0','1381F0','1F6CB8','4286C9']; break;
  26. case '2': $colors=['35B53B','18AD20','04BA0D','1ACC23','2ADE33','09D913','27C22F']; break;
  27. default: $colors=['35B53B','18AD20','04BA0D','1ACC23','2ADE33','09D913','27C22F','62A2E3','3280CF','196CBF','197CE0','1381F0','1F6CB8','4286C9']; # wszystkie
  28. }
  29. shuffle($colors);
  30. $colorsCt=count($colors)-1;
  31. preg_match_all('#(.)#u',$_POST['t'],$str);
  32. $str=$str[0];
  33. $i=-1;
  34. do
  35. {
  36. ++$i;
  37. $curr=$colors[mt_rand(0,$colorsCt)];
  38. $new.='<span style="color:#'.$curr.'">'.$str[$i].'</span>';
  39. $newBB.=''.$str[$i].'';
  40. }
  41. while (isset($str[$i]));
  42. echo '<br/><br/><span style="color:gray">Rezultat:</span> ',$new,'<br/><span style="color:gray">BBcode:</span> ',$newBB;
  43. }
  44. ?>
  45. </body>
  46. </html>

Tu mysle ze lepiej by bylo na checkboxach ale tak jw. Pisalem.

Więc jak cos więcej to lepiej zapytać, bo ja zazwyczaj robie krotkie.. I nie ma wtedy co oceniac.
A jak dlugie to zwyczajnie nie daje bo mi zalezy na tym ze duzo czasu poswiecilem (IMG:style_emoticons/default/tongue.gif)

Ten post edytował KsaR 28.09.2015, 03:59:25
Go to the top of the page
+Quote Post
Pyton_000
post
Post #9





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


Przepraszam że to powiem, ale to jest straszne. To nawet proceduralnie nie jest a przynajmniej wygląda beznadziejnie.
Go to the top of the page
+Quote Post
KsaR
post
Post #10





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

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


Cytat(Pyton_000 @ 28.09.2015, 08:16:07 ) *
Przepraszam że to powiem, ale to jest straszne. To nawet proceduralnie nie jest a przynajmniej wygląda beznadziejnie.

Hee, ja wlasnie tego nie widze, co innego gdyby inaczej formatowal kod jak co niektorzy,
A co bys zmienil? Zeby nie bylo strasznie?
--
Instalacja to robilem z 2-5min.
Mix kolorow do 20min, na tablecie.
Czyli na szybko po mojemu (IMG:style_emoticons/default/tongue.gif)
--
Aha, ps.
Normalnie to tak nie mam HTML-a wmieszanego.
Do podstron.
Tu tak jest zeby przegladarka wrazie czego nie zwariowala (IMG:style_emoticons/default/tongue.gif)

Ten post edytował KsaR 28.09.2015, 07:41:33
Go to the top of the page
+Quote Post
kapslokk
post
Post #11





Grupa: Zarejestrowani
Postów: 965
Pomógł: 285
Dołączył: 19.06.2015
Skąd: Warszawa

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


To po co właściwie wrzucasz kod zrobiony w 5 minut?
Co do samego kodu:
Tak na dobrą sprawę to bym zaczął od jakiegoś rozdzielenia htmla od php...


  1. if (file_exists('sql/blog_users.sql') && !tabExs($pdo, 'blog_posts'))
  2. {
  3. $pdo->query(file_get_contents('sql/blog_users.sql'));
  4. unlink('sql/blog_users.sql');
  5. $install.='<span class="scc">Dodano tabelę, `blog_users`</span><br/>';
  6. }
  7.  
  8. if (file_exists('sql/blog_categories.sql') && !tabExs($pdo, 'blog_categories'))
  9. {
  10. $pdo->query(file_get_contents('sql/blog_categories.sql'));
  11. unlink('sql/blog_categories.sql');
  12. $install.='<span class="scc">Dodano tabelę, `blog_categories`</span><br/>';
  13. }
  14.  
  15. if (file_exists('sql/blog_tags.sql') && !tabExs($pdo, 'blog_tags'))
  16. {
  17. $pdo->query(file_get_contents('sql/blog_tags.sql'));
  18. unlink('sql/blog_tags.sql');
  19. $install.='<span class="scc">Dodano tabelę, `blog_tags`</span><br/>';
  20. }
  21.  
  22. if (file_exists('sql/blog_posts.sql') && !tabExs($pdo, 'blog_posts'))
  23. {
  24. $pdo->query(file_get_contents('sql/blog_posts.sql'));
  25. unlink('sql/blog_posts.sql');
  26. $install.='<span class="scc">Dodano tabelę, `blog_posts`</span><br/>';
  27. }


A teraz pomyśl, że chcesz zmienić klasę w tym spanie. I robisz to w x miejscach... A wystarczyło zrobić funkcję (IMG:style_emoticons/default/smile.gif)

Ogólnie to wrzuć coś, co nie było robione na szybko, bo tym to aż wstyd się chwalić (IMG:style_emoticons/default/biggrin.gif)
Go to the top of the page
+Quote Post
KsaR
post
Post #12





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

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


Kapslokk, co do HTML-a to zedytowalem chwile wczesniej post zanim odpisales (IMG:style_emoticons/default/tongue.gif) ,
Ee ja nie mam takich problemow. ;D w edytorze moge zmieniac dowolny ciag na inny.
I sie niczym tu nie chwale, sami prosiliscie kod to jest ogolny zarys (IMG:style_emoticons/default/tongue.gif) .
  1. # (...)
  2. $install='';
  3.  
  4. function tableExists($patch='', $table='')
  5. { global $pdo; # ach to global (IMG:style_emoticons/default/biggrin.gif) , nie chce mi sie na szybko teraz przerabiac (IMG:style_emoticons/default/aaevil.gif)
  6. if (file_exists($patch) && !tabExs($pdo, $table))
  7. {
  8. $pdo->query(file_get_contents($patch));
  9. unlink($patch);
  10. return '<span class="scc">Dodano tabelę, `'.$table.'`</span><br/>';
  11. }
  12. return '';
  13. }
  14.  
  15. $install.=tableExists('sql/blog_posts.sql', 'blog_posts');
  16. $install.=tableExists('sql/blog_categories.sql', 'blog_categories');
  17. $install.=tableExists('sql/blog_tags.sql', 'blog_tags');
  18. $install.=tableExists('sql/blog_users.sql', 'blog_users');
  19.  
  20. if (isset($install[0]))
  21. # (...)

Czy o cos takiego chodzilo? (IMG:style_emoticons/default/tongue.gif)

Ten post edytował KsaR 28.09.2015, 07:58:58
Go to the top of the page
+Quote Post
kapslokk
post
Post #13





Grupa: Zarejestrowani
Postów: 965
Pomógł: 285
Dołączył: 19.06.2015
Skąd: Warszawa

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


Tak.. o coś takiego chodziło. Ja wiem, że możesz zmienić dowolny ciąg na inny, ale jeżeli oprócz zmiany ciągu znaków będziesz musiał przerobić coś więcej, to sie okaże, że musisz robić to ręcznie. I jeśli Ci dojdzie x tabel, to będziesz musiał się nieźle narobić ;P A poza tym kod staje się czytelniejszy. Za miesiąc przyjdziesz i stwierdzisz, że tak naprawdę nie wiesz co robisz w tym miejscu, a jeśli sobie sensownie nazwiesz funkcję to łatwo się domyślisz (IMG:style_emoticons/default/smile.gif)

Staraj się nazywać funkcje tak jak działają. Nazwa tableExists sugeruje, że ona sprawdza czy tabela istnieje. Nic nie mówi o tym, że zostanie utworzona jeśli nie istnieje (IMG:style_emoticons/default/smile.gif)

Ten post edytował kapslokk 28.09.2015, 08:02:24
Go to the top of the page
+Quote Post
KsaR
post
Post #14





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

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


No tak, (IMG:style_emoticons/default/tongue.gif) nie pomyslalem o DRY w tamtym wypadku. < dziękuje za uswiadomienie, zobacze inne kody czy tak nie odwalilem (IMG:style_emoticons/default/biggrin.gif) .

--

Mialem problem zeby nazwac teraz na szybko funkcje (IMG:style_emoticons/default/biggrin.gif)
Go to the top of the page
+Quote Post
Pyton_000
post
Post #15





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


lepiej, ale uważasz że nazwa funkcji jest adekwatna do działania?
Go to the top of the page
+Quote Post
KsaR
post
Post #16





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

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


Cytat(Pyton_000 @ 28.09.2015, 09:06:20 ) *
lepiej, ale uważasz że nazwa funkcji jest adekwatna do działania?

Nie w pelni, ale na chwile obecna nie wiem jak nazwac (jak wyzej).

tblNonExsts (tableNonExists)

Ten post edytował KsaR 28.09.2015, 08:09:51
Go to the top of the page
+Quote Post
kapslokk
post
Post #17





Grupa: Zarejestrowani
Postów: 965
Pomógł: 285
Dołączył: 19.06.2015
Skąd: Warszawa

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


  1. $i=-1;
  2. do
  3. {
  4. ++$i;
  5. $curr=$colors[mt_rand(0,$colorsCt)];
  6. $new.='<span style="color:#'.$curr.'">'.$str[$i].'</span>';
  7. $newBB.=''.$str[$i].'';
  8. }
  9. while (isset($str[$i]));


To jest fajny fragment. (IMG:style_emoticons/default/biggrin.gif)
Wiesz, że najpierw wykonają się instrujcje z pętli, a później sprawdzisz czy w ogóle $str[$i] istnieje ?(IMG:style_emoticons/default/biggrin.gif)

@edit

Zamiast tblNonExsts zrób tak jak napisałeś w nawiasie. Po cholere to skracać?

Ten post edytował kapslokk 28.09.2015, 08:12:29
Go to the top of the page
+Quote Post
KsaR
post
Post #18





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

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


Cytat(kapslokk @ 28.09.2015, 09:09:30 ) *
  1. $i=-1;
  2. do
  3. {
  4. ++$i;
  5. $curr=$colors[mt_rand(0,$colorsCt)];
  6. $new.='<span style="color:#'.$curr.'">'.$str[$i].'</span>';
  7. $newBB.=''.$str[$i].'';
  8. }
  9. while (isset($str[$i]));


To jest fajny fragment. (IMG:style_emoticons/default/biggrin.gif)
Wiesz, że najpierw wykonają się instrujcje z pętli, a później sprawdzisz czy w ogóle $str[$i] istnieje ?(IMG:style_emoticons/default/biggrin.gif)

Naprostuj, co tu złego? Jako ze jest w ifie:
  1. if (isset($_POST['t'],$_POST['c']))
  2. {


(IMG:style_emoticons/default/questionmark.gif) (IMG:style_emoticons/default/tongue.gif)
Czyli po tym ifie zakladam ze jednak jest cos, w tym wypadku 1 znak:pp
--
@edit - ok

Ten post edytował KsaR 28.09.2015, 08:13:34
Go to the top of the page
+Quote Post
Pyton_000
post
Post #19





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


Cytat
# ach to global biggrin.gif, nie chce mi sie na szybko teraz przerabiac aaevil.gif

Wiesz, źle to świadczy o Tobie.

A zamiast tableExists -> executeSchema
Go to the top of the page
+Quote Post
kapslokk
post
Post #20





Grupa: Zarejestrowani
Postów: 965
Pomógł: 285
Dołączył: 19.06.2015
Skąd: Warszawa

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


Tak na dobrą sprawę to nie wiem o co chodzi w ogóle w tej pętli do...while(). Tzn do czego ona służy, ale tak czy inaczej, czemu nie foreach ? A źle jest to, że jak Ci sie skonczy tablica $str to zrobi jeszcze jedno kółko.

Ten post edytował kapslokk 28.09.2015, 08:19:08
Go to the top of the page
+Quote Post
KsaR
post
Post #21





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

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


Cytat(Pyton_000 @ 28.09.2015, 09:16:44 ) *
Wiesz, źle to świadczy o Tobie.

A zamiast tableExists -> executeSchema

Ten global dodalem przy edycji dopiero, bo sie pytalem czy o "cos takiego" chodzi, i nagle zauwazylem ze $pdo nie lokalne, to nie chcialem na szybko przerabiac co zaznaczylem w komentarzu (IMG:style_emoticons/default/smile.gif)
--
kapslokk, to chyba nie ogarnelem dzialania do...while hm?

to nie dziala tak ze:
do{} sie zawsze wykona z ta roznica ze od drugiego obiegu sprawdza warunek (tzn po wykonaniu?)

A robi to ze podmienia wpisany tekst na losowe kolorowanie liter.
Na poczatku bylo cos typu $str[$x].. Że by sie nie dalo nawet foreach. (Foreach po stringu), ale niestety problem z UNICODE i musialem na szybko cos wykombinowac ponownie. Zeby polskie znaki mi obsluzylo (IMG:style_emoticons/default/tongue.gif) i tak kolejne kombinacje.

Ten post edytował KsaR 28.09.2015, 08:24:05
Go to the top of the page
+Quote Post
kapslokk
post
Post #22





Grupa: Zarejestrowani
Postów: 965
Pomógł: 285
Dołączył: 19.06.2015
Skąd: Warszawa

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


Do while działa tak, że sprawdza warunek po wykonaniu pętli. W Twoim przypadku ustawiasz $i = -1; Na początku masz inkrementację i to powoduje błąd. $i na starcie powinno być równe 0, na końcu pętli inkrementacja i warunek działał by poprawnie. A tak, to warunek jest spełniony, następuje inkrementacja i lecimy po elemencie tablicy który nie istnieje.
Odpal sobie takie 2 kody:
1.
  1. <?php
  2.  
  3. $arr = array(
  4. 0=>0,
  5. 1=>1,
  6. 2=>2,
  7. 3=>3,
  8. );
  9. $i = -1;
  10. do{
  11. $i++;
  12. var_dump($arr[$i]);
  13. }while(isset($arr[$i]));


2.
  1. <?php
  2.  
  3. $arr = array(
  4. 0=>0,
  5. 1=>1,
  6. 2=>2,
  7. 3=>3,
  8. );
  9. $i = 0;
  10. do{
  11. var_dump($arr[$i]);
  12. $i++;
  13. }while(isset($arr[$i]));


Ten post edytował kapslokk 28.09.2015, 08:27:12
Go to the top of the page
+Quote Post
KsaR
post
Post #23





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

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


Tyle rzeczy sie nauczyc w chwile (IMG:style_emoticons/default/tongue.gif) , dzięki.
Na szczescie rzadko uzywam do-while.
Najczesciej while/foreach.
Z petlami mialem najwiekszy problem gdy zaczynalem nauke "dawno" temu (IMG:style_emoticons/default/tongue.gif)

Co do bardziej przemyslanego:
  1. <?php
  2. ob_start('ob_gzhandler')?:ob_start();
  3.  
  4. define('IS_DEBUG', true); // DEBUG MODE.
  5. define('ok', true); // for included files.
  6. define('RP', $_SERVER['DOCUMENT_ROOT']); // root path.
  7.  
  8. if (IS_DEBUG)
  9. {
  10. ini_set('display_errors',true);
  11. ini_set('display_startup_errors',true);
  12. ini_set('track_errors',true);
  13. }
  14. else ini_set('display_errors',false);
  15.  
  16. session_set_cookie_params(86400,'/',$_SERVER['HTTP_HOST'],false,true); #-1:ssl; -0: httpOnly.
  17. session_save_path(__DIR__.'/sess/'); # change dir of sess; defend for shared hosting.
  18.  
  19. # functions include #
  20. include RP.'/php/functions.php';
  21.  
  22. register_shutdown_function('footer');
  23.  
  24. if (!isset($_GET['p'])) $_GET['p']='home';
  25. switch ($_GET['p'])
  26. {
  27. case 'signin': $page=['title'=>'Logowanie','name'=>'signin']; break;
  28. case 'signup': $page=['title'=>'Rejestracja','name'=>'signup']; break;
  29. case 'addpost': $page=['title'=>'Dodaj post','name'=>'addpost']; break;
  30. case 'addcategory': $page=['title'=>'Dodaj kategorię','name'=>'addcategory']; break;
  31. case 'signout': $_SESSION=[]; session_destroy(); $page=['title'=>'Cytaty online','name'=>'home']; break;
  32. default: $page=['title'=>'Blog - KsaR','name'=>'home'];
  33. }
  34.  
  35. $server=sprintf('//%s/~%s/',$_SERVER['SERVER_ADDR'],explode('/',$_SERVER['SCRIPT_FILENAME'])[2]);
  36.  
  37. echo '<!DOCTYPE html SYSTEM "about:legacy-compat">
  38. <html lang="pl" dir="ltr">
  39. <head>
  40. <meta charset="UTF-8"/>
  41. <title>',$page['title'],'.</title>
  42. <meta name="viewport" content="width=device-width,maximum-scale=2.5,initial-scale=1.0"/>
  43. <link rel="stylesheet" href="',$server,'css/style.min.css?v=0"/>
  44. <meta name="MobileOptimized" content="true"/>
  45. <meta name="HandheldFriendly" content="true"/>
  46. <meta name="author" content="KsaR"/>
  47. <meta name="keywords" content="ksar,blog,php,polski"/>
  48. </head>
  49. <body>
  50. <header>';
  51.  
  52.  
  53. // @author: KsaR.
  54. ## session security ##
  55. // before stolen session
  56. if (isset($_SESSION['owner']) && $_SESSION['owner']!==$_SERVER['HTTP_USER_AGENT'])
  57. {
  58. exit('<div style="color:red"><b>Wykryto i udaremniono próbę przejęcia sesji użytkownika.</b></div>');
  59. }
  60. else
  61. {
  62. $_SESSION['owner']=$_SERVER['HTTP_USER_AGENT'];
  63. }
  64. ##-session security-##
  65.  
  66. $logged=isset($_SESSION['uid']);
  67.  
  68. try
  69. {
  70. $config=
  71. [
  72. 'db_host'=>'127.0.0.1',
  73. 'db_name'=>'baza',
  74. 'db_user'=>'uzytkownik',
  75. 'db_pass'=>'haslo'
  76. ];
  77. $pdo=new PDO(sprintf('mysql:host=%s;dbname=%s;charset=utf8;encoding=utf8',$config['db_host'],$config['db_name']),$config['db_user'],$config['db_pass'],[PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION,PDO::ATTR_PERSISTENT=>true,PDO::MYSQL_ATTR_INIT_COMMAND=>'SET time_zone=\''.date('P').'\'']);
  78. }
  79. catch(PDOException $e)
  80. {
  81. exit(sprintf('<div class="error">Wystąpił problem podczas połączenia z bazą danych.<br/>%s</div>',$e->getMessage()));
  82. }
  83. if ($logged)
  84. {
  85. $user=$pdo->prepare('SELECT `staff` FROM `users` WHERE `userId`=? LIMIT 1');
  86. $user->execute([$_SESSION['userId']]);
  87. $user=$user->fetch(PDO::FETCH_ASSOC);
  88. }
  89.  
  90. echo '<nav id="menu">
  91. <ul>
  92. <li><a href="/">Strona główna</a></li>',($logged?($user['staff']?(
  93. '<li><a href="/addpost/">Dodaj post</a></li>
  94. <li><a href="/addcategory/">Dodaj kategorie</a></li>':'')).
  95. '<li><a href="/signout/">Wyloguj</a></li>'):(
  96. '<li><a href="/signin/">Logowanie</a></li>
  97. <li><a href="/signup/">Rejestracja</a></li>'),
  98. '</ul>
  99. </nav>
  100. </header>
  101. <main>';
  102.  
  103. ob_start('ob_clear');
  104. include sprintf('%s/pages_include/%s.php',RP,$page['name']);

Ps.
Ten HTML w PHP tez mi sie nie podoba (to co w echo), jednak cos wolniej ladowala mi sie strona gdy byl html poza php, jakby go kompresja nie dosiegala ale nie mam jak to potwierdzic.

Ten post edytował KsaR 28.09.2015, 08:49:26
Go to the top of the page
+Quote Post
Pyton_000
post
Post #24





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


  1. exit(sprintf('<div class="error">Wystąpił problem podczas połączenia z bazą danych.<br/>%s</div>',$e->getMessage()));

Wrzuć sobie jakieś błędne dane i zobacz co Ci wywali na ekran...
Go to the top of the page
+Quote Post
kapslokk
post
Post #25





Grupa: Zarejestrowani
Postów: 965
Pomógł: 285
Dołączył: 19.06.2015
Skąd: Warszawa

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


Kumpel z pracy Cię wyśmiał za to:
  1. define('ok', true); // for included files.


Poza tym coś takiego:
  1. $pdo=new PDO(sprintf('mysql:host=%s;dbname=%s;charset=utf8;encoding=utf8',$config['db_host'],$config['db_name']),$config['db_user'],$config['db_pass'],[PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION,PDO::ATTR_PERSISTENT=>true,PDO::MYSQL_ATTR_INIT_COMMAND=>'SET time_zone=\''.date('P').'\'']);

To imo tylko zaciemnianie kodu.


  1. if (!isset($_GET['p'])) $_GET['p']='home';

Serio musisz to przypisywać prosto do GET'a ?

Ten post edytował kapslokk 28.09.2015, 09:58:22
Go to the top of the page
+Quote Post
KsaR
post
Post #26





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

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


Co do define chodzi o 'ok'?
Co do zaciemniania, wedlug mnie wlasnie czytelniej (IMG:style_emoticons/default/tongue.gif) bo i tak w tablicy dane.
Co do przypisania do get,
Bylo na poczatku tak:

if (...)
{
tu switch
}
else $page=[...];
Jednak zrobilem jak wyzej bo bylo podwujnie w else i default to samo (IMG:style_emoticons/default/tongue.gif)

--
Pyton_000 - nie mam jak teraz sprawdzic, hostingodawca wylaczyl cos dostep do error_loga nie wiem czemu (IMG:style_emoticons/default/aaevil.gif) musze cos pokombinowac, bo blank page -,- < nie testowalem po zmianach, tak samo jak widac tam "cytaty online" (IMG:style_emoticons/default/biggrin.gif) heh
Go to the top of the page
+Quote Post
kapslokk
post
Post #27





Grupa: Zarejestrowani
Postów: 965
Pomógł: 285
Dołączył: 19.06.2015
Skąd: Warszawa

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


Tak, chodzi o ok... Po co to?(IMG:style_emoticons/default/biggrin.gif)

Jeżeli uważasz, że ta linijka jest czytelna, no to cóż (IMG:style_emoticons/default/biggrin.gif) musisz z tym żyć (IMG:style_emoticons/default/haha.gif)
Co do geta, to juz lepiej sobie przepisz to do innej zmiennej i tam coś zmieniaj, a nie bezposrednio w gecie.
Go to the top of the page
+Quote Post
KsaR
post
Post #28





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

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


Cytat(kapslokk @ 28.09.2015, 11:19:51 ) *
Tak, chodzi o ok... Po co to?(IMG:style_emoticons/default/biggrin.gif)

W includowanych plikach robie:

if (!defined('ok')) exit;

Zeby ktos nie wszedl w plik bezposrednio (includowany).
Go to the top of the page
+Quote Post
kapslokk
post
Post #29





Grupa: Zarejestrowani
Postów: 965
Pomógł: 285
Dołączył: 19.06.2015
Skąd: Warszawa

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


Cytat(KsaR @ 28.09.2015, 11:22:49 ) *
W includowanych plikach robie:

if (!defined('ok')) exit;

Zeby ktos nie wszedl w plik bezposrednio (includowany).


To żeś ładnie nazwał stałą. Od razu wiedziałem o co chodzi.
Go to the top of the page
+Quote Post
KsaR
post
Post #30





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

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


  1. <?php
  2. ob_start('ob_gzhandler')?:ob_start();
  3.  
  4. define('IS_DEBUG', true); // DEBUG MODE.
  5. define('included', true); // for included files.
  6. define('RP', $_SERVER['DOCUMENT_ROOT']); // root patch.
  7.  
  8. if (IS_DEBUG)
  9. {
  10. ini_set('log_errors',true);
  11. ini_set('error_log','errors.log.txt');
  12. ini_set('display_errors',true);
  13. ini_set('display_startup_errors',true);
  14. ini_set('track_errors',true);
  15. }
  16. else ini_set('display_errors',false);
  17.  
  18. session_set_cookie_params(86400,'/',$_SERVER['HTTP_HOST'],false,true); #-1:ssl; -0: httpOnly.
  19. session_save_path(__DIR__.'/sess/'); # change dir of sess; defend for shared hosting.
  20.  
  21. # functions include #
  22. include RP.'/php/functions.php';
  23.  
  24. register_shutdown_function('footer');
  25.  
  26. $page=['title'=>'Blog - KsaR','name'=>'home'];
  27. switch ((isset($_GET['p']) ? $_GET['p'] : ''))
  28. {
  29. case 'signin': $page=['title'=>'Logowanie','name'=>'signin']; break;
  30. case 'signup': $page=['title'=>'Rejestracja','name'=>'signup']; break;
  31. case 'addpost': $page=['title'=>'Dodaj post','name'=>'addpost']; break;
  32. case 'addcategory': $page=['title'=>'Dodaj kategorię','name'=>'addcategory']; break;
  33. case 'signout': $_SESSION=[]; session_destroy(); break;
  34. }
  35.  
  36. $server=sprintf('//%s/~%s/',$_SERVER['SERVER_ADDR'],explode('/',$_SERVER['SCRIPT_FILENAME'])[2]);
  37. ?>
  38. <!DOCTYPE html SYSTEM "about:legacy-compat">
  39. <html lang="pl" dir="ltr">
  40. <head>
  41. <meta charset="UTF-8"/>
  42. <title><?=$page['title']?></title>
  43. <meta name="viewport" content="width=device-width,maximum-scale=2.5,initial-scale=1.0"/>
  44. <link rel="stylesheet" href="<?=$server?>'css/style.min.css?v=0"/>
  45. <meta name="MobileOptimized" content="true"/>
  46. <meta name="HandheldFriendly" content="true"/>
  47. <meta name="author" content="KsaR"/>
  48. <meta name="keywords" content="ksar,blog,php,polski"/>
  49. </head>
  50. <body>
  51. <?php
  52. // @author: KsaR.
  53. ## session security ##
  54. // before stolen session
  55. if (isset($_SESSION['owner']) && $_SESSION['owner']!==$_SERVER['HTTP_USER_AGENT'])
  56. {
  57. exit('<div class="err"><b>Wykryto i udaremniono próbę przejęcia sesji użytkownika.</b></div>');
  58. }
  59. else
  60. {
  61. $_SESSION['owner']=$_SERVER['HTTP_USER_AGENT'];
  62. }
  63. ##-session security-##
  64.  
  65. $logged=isset($_SESSION['uid']);
  66.  
  67. try
  68. {
  69. $config=
  70. [
  71. 'db_host'=>'127.0.0.1',
  72. 'db_name'=>'baza',
  73. 'db_user'=>'uzytkownik',
  74. 'db_pass'=>'haslo'
  75. ];
  76. $pdo=new PDO('mysql:host='.$config['db_host'].';dbname='.$config['db_name'].';charset=utf8;encoding=utf8',$config['db_user'],$config['db_pass'],
  77. [
  78. PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION,
  79. PDO::ATTR_PERSISTENT=>true,
  80. PDO::MYSQL_ATTR_INIT_COMMAND=>'SET time_zone=\''.date('P').'\''
  81. ]);
  82. }
  83. catch(PDOException $e)
  84. {
  85. exit(sprintf('<div class="err">Wystąpił problem podczas połączenia z bazą danych.<br/>%s</div>',$e->getMessage()));
  86. }
  87.  
  88. if ($logged)
  89. {
  90. $user=$pdo->prepare('SELECT `staff` FROM `users` WHERE `userId`=? LIMIT 1');
  91. $user->execute([$_SESSION['userId']]);
  92. $user=$user->fetch(PDO::FETCH_ASSOC);
  93. }
  94. ?>
  95. <header>
  96. <nav id="menu">
  97. <ul>
  98. <li><a href="/">Strona główna</a></li>
  99. <?php
  100. if ($logged)
  101. {
  102. if ($user['staff']):
  103. ?>
  104. <li><a href="/addpost/">Dodaj post</a></li>
  105. <li><a href="/addcategory/">Dodaj kategorie</a></li>
  106. <?php
  107. endif;
  108. ?>
  109. <li><a href="/signout/">Wyloguj</a></li>
  110. <?php
  111. }
  112. ?>
  113. <li><a href="/signin/">Logowanie</a></li>
  114. <li><a href="/signup/">Rejestracja</a></li>
  115. </ul>
  116. </nav>
  117. </header>
  118. <main>
  119. <?php
  120. ob_start('ob_clear');
  121. include sprintf('%s/pages_include/%s.php',RP,$page['name']);

Ok zmiany i juz nie blank page,

Pyton_000:
Cytat
Wystąpił problem podczas połączenia z bazą danych.<br/>SQLSTATE[HY000] [1045] Access denied for user 'uzytkownik'@'localhost' (using password: YES)


Juz chyba wszystko poprawilem, jeszcze coś źle? (IMG:style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
kapslokk
post
Post #31





Grupa: Zarejestrowani
Postów: 965
Pomógł: 285
Dołączył: 19.06.2015
Skąd: Warszawa

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


  1. $page=['title'=>'Blog - KsaR','name'=>'home'];
  2. switch ((isset($_GET['p']) ? $_GET['p'] : ''))
  3. {
  4. case 'signin': $page=['title'=>'Logowanie','name'=>'signin']; break;
  5. case 'signup': $page=['title'=>'Rejestracja','name'=>'signup']; break;
  6. case 'addpost': $page=['title'=>'Dodaj post','name'=>'addpost']; break;
  7. case 'addcategory': $page=['title'=>'Dodaj kategorię','name'=>'addcategory']; break;
  8. case 'signout': $_SESSION=[]; session_destroy(); break;
  9. }


ten switch jest głupi, bo i tak będzie sprawdzał warunki nawet gdy nie będzie $_GET['p'];
Wg. mnie lepiej by było:
  1. if(isset($_GET['p']){
  2. switch ($_GET['p']))
  3. {
  4. case 'signin': $page=['title'=>'Logowanie','name'=>'signin']; break;
  5. case 'signup': $page=['title'=>'Rejestracja','name'=>'signup']; break;
  6. case 'addpost': $page=['title'=>'Dodaj post','name'=>'addpost']; break;
  7. case 'addcategory': $page=['title'=>'Dodaj kategorię','name'=>'addcategory']; break;
  8. case 'signout': $_SESSION=[]; session_destroy(); break;
  9. }
  10. }
  11. if(!isset($page){
  12. $page=['title'=>'Blog - KsaR','name'=>'home'];
  13. }

Ale to już ktoś mądrzejszy by się musiał wypowiedzieć.

A co do samego kodu, jeżeli chcesz rozwijać ten 'blog' to przydały by się jakieś obiekty i system szablonów.
Go to the top of the page
+Quote Post
Pyton_000
post
Post #32





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


Wiedz że jeśli serwer się wykrzaczy lub inny timeout to Exception z POD wywali Ci PLAIN password. Dlatego nie rób czegoś takiego jak $e->getMessage().
Go to the top of the page
+Quote Post
KsaR
post
Post #33





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

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


  1. $page=['title'=>'Blog - KsaR','name'=>'home'];
  2. if (isset($_GET['p']))
  3. {
  4. switch ($_GET['p'])
  5. {
  6. case 'signin': $page=['title'=>'Logowanie','name'=>'signin']; break;
  7. case 'signup': $page=['title'=>'Rejestracja','name'=>'signup']; break;
  8. case 'addpost': $page=['title'=>'Dodaj post','name'=>'addpost']; break;
  9. case 'addcategory': $page=['title'=>'Dodaj kategorię','name'=>'addcategory']; break;
  10. case 'signout': $_SESSION=[]; session_destroy(); break;
  11. }
  12. }


Cytat(Pyton_000 @ 28.09.2015, 12:31:14 ) *
Wiedz że jeśli serwer się wykrzaczy lub inny timeout to Exception z POD wywali Ci PLAIN password. Dlatego nie rób czegoś takiego jak $e->getMessage().

A co zamiast robić? Zeby blad otrzymac?
Go to the top of the page
+Quote Post
Pyton_000
post
Post #34





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


Przecież masz tam tylko połączenie z bazą, więc zwykły komunikat Ci wystarczy.
Go to the top of the page
+Quote Post
KsaR
post
Post #35





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

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


Cytat(Pyton_000 @ 28.09.2015, 12:34:22 ) *
Przecież masz tam tylko połączenie z bazą, więc zwykły komunikat Ci wystarczy.

A no, tak (IMG:style_emoticons/default/biggrin.gif)

  1. catch(PDOException $e)
  2. {
  3. exit('<div class="err">Wystąpił problem podczas połączenia z bazą danych.</div>');
  4. }


Poprawione.

Ten post edytował KsaR 28.09.2015, 11:38:08
Go to the top of the page
+Quote Post
com
post
Post #36





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

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


pytałeś o praktyki zdalne, słyszałem IBM takie robił jakiś czas temu (IMG:style_emoticons/default/tongue.gif)
Ale lepiej zrobić coś w tradycyjny sposób, bo tam nie wiele sie nauczysz.

Ten post edytował com 28.09.2015, 13:15:59
Go to the top of the page
+Quote Post
memory
post
Post #37





Grupa: Zarejestrowani
Postów: 616
Pomógł: 84
Dołączył: 29.11.2006
Skąd: bełchatów

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


widzisz KsaR dlatego praktyki powinieneś odbyć stacjonarnie
Go to the top of the page
+Quote Post
Wazniak96
post
Post #38





Grupa: Zarejestrowani
Postów: 550
Pomógł: 75
Dołączył: 5.06.2012
Skąd: Lębork

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


Ajj KsaR.. Z tego co pamiętam cały czas zaciemniałeś kod przez optymalizację i przez to co Ci się podoba.

Niestety ten zawód nie działa tak jak i cały świat. Musisz się układać pod standardy, a nie własne upodobania by pracować w tym zawodzie.

Dzisiaj właśnie było na wykładach wspomniane o tym słowo. Oczywiście zazwyczaj stylistyka kodu ma pierwszeństwo przed optymalizacją (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
Pyton_000
post
Post #39





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


Cytat(Wazniak96 @ 28.09.2015, 15:53:05 ) *
Oczywiście zazwyczaj stylistyka kodu ma pierwszeństwo przed optymalizacją wink.gif

Powodzenia w zawodzie...
Go to the top of the page
+Quote Post
mrc
post
Post #40





Grupa: Zarejestrowani
Postów: 160
Pomógł: 27
Dołączył: 22.09.2008
Skąd: Tarnów

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


Co ma stylistyka kodu do optymalizacji? Klamrowania, wcięcia, nawiasowanie - co to ma wspólnego z optymalizacją?

Jak ktoś nauczy się ładnie pisać na początku, to zawsze będzie pisał ładny kod, przed i po optymalizacji.
Go to the top of the page
+Quote Post
Wazniak96
post
Post #41





Grupa: Zarejestrowani
Postów: 550
Pomógł: 75
Dołączył: 5.06.2012
Skąd: Lębork

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


Chodziło mi o to, że np. mieszanie kodu PHP z HTML. (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
pyro
post
Post #42





Grupa: Zarejestrowani
Postów: 2 148
Pomógł: 230
Dołączył: 26.03.2008

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


Cytat(Wazniak96 @ 28.09.2015, 19:36:11 ) *
Chodziło mi o to, że np. mieszanie kodu PHP z HTML. (IMG:style_emoticons/default/wink.gif)


To nie jest stylistyka kodu... Mylisz pojęcia

Ten post edytował pyro 28.09.2015, 19:39:44
Go to the top of the page
+Quote Post

3 Stron V   1 2 3 >
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: 27.09.2025 - 11:48