SlideShare a Scribd company logo
Czyli od Hello World do ZCE... Przemysław „eRIZ” Pawliczuk Zend Certified Engineer
Błędy składni echo 'hello world'
Brak wcięć w kodzie if($cond){ while(1){ for($a=0;$a<mt_rand(0,100);$a++){ echo 'hello world'; } } }
Otwieranie skryptów PHP „dwuklikiem” file:///C:ocuments And settingssd ulpitkrypt.php
Pseudo register_globals $x = $_POST['x']; $y = $_GET['y']; extract($_POST);
Zmienne rozumiane wyłącznie przez autora echo $asd*$qwerty-$jakas+$flkj;
Brak zrozumienia zasięgu zmiennych $str = 'Ala ma kota'; function pakazy(){ echo $str; } pakazy(); //zonk
Próby wykonywania PHP po stronie przeglądarki <?PHP function funkcja(){ echo 'Hello world'; } ?> <a href=&quot;funkcja()&quot;>joł</a>
Porównywanie float echo M_PI;  //3.1415926535898 var_dump(M_PI==3.1415926535898);  //false
Wynajdywanie koła na nowo function pad_zeros($number, $zeros) { if (strpos($number, '.') !== false) { preg_match('#(+)$#', $number, $match); $number .= str_repeat('0', $zeros-strlen($match[1])); return $number; } else { return $number.'.'.str_repeat('0', $zeros); } } // ... // english notation without thousands seperator $english_format_number = number_format($number, 2, '.', '');
Błąd #1 Warning: Cannot modify header information - headers already sent by
Błąd #2 Type: [2048] date() [function.date]: It is not safe to rely on the system's timezone settings. Please use the date.timezone setting, the TZ environment variable or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Berlin' for 'CET/1.0/no DST' instead, line 154 of file /usr/local/apache/www/htdocs/artel-elektro.pl/classes/vMain.php RTFM!
Błędy w rozumowaniu składni zmiennych echo HelloWorld; echo 'HelloWorld'; echo &quot;$zmienna&quot;; echo ''.$s_User.''
Brak filtrowania danych require 'strony/'.$_GET['strona'];
Mylenie generowanego kodu ze źródłem skryptu require 'http://example.com/script.php';
Każdorazowe zliczanie elementów w pętli $str = 'Kot ma Alę'; for($a=0;$a<strlen($str);$a++){ echo chr(ord($str{$a})+2); } $c = strlen($str); for($a=0;$a<$c;$a++){ echo chr(ord($str{$a})+2); }
Problem z prologiem XML echo '<?xml ... ?>';
MySQL – syzyfowe wyciąganie danych $z = mysql_query('select * from asd'); echo $z['kolumna'];
MySQL – nierozsądne pętle $z = mysql_query('select * from asd'); $ile = mysql_num_rows($z); for($a=0;$a<$ile;$a++){ //... }
MySQL – inne mysql_free_result(); //ad stałych połączeń mysql_error();
MySQL – inne - wciskanie wszystkiego w kolumny - utf8_polish_ci
SQL Injection mysql_query('SELECT * FROM users WHERE login=&quot;'.$_POST['login'].'&quot; ... ');
Tabelki ;) ,[object Object]
&quot;wszystko ładnie wygląda więc po co to zmianiac :D pozatym nie  mam czasu na nauke, mam pelno zlecen i kase trzeba  zarobic&quot;

More Related Content

Viewers also liked

TERMINALFOUR t44u 2009 - Enhanced Media Library & Multilingual Media
TERMINALFOUR t44u 2009 - Enhanced Media Library & Multilingual MediaTERMINALFOUR t44u 2009 - Enhanced Media Library & Multilingual Media
TERMINALFOUR t44u 2009 - Enhanced Media Library & Multilingual MediaTerminalfour
 
Prospectus editing at the University of Bristol- an overview:TERMINALFOUR t44...
Prospectus editing at the University of Bristol- an overview:TERMINALFOUR t44...Prospectus editing at the University of Bristol- an overview:TERMINALFOUR t44...
Prospectus editing at the University of Bristol- an overview:TERMINALFOUR t44...
Terminalfour
 
Współczesne przeglądarki - ZamCamp#3
Współczesne przeglądarki - ZamCamp#3Współczesne przeglądarki - ZamCamp#3
Współczesne przeglądarki - ZamCamp#3
zamcamp
 
Approaches to higher education course search: TERMINALFOUR t44u 2013
Approaches to higher education course search: TERMINALFOUR t44u 2013Approaches to higher education course search: TERMINALFOUR t44u 2013
Approaches to higher education course search: TERMINALFOUR t44u 2013
Terminalfour
 
Developers are users too #yourapisucks
Developers are users too #yourapisucksDevelopers are users too #yourapisucks
Developers are users too #yourapisucks
Craig Nicol
 
Arvutigraafika
ArvutigraafikaArvutigraafika
Arvutigraafika
Ljubov Fedotova
 
TERMINALFOUR t44u 2011- make it mobile mobile sites with site manager
TERMINALFOUR t44u 2011- make it mobile   mobile sites with site managerTERMINALFOUR t44u 2011- make it mobile   mobile sites with site manager
TERMINALFOUR t44u 2011- make it mobile mobile sites with site managerTerminalfour
 
Ficha 2º eso 2011 12
Ficha 2º eso 2011 12Ficha 2º eso 2011 12
Ficha 2º eso 2011 12IES Heliche
 
TERMINALFOUR t44u 2012 - Editing and Duplicating of Content Types
TERMINALFOUR t44u 2012 - Editing and Duplicating of Content TypesTERMINALFOUR t44u 2012 - Editing and Duplicating of Content Types
TERMINALFOUR t44u 2012 - Editing and Duplicating of Content Types
Terminalfour
 
TERMINALFOUR t44u 2012 - What is Responsive Design?
TERMINALFOUR t44u 2012 - What is Responsive Design?TERMINALFOUR t44u 2012 - What is Responsive Design?
TERMINALFOUR t44u 2012 - What is Responsive Design?
Terminalfour
 
Digital Signage Rom 3 17 2008
Digital Signage Rom 3 17 2008Digital Signage Rom 3 17 2008
Digital Signage Rom 3 17 2008loudnoyes
 
TERMINALFOUR t44u 2012 - Auto Mirroring of Content
TERMINALFOUR t44u 2012 - Auto Mirroring of ContentTERMINALFOUR t44u 2012 - Auto Mirroring of Content
TERMINALFOUR t44u 2012 - Auto Mirroring of Content
Terminalfour
 
مصطفى
مصطفىمصطفى
مصطفى
zaglol60
 
TERMINALFOUR t44u 2009 - Paul Boag Headscape 10 Problems your Content Managem...
TERMINALFOUR t44u 2009 - Paul Boag Headscape 10 Problems your Content Managem...TERMINALFOUR t44u 2009 - Paul Boag Headscape 10 Problems your Content Managem...
TERMINALFOUR t44u 2009 - Paul Boag Headscape 10 Problems your Content Managem...Terminalfour
 
Ekooljuhend2
Ekooljuhend2Ekooljuhend2
Ekooljuhend2
Ljubov Fedotova
 
Bishnupriya (Manipuri) Speakers in Bangladesh: A Sociolinguistic Survey
Bishnupriya (Manipuri) Speakers in Bangladesh: A Sociolinguistic SurveyBishnupriya (Manipuri) Speakers in Bangladesh: A Sociolinguistic Survey
Bishnupriya (Manipuri) Speakers in Bangladesh: A Sociolinguistic Survey
rajkumarrishi1
 
TERMINALFOUR t44u 2012 - Section Mirroring Demonstration
TERMINALFOUR t44u 2012 - Section Mirroring DemonstrationTERMINALFOUR t44u 2012 - Section Mirroring Demonstration
TERMINALFOUR t44u 2012 - Section Mirroring Demonstration
Terminalfour
 
درس نموذجي
درس نموذجيدرس نموذجي
درس نموذجيnogy84
 

Viewers also liked (20)

TERMINALFOUR t44u 2009 - Enhanced Media Library & Multilingual Media
TERMINALFOUR t44u 2009 - Enhanced Media Library & Multilingual MediaTERMINALFOUR t44u 2009 - Enhanced Media Library & Multilingual Media
TERMINALFOUR t44u 2009 - Enhanced Media Library & Multilingual Media
 
Tekst kontuuriks
Tekst kontuuriksTekst kontuuriks
Tekst kontuuriks
 
Prospectus editing at the University of Bristol- an overview:TERMINALFOUR t44...
Prospectus editing at the University of Bristol- an overview:TERMINALFOUR t44...Prospectus editing at the University of Bristol- an overview:TERMINALFOUR t44...
Prospectus editing at the University of Bristol- an overview:TERMINALFOUR t44...
 
Współczesne przeglądarki - ZamCamp#3
Współczesne przeglądarki - ZamCamp#3Współczesne przeglądarki - ZamCamp#3
Współczesne przeglądarki - ZamCamp#3
 
Approaches to higher education course search: TERMINALFOUR t44u 2013
Approaches to higher education course search: TERMINALFOUR t44u 2013Approaches to higher education course search: TERMINALFOUR t44u 2013
Approaches to higher education course search: TERMINALFOUR t44u 2013
 
Developers are users too #yourapisucks
Developers are users too #yourapisucksDevelopers are users too #yourapisucks
Developers are users too #yourapisucks
 
Arvutigraafika
ArvutigraafikaArvutigraafika
Arvutigraafika
 
TERMINALFOUR t44u 2011- make it mobile mobile sites with site manager
TERMINALFOUR t44u 2011- make it mobile   mobile sites with site managerTERMINALFOUR t44u 2011- make it mobile   mobile sites with site manager
TERMINALFOUR t44u 2011- make it mobile mobile sites with site manager
 
Ficha 2º eso 2011 12
Ficha 2º eso 2011 12Ficha 2º eso 2011 12
Ficha 2º eso 2011 12
 
TERMINALFOUR t44u 2012 - Editing and Duplicating of Content Types
TERMINALFOUR t44u 2012 - Editing and Duplicating of Content TypesTERMINALFOUR t44u 2012 - Editing and Duplicating of Content Types
TERMINALFOUR t44u 2012 - Editing and Duplicating of Content Types
 
TERMINALFOUR t44u 2012 - What is Responsive Design?
TERMINALFOUR t44u 2012 - What is Responsive Design?TERMINALFOUR t44u 2012 - What is Responsive Design?
TERMINALFOUR t44u 2012 - What is Responsive Design?
 
Digital Signage Rom 3 17 2008
Digital Signage Rom 3 17 2008Digital Signage Rom 3 17 2008
Digital Signage Rom 3 17 2008
 
Samar article
Samar articleSamar article
Samar article
 
TERMINALFOUR t44u 2012 - Auto Mirroring of Content
TERMINALFOUR t44u 2012 - Auto Mirroring of ContentTERMINALFOUR t44u 2012 - Auto Mirroring of Content
TERMINALFOUR t44u 2012 - Auto Mirroring of Content
 
مصطفى
مصطفىمصطفى
مصطفى
 
TERMINALFOUR t44u 2009 - Paul Boag Headscape 10 Problems your Content Managem...
TERMINALFOUR t44u 2009 - Paul Boag Headscape 10 Problems your Content Managem...TERMINALFOUR t44u 2009 - Paul Boag Headscape 10 Problems your Content Managem...
TERMINALFOUR t44u 2009 - Paul Boag Headscape 10 Problems your Content Managem...
 
Ekooljuhend2
Ekooljuhend2Ekooljuhend2
Ekooljuhend2
 
Bishnupriya (Manipuri) Speakers in Bangladesh: A Sociolinguistic Survey
Bishnupriya (Manipuri) Speakers in Bangladesh: A Sociolinguistic SurveyBishnupriya (Manipuri) Speakers in Bangladesh: A Sociolinguistic Survey
Bishnupriya (Manipuri) Speakers in Bangladesh: A Sociolinguistic Survey
 
TERMINALFOUR t44u 2012 - Section Mirroring Demonstration
TERMINALFOUR t44u 2012 - Section Mirroring DemonstrationTERMINALFOUR t44u 2012 - Section Mirroring Demonstration
TERMINALFOUR t44u 2012 - Section Mirroring Demonstration
 
درس نموذجي
درس نموذجيدرس نموذجي
درس نموذجي
 

More from zamcamp

ZamCamp - Ciekawe sposoby debugowania kodu
ZamCamp - Ciekawe sposoby debugowania koduZamCamp - Ciekawe sposoby debugowania kodu
ZamCamp - Ciekawe sposoby debugowania koduzamcamp
 
ZamCamp - Django – webowy framework dla perfekcjonistów
ZamCamp - Django – webowy framework dla perfekcjonistów ZamCamp - Django – webowy framework dla perfekcjonistów
ZamCamp - Django – webowy framework dla perfekcjonistów zamcamp
 
ZamCamp 2.1 - Opis i zachęta do programowanie w języku Ruby
ZamCamp 2.1 - Opis i zachęta do programowanie w języku RubyZamCamp 2.1 - Opis i zachęta do programowanie w języku Ruby
ZamCamp 2.1 - Opis i zachęta do programowanie w języku Rubyzamcamp
 
ZamCamp 2.1 - Zenity – okna dialogowe GTK+ z terminala
ZamCamp 2.1 - Zenity – okna dialogowe GTK+ z terminalaZamCamp 2.1 - Zenity – okna dialogowe GTK+ z terminala
ZamCamp 2.1 - Zenity – okna dialogowe GTK+ z terminalazamcamp
 
ZamCamp 2.1 - Wstępniak
ZamCamp 2.1 - WstępniakZamCamp 2.1 - Wstępniak
ZamCamp 2.1 - Wstępniakzamcamp
 
ZamCamp #6 - Podsumowanie Roku 2008
ZamCamp #6 - Podsumowanie Roku 2008ZamCamp #6 - Podsumowanie Roku 2008
ZamCamp #6 - Podsumowanie Roku 2008
zamcamp
 
ZamCamp #4 - Gry MMORPG
ZamCamp #4 - Gry MMORPGZamCamp #4 - Gry MMORPG
ZamCamp #4 - Gry MMORPG
zamcamp
 
ZamCamp #4 - O mikroblogowaniu slajdów kilka
ZamCamp #4 - O mikroblogowaniu slajdów kilkaZamCamp #4 - O mikroblogowaniu slajdów kilka
ZamCamp #4 - O mikroblogowaniu slajdów kilka
zamcamp
 
Podstawy fotografii cyfrowej - ZamCamp #3
Podstawy fotografii cyfrowej - ZamCamp #3Podstawy fotografii cyfrowej - ZamCamp #3
Podstawy fotografii cyfrowej - ZamCamp #3
zamcamp
 

More from zamcamp (9)

ZamCamp - Ciekawe sposoby debugowania kodu
ZamCamp - Ciekawe sposoby debugowania koduZamCamp - Ciekawe sposoby debugowania kodu
ZamCamp - Ciekawe sposoby debugowania kodu
 
ZamCamp - Django – webowy framework dla perfekcjonistów
ZamCamp - Django – webowy framework dla perfekcjonistów ZamCamp - Django – webowy framework dla perfekcjonistów
ZamCamp - Django – webowy framework dla perfekcjonistów
 
ZamCamp 2.1 - Opis i zachęta do programowanie w języku Ruby
ZamCamp 2.1 - Opis i zachęta do programowanie w języku RubyZamCamp 2.1 - Opis i zachęta do programowanie w języku Ruby
ZamCamp 2.1 - Opis i zachęta do programowanie w języku Ruby
 
ZamCamp 2.1 - Zenity – okna dialogowe GTK+ z terminala
ZamCamp 2.1 - Zenity – okna dialogowe GTK+ z terminalaZamCamp 2.1 - Zenity – okna dialogowe GTK+ z terminala
ZamCamp 2.1 - Zenity – okna dialogowe GTK+ z terminala
 
ZamCamp 2.1 - Wstępniak
ZamCamp 2.1 - WstępniakZamCamp 2.1 - Wstępniak
ZamCamp 2.1 - Wstępniak
 
ZamCamp #6 - Podsumowanie Roku 2008
ZamCamp #6 - Podsumowanie Roku 2008ZamCamp #6 - Podsumowanie Roku 2008
ZamCamp #6 - Podsumowanie Roku 2008
 
ZamCamp #4 - Gry MMORPG
ZamCamp #4 - Gry MMORPGZamCamp #4 - Gry MMORPG
ZamCamp #4 - Gry MMORPG
 
ZamCamp #4 - O mikroblogowaniu slajdów kilka
ZamCamp #4 - O mikroblogowaniu slajdów kilkaZamCamp #4 - O mikroblogowaniu slajdów kilka
ZamCamp #4 - O mikroblogowaniu slajdów kilka
 
Podstawy fotografii cyfrowej - ZamCamp #3
Podstawy fotografii cyfrowej - ZamCamp #3Podstawy fotografii cyfrowej - ZamCamp #3
Podstawy fotografii cyfrowej - ZamCamp #3
 

ZamCamp #6 - Najczęstsze błędy w PHP

  • 1. Czyli od Hello World do ZCE... Przemysław „eRIZ” Pawliczuk Zend Certified Engineer
  • 2. Błędy składni echo 'hello world'
  • 3. Brak wcięć w kodzie if($cond){ while(1){ for($a=0;$a<mt_rand(0,100);$a++){ echo 'hello world'; } } }
  • 4. Otwieranie skryptów PHP „dwuklikiem” file:///C:ocuments And settingssd ulpitkrypt.php
  • 5. Pseudo register_globals $x = $_POST['x']; $y = $_GET['y']; extract($_POST);
  • 6. Zmienne rozumiane wyłącznie przez autora echo $asd*$qwerty-$jakas+$flkj;
  • 7. Brak zrozumienia zasięgu zmiennych $str = 'Ala ma kota'; function pakazy(){ echo $str; } pakazy(); //zonk
  • 8. Próby wykonywania PHP po stronie przeglądarki <?PHP function funkcja(){ echo 'Hello world'; } ?> <a href=&quot;funkcja()&quot;>joł</a>
  • 9. Porównywanie float echo M_PI; //3.1415926535898 var_dump(M_PI==3.1415926535898); //false
  • 10. Wynajdywanie koła na nowo function pad_zeros($number, $zeros) { if (strpos($number, '.') !== false) { preg_match('#(+)$#', $number, $match); $number .= str_repeat('0', $zeros-strlen($match[1])); return $number; } else { return $number.'.'.str_repeat('0', $zeros); } } // ... // english notation without thousands seperator $english_format_number = number_format($number, 2, '.', '');
  • 11. Błąd #1 Warning: Cannot modify header information - headers already sent by
  • 12. Błąd #2 Type: [2048] date() [function.date]: It is not safe to rely on the system's timezone settings. Please use the date.timezone setting, the TZ environment variable or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Berlin' for 'CET/1.0/no DST' instead, line 154 of file /usr/local/apache/www/htdocs/artel-elektro.pl/classes/vMain.php RTFM!
  • 13. Błędy w rozumowaniu składni zmiennych echo HelloWorld; echo 'HelloWorld'; echo &quot;$zmienna&quot;; echo ''.$s_User.''
  • 14. Brak filtrowania danych require 'strony/'.$_GET['strona'];
  • 15. Mylenie generowanego kodu ze źródłem skryptu require 'http://example.com/script.php';
  • 16. Każdorazowe zliczanie elementów w pętli $str = 'Kot ma Alę'; for($a=0;$a<strlen($str);$a++){ echo chr(ord($str{$a})+2); } $c = strlen($str); for($a=0;$a<$c;$a++){ echo chr(ord($str{$a})+2); }
  • 17. Problem z prologiem XML echo '<?xml ... ?>';
  • 18. MySQL – syzyfowe wyciąganie danych $z = mysql_query('select * from asd'); echo $z['kolumna'];
  • 19. MySQL – nierozsądne pętle $z = mysql_query('select * from asd'); $ile = mysql_num_rows($z); for($a=0;$a<$ile;$a++){ //... }
  • 20. MySQL – inne mysql_free_result(); //ad stałych połączeń mysql_error();
  • 21. MySQL – inne - wciskanie wszystkiego w kolumny - utf8_polish_ci
  • 22. SQL Injection mysql_query('SELECT * FROM users WHERE login=&quot;'.$_POST['login'].'&quot; ... ');
  • 23.
  • 24. &quot;wszystko ładnie wygląda więc po co to zmianiac :D pozatym nie mam czasu na nauke, mam pelno zlecen i kase trzeba zarobic&quot;
  • 25. &quot;WIerz mi to nie byle jakie strony zreszta jak ktos pisze na tabelkach nie znaczy ze jest zle jak lubisz pisac na div-ach bo wszyscy tak pisza to good ja pisze jak mi wygodnie wale jak inni pisza byle mi sie dobrze kodzilo&quot;