<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1216529268767260259</id><updated>2024-10-24T16:45:18.213+02:00</updated><category term="SEO"/><category term="google map"/><category term="html coding"/><category term="javasscript programing"/><category term="mysql directives"/><category term="php"/><category term="search engine optimization"/><category term="syrius"/><category term="website"/><title type='text'>Syrius Watch</title><subtitle type='html'>All about HTML coding, Javascript programing, PHP, MySQL directives, Google MAP, Search engine optimization, etc.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://syrius-watch.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1216529268767260259/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://syrius-watch.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/06433202577470663960</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>9</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1216529268767260259.post-7286673578232803828</id><published>2015-03-19T09:30:00.001+01:00</published><updated>2015-03-19T09:42:34.957+01:00</updated><title type='text'>PHP class for database operations using mysqli object</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
. 


&lt;br /&gt;
&lt;div style=&quot;border: 1px solid silver; color: #8393ce; margin: 10px 0px 10px 20px; padding: 4px;&quot;&gt;
&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; class DataBaseHandler {&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp; private $hostname;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; private $username;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; private $password;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; private $database;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; private $charset;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; private $mysqli;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; private $USE_OF_information_schema_ENABLED = false;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; private $result = null;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp; // = CONSTRUCTOR = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =&lt;br /&gt;
&amp;nbsp;&amp;nbsp; public function __construct($database, $username, $password, $host=&#39;localhost&#39;, $port=3306, $charset=&quot;utf8&quot;) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; $this-&amp;gt;database = $database;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; $this-&amp;gt;username = $username;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; $this-&amp;gt;password = $password;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; $this-&amp;gt;hostname = $host.&#39;:&#39;.$port;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; $this-&amp;gt;charset  = $charset;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; $this-&amp;gt;connect();&lt;br /&gt;
&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp; // = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =&lt;br /&gt;
&amp;nbsp;&amp;nbsp; public function execute($sql) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; if(!($this-&amp;gt;result=$this-&amp;gt;mysqli-&amp;gt;query($this-&amp;gt;safeSql($sql)))) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $this-&amp;gt;error($this-&amp;gt;mysqli-&amp;gt;errno, $this-&amp;gt;mysqli-&amp;gt;error.&quot;&amp;lt;br&amp;gt;\nSQL = $sql&quot;);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; return $this-&amp;gt;result;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp; // = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =&lt;br /&gt;
&amp;nbsp;&amp;nbsp; public function getRecord($sql) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; $this-&amp;gt;execute($sql);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; return $this-&amp;gt;result-&amp;gt;getNext();&lt;br /&gt;
&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp; // = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =&lt;br /&gt;
&amp;nbsp;&amp;nbsp; public function getNext() {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; $i = error_reporting(0);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; $a = $this-&amp;gt;result-&amp;gt;fetch_assoc();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; if(mysqli_connect_error()) $this-&amp;gt;error(mysqli_connect_errno(), mysqli_connect_error());&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; error_reporting($i);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; return $a;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp; // = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =&lt;br /&gt;
&amp;nbsp;&amp;nbsp; public function seek($offset) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; $i = error_reporting(0);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; $this-&amp;gt;result-&amp;gt;data_seek($offset);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; if(mysqli_connect_error()) $this-&amp;gt;error(mysqli_connect_errno(), mysqli_connect_error());&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; error_reporting($i);&lt;br /&gt;
&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp; // = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =&lt;br /&gt;
&amp;nbsp;&amp;nbsp; public function newId() {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; $i = error_reporting(0);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; $insert_id = $this-&amp;gt;mysqli-&amp;gt;insert_id;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; if(mysqli_connect_error()) $this-&amp;gt;error(mysqli_connect_errno(), mysqli_connect_error());&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; error_reporting($i);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; return $insert_id;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp; // = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =&lt;br /&gt;
&amp;nbsp;&amp;nbsp; public function enableInformationSchema() {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; $this-&amp;gt;USE_OF_information_schema_ENABLED = true;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp; // = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp; // = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =&lt;br /&gt;
&amp;nbsp;&amp;nbsp; private function connect() {&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; $i = error_reporting(0);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; $this-&amp;gt;mysqli = new mysqli($this-&amp;gt;hostname, $this-&amp;gt;username, $this-&amp;gt;password, $this-&amp;gt;database);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; if(mysqli_connect_error()) $this-&amp;gt;error(mysqli_connect_errno(), mysqli_connect_error());&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; error_reporting($i);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; if(!$this-&amp;gt;mysqli-&amp;gt;set_charset($this-&amp;gt;charset)) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $this-&amp;gt;error($this-&amp;gt;mysqli-&amp;gt;errno, $this-&amp;gt;mysqli-&amp;gt;error);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; return true;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp; // = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =&lt;br /&gt;
&amp;nbsp;&amp;nbsp; private function error($code, $message) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; die(&quot;Error in DataBaseHandler&amp;lt;br&amp;gt;Error code = $code&amp;lt;br&amp;gt;\nMessage = $message&quot;);&lt;br /&gt;
&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp; // = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =&lt;br /&gt;
&amp;nbsp;&amp;nbsp; private function safeSql($sql) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; $malicious = 0;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; if($this-&amp;gt;USE_OF_information_schema_ENABLED) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Use of table &#39;information_schema&#39; is allowed only for OCMS supervisors&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // and only when $sys[&quot;USE_OF_information_schema_ENABLED&quot;] is set to TRUE! &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; else {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(preg_match(&quot;/(INFORMATION\_SCHEMA)/i&quot;,$sql,$m)) $malicious = 1;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; // In &#39;newsletters&#39; module sometimes somebody puts comments into the css codes.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; // These css codes system save in MySQL tables.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; // Because the /* */ characters may be detected as malicious codes we must eliminate these comments!&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; $sql = preg_replace(&quot;/\/\*[^\*\n\r]*\*\//&quot;, &quot;&quot;, $sql);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; if(preg_match(&quot;/(\/\*[^\*]*\*\/)/i&quot;,$sql,$m)) $malicious = 2;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; elseif(preg_match(&quot;/([\s]+SLEEP[\s]*\([\s]*[0-9]+[\s]*\))/i&quot;,$sql,$m)) $malicious = 3;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; elseif(strpos($sql,&quot;;&quot;)!==false) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // so, SQL has &#39;;&#39; character!&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(preg_match(&quot;/(DROP[\s]+TABLE)/i&quot;,$sql,$m)) $malicious = 4;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; elseif(preg_match(&quot;/(DROP[\s]+DATABASE)/i&quot;,$sql,$m)) $malicious = 5;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; elseif(preg_match(&quot;/(SHOW[\s]+TABLES)/i&quot;,$sql,$m)) $malicious = 6;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; elseif(preg_match(&quot;/(ALTER[\s]+TABLE)/i&quot;,$sql,$m)) $malicious = 7;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; elseif(preg_match(&quot;/(RENAME[\s]+TABLE)/i&quot;,$sql,$m)) $malicious = 8;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; elseif(preg_match(&quot;/(DELETE[\s]+FROM)/i&quot;,$sql,$m)) $malicious = 9;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; elseif(preg_match(&quot;/(DELETE[\s]+LOW_PRIORITY[\s]+FROM)/i&quot;,$sql,$m)) $malicious = 10;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; elseif(preg_match(&quot;/(DELETE[\s]+QUICK[\s]+FROM)/i&quot;,$sql,$m)) $malicious = 11;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; elseif(preg_match(&quot;/(DELETE[\s]+IGNORE[\s]+FROM)/i&quot;,$sql,$m)) $malicious = 12;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; elseif(preg_match(&quot;/(SHOW[\s]+VARIABLES)/i&quot;,$sql,$m)) $malicious = 13;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; elseif(preg_match(&quot;/(SHOW[\s]+GLOBAL[\s]+VARIABLES)/i&quot;,$sql,$m)) $malicious = 14;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; elseif(preg_match(&quot;/(SHOW[\s]+SESSION[\s]+VARIABLES)/i&quot;,$sql,$m)) $malicious = 15;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; elseif(preg_match(&quot;/(CREATE[\s]+TABLE)/i&quot;,$sql,$m)) $malicious = 16;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; elseif(preg_match(&quot;/(CREATE[\s]+TEMPORARY[\s]+TABLE)/i&quot;,$sql,$m)) $malicious = 17;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; elseif(preg_match(&quot;/(\;[\s]INSERT[\s]+INTO[\s]+)/i&quot;,$sql,$m)) $malicious = 18;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; elseif(preg_match(&quot;/(\;[\s]UPDATE[\s]+)/i&quot;,$sql,$m)) $malicious = 19;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; elseif(preg_match(&quot;/(\;[\s]SELECT[\s]+)/i&quot;,$sql,$m)) $malicious = 20;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; elseif(preg_match(&quot;/(\*\/[\s]INSERT[\s]+INTO[\s]+)/i&quot;,$sql,$m)) $malicious = 21;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; elseif(preg_match(&quot;/(\*\/[\s]UPDATE[\s]+)/i&quot;,$sql,$m)) $malicious = 22;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; elseif(preg_match(&quot;/(\*\/[\s]SELECT[\s]+)/i&quot;,$sql,$m)) $malicious = 23;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; if($malicious&amp;gt;0) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $this-&amp;gt;error(&quot;0&quot;, &quot;The progress has stopped by DataBaseHandler Security.&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;\n&quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .&quot;Malicious code = $malicious&amp;lt;br&amp;gt;Malicius part = &quot;.$m[1].&quot;&amp;lt;br&amp;gt;\n&quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .&quot;Malicius part (htmlspecialchars) = &quot;.htmlspecialchars($m[1])&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; );&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; return $sql;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp; // = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =&lt;br /&gt;
&amp;nbsp; }&lt;br /&gt;
?&amp;gt;
&lt;/div&gt;
Example:
&lt;br /&gt;
&lt;div style=&quot;border: 1px solid silver; color: #8393ce; margin: 10px 0px 10px 20px; padding: 4px;&quot;&gt;
&amp;lt;?php&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;require_once(&quot;DataBaseHandler.php&quot;);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; $db = new DataBaseHandler(&lt;span style=&quot;color: #bf9000;&quot;&gt;&lt;i&gt;my_database&lt;/i&gt;&lt;/span&gt;, &lt;span style=&quot;color: #bf9000;&quot;&gt;&lt;i&gt;my_username&lt;/i&gt;&lt;/span&gt;, &lt;i&gt;&lt;span style=&quot;color: #bf9000;&quot;&gt;my_password&lt;/span&gt;&lt;/i&gt;);&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;$db-&amp;gt;execute(&quot;SELECT * FROM &lt;span style=&quot;color: #bf9000;&quot;&gt;&lt;i&gt;my_table&lt;/i&gt;&lt;/span&gt;&quot;);&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;while($row=$db-&amp;gt;getNext()) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;echo $row[&quot;&lt;span style=&quot;color: #bf9000;&quot;&gt;&lt;i&gt;my_field&lt;/i&gt;&lt;/span&gt;&quot;].&quot;&amp;lt;br&amp;gt;\n&quot;;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;
?&amp;gt;&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://syrius-watch.blogspot.com/feeds/7286673578232803828/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://syrius-watch.blogspot.com/2015/03/php-class-for-database-operations-using.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1216529268767260259/posts/default/7286673578232803828'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1216529268767260259/posts/default/7286673578232803828'/><link rel='alternate' type='text/html' href='http://syrius-watch.blogspot.com/2015/03/php-class-for-database-operations-using.html' title='PHP class for database operations using mysqli object'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/06433202577470663960</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1216529268767260259.post-901711501017290431</id><published>2012-06-11T14:16:00.001+02:00</published><updated>2012-06-11T14:17:23.283+02:00</updated><title type='text'>stopPropagation vs. cancelBubble</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
There are many occasions when you have to override the default action of an event. The browser has to go through every single ancestor element of the event target to see if it has an event handler.&lt;br /&gt;
&lt;br /&gt;
For this reason we very often must stop the event propagation. Here is my function that I use to stop event propagation in every kind of web browser. 


&lt;br /&gt;
&lt;div style=&quot;border: 1px solid silver; color: #8393ce; margin: 10px 0px 10px 20px; padding: 4px;&quot;&gt;
&amp;lt;script type=&quot;text/javascript&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp; function StopEventPropagation(oEvent) {
&amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; if(!oEvent) oEvent = window.event;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; if(oEvent) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(typeof(oEvent.cancelBubble)==&quot;boolean&quot;) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oEvent.cancelBubble = true;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if(oEvent.stopPropagation) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oEvent.stopPropagation();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp; }&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;/div&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://syrius-watch.blogspot.com/feeds/901711501017290431/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://syrius-watch.blogspot.com/2012/06/stoppropagation-vs-cancelbubble.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1216529268767260259/posts/default/901711501017290431'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1216529268767260259/posts/default/901711501017290431'/><link rel='alternate' type='text/html' href='http://syrius-watch.blogspot.com/2012/06/stoppropagation-vs-cancelbubble.html' title='stopPropagation vs. cancelBubble'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/06433202577470663960</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1216529268767260259.post-4155557628817945189</id><published>2012-05-28T10:31:00.003+02:00</published><updated>2012-05-28T10:33:34.430+02:00</updated><title type='text'>Google Maps v.3 - routeplanner bug</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
I noticed a little bug in class google.maps.&lt;b&gt;DirectionsService&lt;/b&gt;.&lt;br /&gt;
In &lt;a href=&quot;https://developers.google.com/maps/documentation/javascript/reference&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;Google Maps Javascript API V3 Reference&lt;/a&gt; we can read this about &lt;b&gt;&lt;i&gt;destination&lt;/i&gt; &lt;/b&gt;(&lt;i&gt;and about origin&lt;/i&gt;) property:&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;color: #3d85c6;&quot;&gt;
&lt;i&gt;&quot;Location of destination. This can be specified as either a string to be geocoded or a LatLng. Required.&quot;&lt;/i&gt;&lt;/div&gt;
&lt;br /&gt;
But be careful! If you give coordinates in string the finally route will contains some differences from expected route. My suggestion is next to avoid this problem:&lt;br /&gt;
&lt;br /&gt;
aMatches = sDestination.match(/[a-z]*/i);&lt;br /&gt;
if(!aMatches.length || (aMatches.length==1 &amp;amp;&amp;amp; aMatches[0]==&quot;&quot;)) { // no letters in sDestination =&amp;gt; this contains only coordinates!&lt;br /&gt;
&amp;nbsp; var a = sDestination.split(&quot;,&quot;);&lt;br /&gt;
&amp;nbsp; var oDestination = new google.maps.LatLng(1.0*a[0], 1.0*a[1]);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
var request = { &lt;br /&gt;
&amp;nbsp; ...&lt;br /&gt;
&amp;nbsp; destination: oDestination ? oDestination : sDestination, &lt;br /&gt;
&amp;nbsp; ...&lt;br /&gt;
}; &lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://syrius-watch.blogspot.com/feeds/4155557628817945189/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://syrius-watch.blogspot.com/2012/05/google-maps-v3-routeplanner-bug.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1216529268767260259/posts/default/4155557628817945189'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1216529268767260259/posts/default/4155557628817945189'/><link rel='alternate' type='text/html' href='http://syrius-watch.blogspot.com/2012/05/google-maps-v3-routeplanner-bug.html' title='Google Maps v.3 - routeplanner bug'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/06433202577470663960</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1216529268767260259.post-4490898465023557007</id><published>2012-05-25T15:20:00.001+02:00</published><updated>2012-05-25T15:20:50.527+02:00</updated><title type='text'>Szívdobbanás... A kardiológia múltja és jelene</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
Budapesten, a Semmelweis Orvostörténeti Múzeumban nemrég (május 14-én) nyílt meg ez a kiállítás, amely ez év október 31-ig várja a látogatókat.&lt;br /&gt;
&lt;br /&gt;
A kiállítás nem titkolt szándéka az is, hogy még több emberben tudatosuljon: a technika és a tudomány fejlődésének nagyon sokat köszönhetünk, de mindez nem elég, ha mi magunk nem érzünk felelősséget saját egészségünk iránt. A tárlat felhívja a figyelmünket a szív- és érrendszeri betegségek minden aspektusára.&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://syrius-watch.blogspot.com/feeds/4490898465023557007/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://syrius-watch.blogspot.com/2012/05/szivdobbanas-kardiologia-multja-es.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1216529268767260259/posts/default/4490898465023557007'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1216529268767260259/posts/default/4490898465023557007'/><link rel='alternate' type='text/html' href='http://syrius-watch.blogspot.com/2012/05/szivdobbanas-kardiologia-multja-es.html' title='Szívdobbanás... A kardiológia múltja és jelene'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/06433202577470663960</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1216529268767260259.post-8983189561913010868</id><published>2012-05-23T10:09:00.002+02:00</published><updated>2012-05-23T10:14:02.892+02:00</updated><title type='text'>How can I add event handler to a html object?</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
Each HTML object has many event handler (onclick, onkeyup, onfocus, etc.) Sometimes we need to execute own routines when an event occurs. How can we assign our function to the event handler?&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;1. &lt;/b&gt;The simplest case is that when we can directly assign our function to the handler of an element: &lt;br /&gt;
&lt;div style=&quot;border: 1px solid silver; color: #8393ce; margin: 10px 0px 10px 20px; padding: 4px;&quot;&gt;
&amp;lt;script type=&quot;text/javascript&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp; document.body.onclick = function() { alert(&#39;Hello World&#39;); };&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;center&gt;
&lt;input onclick=&quot;return Check001();&quot; type=&quot;button&quot; value=&quot;Try this&quot; /&gt;
&lt;/center&gt;

&lt;script type=&quot;text/javascript&quot;&gt;
  function Check001() {
    var sContent = &quot;&lt;!DOCTYPE HTML PUBLIC \&quot;-//W3C//DTD HTML 4.01 Transitional//EN\&quot;&gt;\n&quot;
      + &quot;&lt;html&gt;\n&quot;
      + &quot;&lt;head&gt;\n&quot;
      + &quot;&lt;title&gt;Click test&lt;/title&gt;\n&quot;
      + &quot;&lt;/head&gt;\n&quot;
      + &quot;&lt;body&gt;\n&quot;
      + &quot;&lt;sc&quot; + &quot;ript type=\&quot;text/javascript\&quot;&gt;\n&quot;
      + &quot;document.body.onclick = function() { alert(&#39;Hello World&#39;); };\n&quot;
      + &quot;&lt;/sc&quot; + &quot;ript&gt;\n&quot;
      + &quot;&lt;center&gt;\n&quot;
      + &quot;Click on me.\n&quot;
      + &quot;&lt;/center&gt;\n&quot;
      + &quot;&lt;/body&gt;\n&quot;
      + &quot;&lt;/html&gt;&quot;;
    var oPopup = window.open(&quot;&quot;,&quot;click_test1&quot;,&quot;width=300,height=150,toolbar=no,titlebar=no,status=no,scrollbars=no,resizable=no,menubar=no,location=no&quot;);
    oPopup.document.open();
    oPopup.document.write(sContent);
    oPopup.document.close();
  }
&lt;/script&gt;
&lt;/div&gt;
&lt;b&gt;2. &lt;/b&gt;But when our function is bigger and moreover, we must assign it to more event hadlers the solution above is not effective. Then we must define our function normally and assign its pointer to the event hadlers.&lt;br /&gt;
In this case I use MyAddEvent() function defined below. With this function I can attach my special event handler (&lt;i&gt;attribute: pFunctionPointer&lt;/i&gt;) to any DHTML element (&lt;i&gt;attribute: oElement&lt;/i&gt;).&lt;br /&gt;
&lt;div style=&quot;border: 1px solid silver; color: #8393ce; margin: 10px 0px 10px 20px; padding: 4px;&quot;&gt;
&amp;lt;script type=&quot;text/javascript&quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; function MyAddEvent(oElement, sEventName, pFunctionPointer) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;   sEventName = sEventName.replace(/^on/,&#39;&#39;);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;   if(document.all) oElement.attachEvent(&#39;on&#39;+sEventName, pFunctionPointer);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;   else oElement.addEventListener(sEventName, pFunctionPointer, true );&lt;br /&gt;
&amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; function MyFunction(oEvent) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;   var oInput = document.getElementById(&#39;myinput&#39;);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;   oInput.value += &#39;=&#39;;&lt;br /&gt;
&amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; function MyOnLoad() {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;   var oInput = document.getElementById(&#39;myinput&#39;);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;   MyAddEvent(oInput, &#39;keydown&#39;, MyFunction);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;   MyAddEvent(oInput, &#39;blur&#39;, MyFunction);&lt;br /&gt;
&amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;center&gt;
&lt;input onclick=&quot;return Check002();&quot; type=&quot;button&quot; value=&quot;Try this&quot; /&gt;
&lt;/center&gt;

&lt;script type=&quot;text/javascript&quot;&gt;
  function Check002() {
   var sContent = &quot;&lt;!DOCTYPE HTML PUBLIC \&quot;-//W3C//DTD HTML 4.01 Transitional//EN\&quot;&gt;\n&quot;
      + &quot;&lt;html&gt;\n&quot;
      + &quot;&lt;head&gt;\n&quot;
      + &quot;&lt;title&gt;Click test&lt;/title&gt;\n&quot;
      + &quot;&lt;sc&quot; + &quot;ript type=\&quot;text/javascript\&quot;&gt;\n&quot;
      + &quot;  function MyAddEvent(oElement, sEventName, pFunctionPointer) {\n&quot;
      + &quot;    sEventName = sEventName.replace(/^on/,&#39;&#39;);\n&quot;
      + &quot;    if(document.all) oElement.attachEvent(&#39;on&#39;+sEventName, pFunctionPointer);\n&quot;
      + &quot;    else oElement.addEventListener(sEventName, pFunctionPointer, true );\n&quot;
      + &quot;  }\n&quot;
      + &quot;  function MyFunction(oEvent) {\n&quot;
      + &quot;    var oInput = document.getElementById(&#39;myinput&#39;);\n&quot;
      + &quot;    oInput.value += &#39;=&#39;;\n&quot;
      + &quot;  }\n&quot;
      + &quot;  function MyOnLoad() {\n&quot;
      + &quot;    var oInput = document.getElementById(&#39;myinput&#39;);\n&quot;
      + &quot;    MyAddEvent(oInput, &#39;keydown&#39;, MyFunction);\n&quot;
      + &quot;    MyAddEvent(oInput, &#39;blur&#39;, MyFunction);\n&quot;
      + &quot;  }\n&quot;
      + &quot;&lt;/sc&quot; + &quot;ript&gt;\n&quot;
      + &quot;&lt;/head&gt;\n&quot;
      + &quot;&lt;body onload=&#39;MyOnLoad()&#39;&gt;\n&quot;
      + &quot;&lt;center&gt;\n&quot;
      + &quot;  When you write something it will be complete with the character &#39;=&#39;:\n&quot;
      + &quot;  &lt;form&gt;\n&quot;
      + &quot;  &lt;input type=&#39;text&#39; size=&#39;20&#39; id=&#39;myinput&#39;&gt;\n&quot;
      + &quot;  &lt;/form&gt;\n&quot;
      + &quot;&lt;/center&gt;\n&quot;
      + &quot;&lt;/body&gt;\n&quot;
      + &quot;&lt;/html&gt;&quot;;
    var oPopup = window.open(&quot;&quot;,&quot;click_test2&quot;,&quot;width=500,height=150,toolbar=no,titlebar=no,status=no,scrollbars=no,resizable=no,menubar=no,location=no&quot;);
    oPopup.document.open();
    oPopup.document.write(sContent);
    oPopup.document.close();
  }
&lt;/script&gt;
&lt;/div&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://syrius-watch.blogspot.com/feeds/8983189561913010868/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://syrius-watch.blogspot.com/2012/05/how-can-i-add-event-handler-to-html.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1216529268767260259/posts/default/8983189561913010868'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1216529268767260259/posts/default/8983189561913010868'/><link rel='alternate' type='text/html' href='http://syrius-watch.blogspot.com/2012/05/how-can-i-add-event-handler-to-html.html' title='How can I add event handler to a html object?'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/06433202577470663960</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1216529268767260259.post-8504226172507232932</id><published>2012-05-22T09:11:00.001+02:00</published><updated>2012-05-22T09:23:50.517+02:00</updated><title type='text'>How can I get the client&#39;s browser height?</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
If you are a javascript programmer surely you&#39;ve met the problem about calculating client&#39;s browser height (&lt;i&gt;clientHeight&lt;/i&gt;) in different browser types.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;1. &lt;/b&gt;What tells you the HTML specification (&lt;i&gt;DHTML Object Model, HTML DOM&lt;/i&gt;)? The solution seems to be simple:

&lt;br /&gt;
&lt;div style=&quot;border: 1px solid silver; color: #8393ce; margin: 10px 0px 10px 20px; padding: 4px;&quot;&gt;
&amp;lt;script type=&quot;text/javascript&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp; var iHeight = document.body.clientHeight;&lt;br /&gt;
&amp;nbsp; alert(&quot;The (inner) height of your browser is &quot; + iHeight + &quot;px&quot;);&lt;br /&gt;
&amp;lt;/script&amp;gt;

&lt;br /&gt;
&lt;br /&gt;
&lt;center&gt;
&lt;input onclick=&quot;return Check001();&quot; type=&quot;button&quot; value=&quot;Try this&quot; /&gt;
&lt;/center&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
  var iHeight1 = document.body.clientHeight;
  function Check001() {
    alert(&quot;The (inner) height of your browser is &quot; + iHeight1 + &quot;px&quot;);
    return false;
  }
&lt;/script&gt;
&lt;/div&gt;
&lt;b&gt;2. &lt;/b&gt;But sometimes this solution can give you inappropriate result. The best way (&lt;i&gt;what I use always&lt;/i&gt;) is the next:
&lt;br /&gt;
&lt;div style=&quot;border: 1px solid silver; color: #8393ce; margin: 10px 0px 10px 20px; padding: 4px;&quot;&gt;
&amp;lt;script type=&quot;text/javascript&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp; var iHeight = window.innerHeight ? window.innerHeight : document.documentElement.clientHeight ? document.documentElement.clientHeight : document.body.clientHeight;&lt;br /&gt;
&amp;nbsp; alert(&quot;The (inner) height of your browser is &quot; + iHeight + &quot;px&quot;);&lt;br /&gt;
&amp;lt;/script&amp;gt;

&lt;br /&gt;
&lt;br /&gt;
&lt;center&gt;
&lt;input onclick=&quot;return Check002();&quot; type=&quot;button&quot; value=&quot;Try this&quot; /&gt;
&lt;/center&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
  var iHeight2 = window.innerHeight ? window.innerHeight : document.documentElement.clientHeight ? document.documentElement.clientHeight : document.body.clientHeight;
  function Check002() {
    alert(&quot;The (inner) height of your browser is &quot; + iHeight2 + &quot;px&quot;);
    return false;
  }
&lt;/script&gt;
&lt;/div&gt;
&lt;b&gt;3. &lt;/b&gt;Using &lt;a href=&quot;http://api.jquery.com/&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;jQuery&lt;/a&gt; &lt;b&gt;height()&lt;/b&gt; style property (&lt;i&gt;or method&lt;/i&gt;):
&lt;br /&gt;
&lt;div style=&quot;border: 1px solid silver; color: #8393ce; margin: 10px 0px 10px 20px; padding: 4px;&quot;&gt;
&amp;lt;script type=&quot;text/javascript&quot; src=&quot;http://code.jquery.com/jquery-latest.js&quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script type=&quot;text/javascript&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp; var iHeight = $(window).height();&lt;br /&gt;
&amp;nbsp; alert(&quot;The (inner) height of your browser is &quot; + iHeight + &quot;px&quot;);&lt;br /&gt;
&amp;lt;/script&amp;gt;

&lt;br /&gt;
&lt;br /&gt;
&lt;center&gt;
&lt;input onclick=&quot;return Check003();&quot; type=&quot;button&quot; value=&quot;Try this&quot; /&gt;
&lt;/center&gt;

&lt;script src=&quot;http://code.jquery.com/jquery-latest.js&quot; type=&quot;text/javascript&quot;&gt;
&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
  var iHeight3 = $(window).height();
  function Check003() {
    alert(&quot;The (inner) height of your browser is &quot; + iHeight3 + &quot;px&quot;);
    return false;
  }
&lt;/script&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://syrius-watch.blogspot.com/feeds/8504226172507232932/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://syrius-watch.blogspot.com/2012/05/how-can-i-get-clients-browser-height.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1216529268767260259/posts/default/8504226172507232932'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1216529268767260259/posts/default/8504226172507232932'/><link rel='alternate' type='text/html' href='http://syrius-watch.blogspot.com/2012/05/how-can-i-get-clients-browser-height.html' title='How can I get the client&#39;s browser height?'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/06433202577470663960</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1216529268767260259.post-7830641383487222388</id><published>2012-05-21T14:57:00.003+02:00</published><updated>2012-05-30T21:30:44.648+02:00</updated><title type='text'>How can I detect client&#39;s browser type with JavaScript?</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
Many times for JavaScript developers is necessary to detect the type and the version of the client&#39;s (&lt;i&gt;in other words: user&#39;s or visitor&#39;s&lt;/i&gt;) browser.
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;1. &lt;/b&gt;Usually it&#39;s enough to detect is the browser MS IExplorer or not. In this case, you can use the next code:
&lt;br /&gt;
&lt;div style=&quot;border: 1px solid silver; color: #8393ce; margin: 10px 0px 10px 20px; padding: 4px;&quot;&gt;
&amp;lt;script type=&quot;text/javascript&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp; var bIsItMSIE = document.all ? true : false;&lt;br /&gt;
&amp;nbsp; alert(&quot;Your browser is &quot; + (bIsItMSIE ? &quot;&quot; : &quot;not&quot;) + &quot; MS Internet Explorer&quot;);&lt;br /&gt;
&amp;lt;/script&amp;gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;center&gt;
&lt;input onclick=&quot;return Check001();&quot; type=&quot;button&quot; value=&quot;Try this&quot; /&gt;
&lt;/center&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
  var bIsItMSIE = document.all ? true : false;
  function Check001() {
    alert(&quot;Check001\nYour browser is &quot; + (bIsItMSIE ? &quot;&quot; : &quot;not&quot;) + &quot; MS Internet Explorer&quot;);
    return false;
  }
&lt;/script&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;2. &lt;/b&gt;If you like to use the most simplest way try this code (&lt;i&gt;The Navigator object contains all information about the visitor&#39;s browser&lt;/i&gt;):
&lt;br /&gt;
&lt;div style=&quot;border: 1px solid silver; color: #8393ce; margin: 10px 0px 10px 20px; padding: 4px;&quot;&gt;
&amp;lt;script type=&quot;text/javascript&quot;&amp;gt;&lt;br /&gt;
alert(&quot;Browser CodeName: &quot; + navigator.appCodeName&lt;br /&gt;
&amp;nbsp; + &quot;\nBrowser Name: &quot; + navigator.appName&lt;br /&gt;
&amp;nbsp;  + &quot;\nBrowser Version: &quot; + navigator.appVersion&lt;br /&gt;
&amp;nbsp;  + &quot;\nCookies Enabled: &quot; + navigator.cookieEnabled&lt;br /&gt;
&amp;nbsp;  + &quot;\nPlatform: &quot; + navigator.platform&lt;br /&gt;
&amp;nbsp;  + &quot;\nUser-agent header: &quot; + navigator.userAgent);&lt;br /&gt;
&amp;lt;/script&amp;gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;center&gt;
&lt;input onclick=&quot;return Check002();&quot; type=&quot;button&quot; value=&quot;Try this&quot; /&gt;
&lt;/center&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
  function Check002() {
    alert(&quot;Check002\nBrowser CodeName: &quot; + navigator.appCodeName
      + &quot;\nBrowser Name: &quot; + navigator.appName
      + &quot;\nBrowser Version: &quot; + navigator.appVersion
      + &quot;\nCookies Enabled: &quot; + navigator.cookieEnabled
      + &quot;\nPlatform: &quot; + navigator.platform
      + &quot;\nUser-agent header: &quot; + navigator.userAgent);
    return false;
  }
&lt;/script&gt; 
&lt;/div&gt;
&lt;br /&gt;
&lt;b&gt;3. &lt;/b&gt;If you want to get more detailed information you can use the code below:
&lt;br /&gt;
&lt;div style=&quot;border: 1px solid silver; color: #8393ce; margin: 10px 0px 10px 20px; padding: 4px;&quot;&gt;
&amp;lt;script type=&quot;text/javascript&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp; var sUserAgent = window.navigator.userAgent; &lt;br /&gt;
&amp;nbsp; if(/Firefox[\/\s](\d+\.\d+)/.test(sUserAgent)) sBrowserName = &quot;Firefox&quot;;&lt;br /&gt;
&amp;nbsp; else if(/MSIE[\/\s](\d+\.\d+)/.test(sUserAgent)) sBrowserName = &quot;MSIE&quot;;&lt;br /&gt;
&amp;nbsp; else if(/Opera[\/\s](\d+\.\d+)/.test(sUserAgent)) sBrowserName = &quot;Opera&quot;;&lt;br /&gt;
&amp;nbsp; else if(/Chrome[\/\s](\d+\.\d+)/.test(sUserAgent)) sBrowserName = &quot;Chrome&quot;;&lt;br /&gt;
&amp;nbsp; else if(/Version\/(\d+\.\d+)\s+Safari/.test(sUserAgent)) sBrowserName = &quot;Safari&quot;;&lt;br /&gt;
&amp;nbsp; a = RegExp.$1.split(/\./);&lt;br /&gt;
&amp;nbsp; if(a &amp;amp;&amp;amp; a.length) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; sBrowserVersionMajor = a[0];&lt;br /&gt;
&amp;nbsp; &amp;nbsp; sBrowserVersionMinor = a[1];&lt;br /&gt;
&amp;nbsp; }&lt;br /&gt;
&amp;nbsp; alert(&quot;Your browser is &quot; + sBrowserName + &quot; &quot; + sBrowserVersionMajor + &quot;.&quot; + sBrowserVersionMinor); &lt;br /&gt;
&amp;lt;/script&amp;gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;center&gt;
&lt;input onclick=&quot;return Check003();&quot; type=&quot;button&quot; value=&quot;Try this&quot; /&gt;
&lt;/center&gt;

&lt;script type=&quot;text/javascript&quot;&gt;
  var sUserAgent = window.navigator.userAgent;
  if(/Firefox[\/\s](\d+\.\d+)/.test(sUserAgent)) sBrowserName = &quot;Firefox&quot;;
  else if(/MSIE[\/\s](\d+\.\d+)/.test(sUserAgent)) sBrowserName = &quot;MSIE&quot;;
  else if(/Opera[\/\s](\d+\.\d+)/.test(sUserAgent)) sBrowserName = &quot;Opera&quot;;
  else if(/Chrome[\/\s](\d+\.\d+)/.test(sUserAgent)) sBrowserName = &quot;Chrome&quot;;
  else if(/Version\/(\d+\.\d+)\s+Safari/.test(sUserAgent)) sBrowserName = &quot;Safari&quot;;
  a = RegExp.$1.split(/\./);
  if(a &amp;&amp; a.length) {
    sBrowserVersionMajor = a[0];
    sBrowserVersionMinor = a[1];
  }
  function Check003() {
    alert(&quot;Check003\nYour browser is &quot; + sBrowserName + &quot; &quot; + sBrowserVersionMajor + &quot;.&quot; + sBrowserVersionMinor);
    return false;
  }
&lt;/script&gt; 
&lt;/div&gt;
In code above the name of the browser is defined with variable &lt;i style=&quot;color: #8393ce;&quot;&gt;sBrowserName&lt;/i&gt;. The browser&#39;s version number is defined with variable &lt;i style=&quot;color: #8393ce;&quot;&gt;sBrowserVersionMajor.&amp;nbsp; &lt;/i&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;4. &lt;/b&gt;And the end let me to introduce how to detect client&#39;s browser type and version with &lt;a href=&quot;http://api.jquery.com/&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;jQuery&lt;/a&gt;. For this action you must use the Global jQuery Object &lt;b&gt;jQuery.browser&lt;/b&gt;.&lt;br /&gt;
I put here a little sample but - attention - this code is &lt;span class=&quot;short_text&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;not at all&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;reliable&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;short_text&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;!&lt;/span&gt;&lt;/span&gt; &lt;br /&gt;
&lt;div style=&quot;border: 1px solid silver; color: #8393ce; margin: 10px 0px 10px 20px; padding: 4px;&quot;&gt;
&amp;lt;script type=&quot;text/javascript&quot; src=&quot;http://code.jquery.com/jquery-latest.js&quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script type=&quot;text/javascript&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp; var sBrowserName  = &quot;&quot;;&lt;br /&gt;
&amp;nbsp; var sBrowserVersion = &quot;&quot;;&lt;br /&gt;
&amp;nbsp; jQuery.each(jQuery.browser, function(sIndex, sValue) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; if(sIndex==&quot;version&quot;) sBrowserVersion = sValue;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; else if(sValue==true) sBrowserName = sIndex;&lt;br /&gt;
&amp;nbsp; });&lt;br /&gt;
&amp;nbsp; function Check004() {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; alert(&quot;Your browser is &quot; + sBrowserName + &quot; &quot; + sBrowserVersion);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; return false;&lt;br /&gt;
&amp;nbsp; }&lt;br /&gt;
&amp;lt;/script&amp;gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;center&gt;
&lt;input onclick=&quot;return Check004();&quot; type=&quot;button&quot; value=&quot;Try this&quot; /&gt;
&lt;/center&gt;
&lt;script src=&quot;http://code.jquery.com/jquery-latest.js&quot; type=&quot;text/javascript&quot;&gt;
&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
  var jQuery_sBrowserName  = &quot;&quot;;
  var jQuery_sBrowserVersion = &quot;&quot;;
  jQuery.each(jQuery.browser, function(sIndex, sValue) {
    if(sIndex==&quot;version&quot;) jQuery_sBrowserVersion = sValue;
    else if(sValue==true) jQuery_sBrowserName = sIndex;
  });
  function Check004() {
    alert(&quot;Check004\nYour browser is &quot; + jQuery_sBrowserName + &quot; &quot; + jQuery_sBrowserVersion );
    return false;
  }
&lt;/script&gt;
&lt;/div&gt;
Take care to notice that last code detects that your browser is &quot;mozilla&quot; - even if your browser is Firefox in fact! And it detects &quot;safari&quot; even if your browser is Google Chrome. :)&lt;span class=&quot;short_text&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;hr noshade=&quot;noshade&quot; size=&quot;1&quot; width=&quot;80%&quot; /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;center&gt;I like to use solution number 3 (&lt;i&gt;above&lt;/i&gt;) because &lt;span class=&quot;short_text&quot; id=&quot;result_box&quot; lang=&quot;en&quot;&gt;&lt;span class=&quot;hps&quot;&gt;all&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;things are&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;&quot;in my hand&quot;.&lt;/span&gt;&lt;/span&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwDc_TQ2IOKlACewEWanC88JfKk4u7unjMDY9xVZPtSB-e9u4lwV8iDla5qdTAyJ4gG0oPqn_Pm9H9v5XHVm6GwvOnsq1pAeUVoZijtyjZNIkERwd4ANUqSWPtS3g2Lcv9SuA51QrhHdg/s1600/17.gif&quot; imageanchor=&quot;1&quot;&gt;&lt;img align=&quot;absmiddle&quot; border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwDc_TQ2IOKlACewEWanC88JfKk4u7unjMDY9xVZPtSB-e9u4lwV8iDla5qdTAyJ4gG0oPqn_Pm9H9v5XHVm6GwvOnsq1pAeUVoZijtyjZNIkERwd4ANUqSWPtS3g2Lcv9SuA51QrhHdg/s1600/17.gif&quot; /&gt;&lt;/a&gt;
&lt;br /&gt;
&amp;nbsp;
&lt;/center&gt;

 &lt;/div&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://syrius-watch.blogspot.com/feeds/7830641383487222388/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://syrius-watch.blogspot.com/2012/05/how-can-i-detect-browser-type-with.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1216529268767260259/posts/default/7830641383487222388'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1216529268767260259/posts/default/7830641383487222388'/><link rel='alternate' type='text/html' href='http://syrius-watch.blogspot.com/2012/05/how-can-i-detect-browser-type-with.html' title='How can I detect client&#39;s browser type with JavaScript?'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/06433202577470663960</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwDc_TQ2IOKlACewEWanC88JfKk4u7unjMDY9xVZPtSB-e9u4lwV8iDla5qdTAyJ4gG0oPqn_Pm9H9v5XHVm6GwvOnsq1pAeUVoZijtyjZNIkERwd4ANUqSWPtS3g2Lcv9SuA51QrhHdg/s72-c/17.gif" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1216529268767260259.post-8562094027713877175</id><published>2012-05-17T20:35:00.001+02:00</published><updated>2012-05-18T08:57:17.461+02:00</updated><title type='text'>Javascript programing</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg19Jok2pxIlXd1Aw2MECVk86Lm0ZBVf7CmYyI61en3yzN70Y5hQlj3R-oYNdI_j57H1VblgRZ6L1zAyawKBK-Y4f3pFPZvco_g7k5xac4dwAbKuRAGymwnqeH3KI9zZI1wWBRMHSHPsS8/s1600/js3.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;80&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg19Jok2pxIlXd1Aw2MECVk86Lm0ZBVf7CmYyI61en3yzN70Y5hQlj3R-oYNdI_j57H1VblgRZ6L1zAyawKBK-Y4f3pFPZvco_g7k5xac4dwAbKuRAGymwnqeH3KI9zZI1wWBRMHSHPsS8/s200/js3.jpg&quot; width=&quot;95&quot; /&gt;&lt;/a&gt;

JavaScript is an ECMAScript language standard. It is primarily used in the web pages in order to provide enhanced user interfaces and dynamic websites. Does not require a compiler for client-side implementations. JavaScript uses syntax influenced by that of C. JavaScript copies many names and naming conventions from Java.&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgTjQgqjmvs48SAUPdeOocT2xtUzfbDgZ63PyIDLqEc_qmYkjzE-jPia1aG_2jL6UTJ-XPmlmpqbidsd5h1ymPDFuN78f8-t8UXV70Xs-GzAkt5rD4AWLZMJHlfSG89Cg_gWXeUT7a7_A/s1600/js4.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;80&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgTjQgqjmvs48SAUPdeOocT2xtUzfbDgZ63PyIDLqEc_qmYkjzE-jPia1aG_2jL6UTJ-XPmlmpqbidsd5h1ymPDFuN78f8-t8UXV70Xs-GzAkt5rD4AWLZMJHlfSG89Cg_gWXeUT7a7_A/s200/js4.jpg&quot; width=&quot;95&quot; /&gt;&lt;/a&gt;

Today the JavaScript is the most popular scripting language on the internet, and works in all major browsers, such as Internet Explorer, Firefox, Chrome, Opera, and Safari. It is a scripting language with a very simple syntax! Almost anyone can put small &quot;snippets&quot; of code into their HTML pages. I can recommended for beginners to visit next site:
&lt;/div&gt;
&lt;ul style=&quot;margin-left: 120px; text-align: left;&quot;&gt;
&lt;li&gt;&lt;a href=&quot;http://www.w3schools.com/js/js_howto.asp&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;w3schools.com - JavaScript How To&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://syrius-watch.blogspot.com/feeds/8562094027713877175/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://syrius-watch.blogspot.com/2012/05/javascript-programing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1216529268767260259/posts/default/8562094027713877175'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1216529268767260259/posts/default/8562094027713877175'/><link rel='alternate' type='text/html' href='http://syrius-watch.blogspot.com/2012/05/javascript-programing.html' title='Javascript programing'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/06433202577470663960</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg19Jok2pxIlXd1Aw2MECVk86Lm0ZBVf7CmYyI61en3yzN70Y5hQlj3R-oYNdI_j57H1VblgRZ6L1zAyawKBK-Y4f3pFPZvco_g7k5xac4dwAbKuRAGymwnqeH3KI9zZI1wWBRMHSHPsS8/s72-c/js3.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1216529268767260259.post-8478679783637135876</id><published>2012-05-17T09:35:00.010+02:00</published><updated>2012-05-17T19:56:13.882+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="google map"/><category scheme="http://www.blogger.com/atom/ns#" term="html coding"/><category scheme="http://www.blogger.com/atom/ns#" term="javasscript programing"/><category scheme="http://www.blogger.com/atom/ns#" term="mysql directives"/><category scheme="http://www.blogger.com/atom/ns#" term="php"/><category scheme="http://www.blogger.com/atom/ns#" term="search engine optimization"/><category scheme="http://www.blogger.com/atom/ns#" term="SEO"/><category scheme="http://www.blogger.com/atom/ns#" term="syrius"/><category scheme="http://www.blogger.com/atom/ns#" term="website"/><title type='text'>Welcome to Syrius Watch</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
15 years in business and here is my first post. I&#39;m Syrius, programmer, designer and... (&lt;i&gt;to some degree&lt;/i&gt;) philosopher. Thank you so much for your time and the privilege of having a meeting with you at my blog.&lt;br /&gt;
&lt;br /&gt;
What about the blog? Let me see... I will try to describe my trip across the cyberspace best I can. And I also want to give you all my experience that I got in past 15 years:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;about HTML coding&lt;/li&gt;
&lt;li&gt;about Javascript programing&lt;/li&gt;
&lt;li&gt;about PHP&lt;/li&gt;
&lt;li&gt;about using MySQL directives&lt;/li&gt;
&lt;li&gt;about Google MAP&lt;/li&gt;
&lt;li&gt;and about website optimization&amp;nbsp; - or in other words, about Search engine optimization (SEO)&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://syrius-watch.blogspot.com/feeds/8478679783637135876/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://syrius-watch.blogspot.com/2012/05/welcome-to-syrius-watch.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1216529268767260259/posts/default/8478679783637135876'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1216529268767260259/posts/default/8478679783637135876'/><link rel='alternate' type='text/html' href='http://syrius-watch.blogspot.com/2012/05/welcome-to-syrius-watch.html' title='Welcome to Syrius Watch'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/06433202577470663960</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>