<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Fernando Softov &#187; php</title>
	<atom:link href="http://www.softov.com.br/blog/cat/php/feed" rel="self" type="application/rss+xml" />
	<link>http://www.softov.com.br/blog</link>
	<description>Só mais um blog do WordPress</description>
	<lastBuildDate>Wed, 01 Sep 2010 04:41:42 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Desenvolvimento Web na Prática 02 &#8211; Iniciando com PHP</title>
		<link>http://www.softov.com.br/blog/post/124/desenvolvimento-web-na-pratica-02-iniciando-com-php</link>
		<comments>http://www.softov.com.br/blog/post/124/desenvolvimento-web-na-pratica-02-iniciando-com-php#comments</comments>
		<pubDate>Wed, 01 Sep 2010 04:41:42 +0000</pubDate>
		<dc:creator>fernandosoftov</dc:creator>
				<category><![CDATA[Dicas]]></category>
		<category><![CDATA[Video Aulas]]></category>
		<category><![CDATA[desenvolvimento web]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.softov.com.br/blog/?p=124</guid>
		<description><![CDATA[Bem galera, demorou mas está ai, para começar um pequena introdução sobre o php. Bom, eu cortei o vídeo em 3 partes por causa do you tube, mas os próximo vídeos terã 15 minutos e abordarei somente um tema. Estarei postando também alguns artigos e tutoriais em forma de texto. Quando eu fizer algum vídeo [...]]]></description>
			<content:encoded><![CDATA[<p>Bem galera, demorou mas está ai, para começar um pequena introdução sobre o php.</p>
<p>Bom, eu cortei o vídeo em 3 partes por causa do you tube, mas os próximo vídeos terã 15 minutos e abordarei somente um tema.</p>
<p>Estarei postando também alguns artigos e tutoriais em forma de texto.</p>
<p>Quando eu fizer algum vídeo que tenha exemplos, colocarei o download dos demos no final do post. Espero que gostem e até o próximo post!</p>
<p>Parte 01</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="350" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://www.youtube.com/v/I21uQ31M-mI" /><embed type="application/x-shockwave-flash" width="425" height="350" src="http://www.youtube.com/v/I21uQ31M-mI"></embed></object></p>
<p>Parte 02</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="350" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://www.youtube.com/v/e384R1ghe9M" /><embed type="application/x-shockwave-flash" width="425" height="350" src="http://www.youtube.com/v/e384R1ghe9M"></embed></object></p>
<p>Parte 03</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="350" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://www.youtube.com/v/xNf9VQtcIyw" /><embed type="application/x-shockwave-flash" width="425" height="350" src="http://www.youtube.com/v/xNf9VQtcIyw"></embed></object></p>
<p>&#8230; até mais pessoal</p>
]]></content:encoded>
			<wfw:commentRss>http://www.softov.com.br/blog/post/124/desenvolvimento-web-na-pratica-02-iniciando-com-php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Desenvolvimento Web na Prática &#8211; Introdução</title>
		<link>http://www.softov.com.br/blog/post/122/desenvolvimento-web-na-pratica-introducao</link>
		<comments>http://www.softov.com.br/blog/post/122/desenvolvimento-web-na-pratica-introducao#comments</comments>
		<pubDate>Wed, 21 Jul 2010 02:37:49 +0000</pubDate>
		<dc:creator>fernandosoftov</dc:creator>
				<category><![CDATA[Dicas]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Video Aulas]]></category>
		<category><![CDATA[desenvolvimento web]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.softov.com.br/blog/?p=122</guid>
		<description><![CDATA[Bom galera, minha primeira esta é uma introdução das minhas Vídeo  Aulas sobre Desenvolvimento Web, espero que gostem, ainda não falei sobre nada, mas em breve teremos muito conteúdo. Estarei falando sobre o PHP (OO), framwork ZEND, a biblioteca  jquery, css, xhtml, html, xml, e outros assuntos relativos ao desenvolvimento web. Sugestões sobre assuntos, mandem [...]]]></description>
			<content:encoded><![CDATA[<p>Bom galera, minha primeira esta é uma introdução das minhas Vídeo  Aulas sobre Desenvolvimento Web, espero que gostem, ainda não falei sobre nada, mas em breve teremos  muito conteúdo.</p>
<p>Estarei falando sobre o PHP (OO), framwork ZEND, a biblioteca  jquery, css,  xhtml, html, xml, e outros assuntos relativos ao desenvolvimento web.</p>
<p>Sugestões sobre assuntos, mandem por comentários ou e-mail.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/gFsBxlQZKK0&amp;hl=pt_BR&amp;fs=1?rel=0&amp;color1=0x3a3a3a&amp;color2=0x999999" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/gFsBxlQZKK0&amp;hl=pt_BR&amp;fs=1?rel=0&amp;color1=0x3a3a3a&amp;color2=0x999999" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://www.softov.com.br/blog/post/122/desenvolvimento-web-na-pratica-introducao/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Classe Abstrata, phpOO + Mysql</title>
		<link>http://www.softov.com.br/blog/post/109/classe-abstrata-phpoo-mysql</link>
		<comments>http://www.softov.com.br/blog/post/109/classe-abstrata-phpoo-mysql#comments</comments>
		<pubDate>Thu, 12 Nov 2009 20:16:48 +0000</pubDate>
		<dc:creator>fernandosoftov</dc:creator>
				<category><![CDATA[desenvolvimento web]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.softov.com.br/blog/?p=109</guid>
		<description><![CDATA[Neste tutorial vou mostrar como você pode criar uma classe phpOO abstrata para banco de dados MySQL. Além das funções básicas dessa classe, podemos resumir tempo total gasto com conexão e execução de consultas e contar quantas consultas foram executados durante o seu script PHP. Etapa 1. A primeira pergunta é por isso que precisamos [...]]]></description>
			<content:encoded><![CDATA[<p>Neste tutorial vou mostrar como você pode criar uma classe phpOO abstrata para banco de dados MySQL.<br />
Além das funções básicas dessa classe, podemos resumir tempo total gasto com conexão e execução de consultas e contar quantas consultas foram executados durante o seu script PHP.</p>
<h3>Etapa 1.</h3>
<p>A primeira pergunta é por isso que precisamos se nós temos toda a função em PHP como nativa. Há mais argumentos:</p>
<p>* Você pode facilmente reutilizar o script em todo o seu desenvolvimento.<br />
* Você pode alterar a base de dados sem alterar todo o seu script. Você precisará editar apenas a classe.<br />
* Você pode fazer optimização e simplificação mais fácil.<br />
* Você pode centralizar o acesso e manipulação de erro DB.<br />
* Você pode fazer a depuração mais fácil.<br />
* Você pode fácilmente implementar estatísticas em tempo de consulta e contadores de consulta.</p>
<p>Agora vamos resumir o tipo de função que precisamos:</p>
<p>* Criar uma conexão com o banco<br />
* Execução de queries SQL<br />
* Recebe o número de linhas selecionadas se possível<br />
* Recebe o número de linhas modificadas, se possível<br />
* Receber o id(auto increment) mais recente, se foi possível inserir<br />
* Coloque um resultado da consulta em um array normal<br />
* Mensagem de erro e / ou identificação(code), se necessário<br />
* Obter o tempo total gasto no banco de dados<br />
* Recebe o número de consultas realizadas</p>
<h3>Etapa 2.</h3>
<p>Antes que possamos iniciar a implementação das funções que precisamos de todas as variáveis de classe comum usado que armazena informações importantes.<br />
Estes são:</p>
<p>* Um identificador de conexão para armazenar o link de conexão real.<br />
* Um conjunto de resultados para armazenar resultados da consulta.<br />
* Uma mensagem de erro e erro id para armazenar informações de erro.<br />
* Um contador para contar as consultas executadas.<br />
* Um contador de tempo para armazenar os tempos de consulta total.</p>
<p>Assim, a classe base fica assim:<br />
MysqlAbs.class.php</p>
<pre class="brush: php;">
 &lt;? php

classe MysqlAbs (

 var $conectado   = ''; // link de conexao
 var $queryCounter = 0; // contador de query
 var $tempoTotal    = 0;     // contador de tempo
 var $errorCode    = 0; //codigo de erro
 var $errorMsg     = ''; // mensagem de erro
 var $resultSet    = '';

 // conexao padrao quando nao for setada
 var $servidor=&quot;localhost&quot;; // host
 var $usuario=&quot;root&quot;; // user
 var $senha=&quot;&quot;; //senha
 var $banco=&quot;test&quot;; //banco)
?&gt;
</pre>
<h3>Etapa 3.</h3>
<p>Agora podemos implementar as funções. Vamos começar com o mais importante. Conectando-se ao banco de dados. O construtor da classe será responsável por construir a conexão com a base de dados. Portanto, se você criar um objeto de banco de dados a partir desta classe imediatamente tera uma conexão válida também.</p>
<p>Assim, o construtor tem os seguintes parâmetros:<br />
* Hostname<br />
* Usuário<br />
* Senha<br />
* Nome do banco de dados</p>
<p>Na função tentamos conectar ao servidor de banco de dados e se conseguirmos,  tentamos selecionar o banco de dados. Em caso de erro temos que definir a mensagem de erro e o codigo de erro e retornar como falso.</p>
<p>O construtor da classe é o seguinte:</p>
<pre class="brush: php;">

&lt;? php
 function __construct() {
 $this -&gt; conexao($this-&gt;servidor,$this-&gt;usuario,$this-&gt;senha,$this-&gt;banco);
}
function conexao($host, $user, $pass, $db){
 $startTime = $this-&gt;getMicroTime();

 // faz a conexao com o servidor
 if (!$this-&gt;conectado = @mysql_connect($host,$user,$pass,true)){
 $this-&gt;errorCode = mysql_errno();
 $this-&gt;errorMsg  = mysql_error();
 return false;

 }

 // faz a selecao do banco
 if (!@mysql_select_db($db,$this-&gt;conectado)){
 $this-&gt;errorCode = mysql_errno();
 $this-&gt;errorMsg  = mysql_error();
 @mysql_close($this-&gt;conectado);
 return false;
 }

 $this-&gt;tempoTotal += $this-&gt;getMicroTime() - $startTime;

 return true;
 }

?&gt;
</pre>
<p>Acima eu crio o construct que instanciará a conexao, assim como padrao fica a conexão com os dados que estao dentro da classe, se for instanciado e passado os parametros ele criara a conexao. Caso contrário ele retornará falso com uma mensagem de erro.</p>
<h3>Etapa 4.</h3>
<p>Como próximo passo vamos implementar a função de execução da consulta. Nesta função podemos medir o tempo de execução (veja os detalhes mais tarde), aumentando o contador de consulta e, claro, de executar a consulta em si. Se ocorrer um erro, definir a mensagem de erro e de codigo de erro  e retorna como falso. Se tudo estiver  funcionando voltamos bem com o conjunto de resultados.</p>
<p>O código é o seguinte:</p>
<pre class="brush: php;">

&lt;? php
 function executeQuery($sql){

 $startTime = $this-&gt;getMicroTime();

 ++$this-&gt;queryCounter;

 if(!$this-&gt;resultSet = @mysql_query($sql,$this-&gt;conectado)){
 $this-&gt;errorCode = mysql_errno();
 $this-&gt;errorMsg  = mysql_error();
 $this-&gt;totalTime = $this-&gt;getMicroTime() - $startTime;
 return false;
 }
 $this-&gt;totalTime += $this-&gt;getMicroTime() - $startTime;

 return $this-&gt;resultSet;
 }
?&gt;
</pre>
<p>Se a consulta contém um Insert, Update ou o comando DELETE, pode ser importante para saber quantos registros foram afetados por esta consulta. Para obtê-lo vamos implementar uma função, como segue:</p>
<pre class="brush: php;">

&lt;? php
 function getAffectedRows()
 {
 return @mysql_affected_rows($this-&gt;conectado);
 }
?&gt;
</pre>
<p>No caso de um select,  o número de registros poderia ser interessante. Para obtê-lo, temos uma função semelhante:</p>
<pre class="brush: php;">

&lt;? php
 function getSelectedRows()
 {
 return @mysql_num_rows($this-&gt;resultSet);
 }
?&gt;
</pre>
<p>Neste tópico, temos uma última questão importante. Em caso de Inserção talvez nós queremos saber o id que foi criado. Para obter essa informação após o registro ser inserido, podemos usar o seguinte código:</p>
<pre class="brush: php;">

&lt;? php
 function getInsertId()
{
 return @mysql_insert_id($this-&gt;conectado);
 }
?&gt;
</pre>
<h3>Etapa 5.</h3>
<p>Agora vamos criar alguma outra função útil para tornar a nossa classe melhor.<br />
Em caso de select, por vezes, seria bom ter um array associativo em vez do MySQL result set. Então, vamos implementar uma função que retorna a essa matriz gerada a partir de um conjunto de resultados reais.<br />
O código fica assim:</p>
<pre class="brush: php;">

&lt;? php
function loadResult()
 {
 $array = array();
 while ($row = mysql_fetch_object( $this-&gt;resultSet )) {
 $array[] = $row;
 }
 mysql_free_result( $this-&gt;resultSet );

 return $array;
 }

?&gt;
</pre>
<p>Como a nossa função não enviar mensagens de erro de volta para o chamador apenas define as variáveis de erro dentro da classe por isso precisamos de função para obter essa informação. Estas são funções getter simples como o seguinte:</p>
<pre class="brush: php;">

&lt;? php
 function getErroCode(){
 return $this-&gt;errorCode;
 }

 function getErroMsg(){
 return $this-&gt;errorMsg;
 }
?&gt;
</pre>
<h3>Etapa 6.</h3>
<p>Como passo final é preciso implementar uma função para obter tempos de consulta. Para fazê-lo, precisamos de uma função que retorna o tempo atual em milisegundos.<br />
Chamando essa função no início e no final das chamadas de funções de conexao, query ou outras do tipo, poderemos calcular o tempo total gasto no db.<br />
Além deste vamos implementar outras 2 funções getter para obter o número de consultas realizadas eo tempo total da consulta em um formato util.</p>
<p>Assim, nossas funções:</p>
<pre class="brush: php;">

&lt;? php
 function getTempo(){
 return round($this-&gt;tempoTotal,6);
 }

 function getSqlCount(){
 return $this-&gt;queryCounter;
 }

 function getMicroTime() {
 list($usec, $sec) = explode(&quot; &quot;,microtime());
 return ((float)$usec + (float)$sec);
 }
?&gt;
</pre>
<p>Bom é isso, no próximo eu mostrarei como utilizar esta classe.. até breve.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.softov.com.br/blog/post/109/classe-abstrata-phpoo-mysql/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>PHP: lendo e tratando informações vindas de um arquivo XML</title>
		<link>http://www.softov.com.br/blog/post/105/php-lendo-e-tratando-informacoes-vindas-de-um-arquivo-xml</link>
		<comments>http://www.softov.com.br/blog/post/105/php-lendo-e-tratando-informacoes-vindas-de-um-arquivo-xml#comments</comments>
		<pubDate>Thu, 24 Sep 2009 20:47:24 +0000</pubDate>
		<dc:creator>fernandosoftov</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://www.softov.com.br/blog/?p=105</guid>
		<description><![CDATA[Não sou muito ativo no php, sou mais um web-designer, mas como sou um desenvolvedor web e trabalho sozinho nesta área, tenho que me virar procurando certos problemas na web (google). Estes dias estava com dificuldade em ler um XML, de tanto procurar na web encontrei este blog: http://www.vedovelli.com.br/?p=83 Resolvi compartilhar para ajudar quem tem [...]]]></description>
			<content:encoded><![CDATA[<p>Não sou muito ativo no php, sou mais um web-designer, mas como sou um desenvolvedor web e trabalho sozinho nesta área, tenho que me virar procurando certos problemas na web (google).</p>
<p>Estes dias estava com dificuldade em ler um XML, de tanto procurar na web encontrei este blog:</p>
<p>http://www.vedovelli.com.br/?p=83</p>
<p>Resolvi compartilhar para ajudar quem tem ou terá o mesmo problema que eu tive. Modifiquei certas coisas, comentei e postei aqui, espero que tenham facilidade em entender o Post!, qualquer duvida comentem.</p>
<pre class="brush: xml;">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;root&gt;
&lt;bandas&gt;
&lt;nome&gt;Asian Dub Foundation&lt;/nome&gt;
&lt;nome&gt;REM&lt;/nome&gt;
&lt;nome&gt;Everything But The Girl&lt;/nome&gt;
&lt;/bandas&gt;
&lt;/root&gt;
</pre>
<p>O xml é o mesmo do exemplo do blog que eu copiei.</p>
<p>Agora temos o php que lerá o XML acima</p>
<pre class="brush: php;">

&lt;?php
$xml = simplexml_load_file(&quot;arquivo.xml&quot;); // Pode ser http://www.algumdominio.com/services/arquivo.xml

for($i=0; $i &lt; count($xml-&gt;bandas-&gt;nome); $i++) {
 echo $xml-&gt;bandas-&gt;nome[$i].&quot;&lt;br /&gt;&quot;;
}
?&gt;
</pre>
<p>Para outro exemplo tenho o XML abaixo</p>
<pre class="brush: xml;">

&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;root&gt;
&lt;bandas&gt;
Gringas
&lt;nome&gt;Asian Dub Foundation&lt;/nome&gt;
&lt;nome&gt;REM&lt;/nome&gt;
&lt;nome&gt;Everything But The Girl&lt;/nome&gt;
&lt;/bandas&gt;

&lt;bandas&gt;
Da nossa Terra
&lt;nome&gt;Detonautas&lt;/nome&gt;
&lt;nome&gt;CPM 22&lt;/nome&gt;
&lt;nome&gt;Skank&lt;/nome&gt;
&lt;/bandas&gt;
&lt;/root&gt;
</pre>
<p>E o php que faz a leitura</p>
<pre class="brush: php;">

&lt;?php
// lê o arquivo xml
$xml = simplexml_load_file(&quot;arquivo2.xml&quot;);

// le todos os filhos pricipais - no caso &quot;bandas&quot;
foreach($xml-&gt;children() as $child){
 // imprime o texto interno
 echo &quot;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&quot;.$child.&quot;:&lt;/strong&gt; &lt;br /&gt;&quot;;

 // le todos os of filhos dos filhos pricipais - no caso &quot;nome&quot;
 foreach($child as $asd){
 // imprime o texto interno
 echo &quot;&quot; . $asd . &quot;&lt;br /&gt;&quot;;
 }
}

// foreach - enquanto tem dados ele lê
// pelo menos é isso que eu entendo
?&gt;
</pre>
<p>Neste segundo exemplo eu leio o XML, e para cada filho leio seus filhos. Assim tenho o filho &#8220;bandas&#8221; e seus filhos &#8220;nome&#8221;.</p>
<p><a href="http://www.softov.com.br/blogmodelos/phpxml1/exemplo1.php" target="_blank">Os exemplos podem ser vistos aqui</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.softov.com.br/blog/post/105/php-lendo-e-tratando-informacoes-vindas-de-um-arquivo-xml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Jquery + Ajax + PHP</title>
		<link>http://www.softov.com.br/blog/post/93/jquery-ajax-php</link>
		<comments>http://www.softov.com.br/blog/post/93/jquery-ajax-php#comments</comments>
		<pubDate>Thu, 10 Sep 2009 20:06:25 +0000</pubDate>
		<dc:creator>fernandosoftov</dc:creator>
				<category><![CDATA[jQuery]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[html]]></category>

		<guid isPermaLink="false">http://www.softov.com.br/blog/?p=93</guid>
		<description><![CDATA[No post  &#8211; Jquery, introdução &#8211; anterior a este falei um pouco sobre Jquery, como o titulo diz, uma breve introdução, hoje falarei sobre o uso de jQuery + Ajax + PHP. Em breve exemplo usarei o envio de formulário, deixarei a validação do mesmo para um post posterior. Primeiramente acesse este link http://docs.jquery.com/Downloading_jQuery, e [...]]]></description>
			<content:encoded><![CDATA[<p>No post  &#8211; <a title="Neste Site" href="http://www.softov.com.br/blog/archives/82" target="_self">Jquery, introdução</a> &#8211; anterior a este falei um pouco sobre Jquery, como o titulo diz, uma breve introdução, hoje falarei sobre o uso de jQuery + Ajax + PHP.</p>
<p>Em breve exemplo usarei o envio de formulário, deixarei a validação do mesmo para um post posterior.</p>
<p>Primeiramente acesse este link <a href="http://docs.jquery.com/Downloading_jQuery" target="_blank">http://docs.jquery.com/Downloading_jQuery</a>, e faça o download da versão mais recente da JQuery.</p>
<p>Seguindo a estrutura html básica</p>
<pre class="brush: xml;">

&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;head&gt;
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;
&lt;title&gt;Ajax Post - Erick Alves&lt;/title&gt;
&lt;script src=&quot;js/jquery-1.3.2.min.js&quot; type=&quot;text/javascript&quot; language=&quot;javascript&quot;&gt;&lt;/script&gt;

&lt;/head&gt;

&lt;body&gt;
&lt;form action=&quot;#&quot; method=&quot;post&quot;&gt;
&lt;label&gt;Nome: &lt;input type=&quot;text&quot; name=&quot;nome&quot; id=&quot;nome&quot; /&gt;&lt;/label&gt;
&lt;label&gt;Email: &lt;input type=&quot;text&quot; name=&quot;email&quot; id=&quot;email&quot; /&gt;&lt;/label&gt;
&lt;label&gt;Telefone: &lt;input type=&quot;text&quot; name=&quot;telefone&quot; id=&quot;telefone&quot; /&gt;&lt;/label&gt;
&lt;input type=&quot;button&quot; value=&quot;Enviar&quot; id=&quot;enviar&quot; /&gt;
&lt;/form&gt;
&lt;div id=&quot;resposta&quot;&gt;&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
<p>Neste html eu criei um formulario com os campos, nome, email e telefone,  respectivamente cada um com seu id, para utilizarmos eles no jQuery.</p>
<p>Entres as tags &lt;head&gt;&lt;/head&gt; eu inseri o jQuery</p>
<pre class="brush: xml;">

&lt;script src=&quot;js/jquery-1.3.2.min.js&quot; type=&quot;text/javascript&quot; language=&quot;javascript&quot;&gt;&lt;/script&gt;
</pre>
<p>Depois disso criaremos uma página chamada de enviar.php com a seguinte estrutura</p>
<pre class="brush: php;">

&lt;?php
// recebo os campos via $_POST[''];
$nome = $_POST['nome'];
$email = $_POST['email'];
$telefone = $_POST['telefone'];

// verifico se estão preenchidos
if (!($nome) || !($email) || !($telefone)){
     echo 'Preencha todos os campos!';
     exit();
}
//Abrindo Conexao com o banco de dados
$conexao = mysql_pconnect(&quot;localhost&quot;,&quot;usuario&quot;,&quot;senha&quot;) or die (mysql_error());
$banco = mysql_select_db(&quot;bancodedados&quot;);

//Utilizando o  mysql_real_escape_string voce se protege o seu código contra SQL Injection.
$nome = mysql_real_escape_string($nome);
$email = mysql_real_escape_string($email);
$telefone = mysql_real_escape_string($telefone);

$insert = mysql_query(&quot;insert into contatos (nome,email,telefone) values ('{$nome}','{$email}','{$telefone}')&quot;);
mysql_close($conexao);
if($insert) {
     echo 'Cadastro Realizado!';
}else {
     echo 'Erro ao Cadastrar!';
}
?&gt;
</pre>
<p>O exemplo acima está auto comentado e de fácil entendimento.</p>
<p>E agora? O formulario não vai funcionar pois não estamos setando nenhum action nele. Isso é importante para o funcionamento dele via jQuery.</p>
<p>Utilizaremos agora a função <em><strong>click </strong></em>do jQuery, instanciando o elemento de id &#8220;<strong>enviar</strong>&#8220;, no caso do formulario html o botão de envio.</p>
<p>Receberemos os valores dos campos de id:</p>
<ul>
<li>nome</li>
<li>email</li>
<li>telefone</li>
</ul>
<p>Feito isso, teremos a função post do jQuery, requisitando dados no envia.php e passando como paramentro nossos campos.</p>
<p>Instanciamos o elemento de id &#8220;<strong>resposta</strong>&#8221; para receber o retorno do nosso ajax.</p>
<p>Tudo isso é feito utilizando o script jQuery abaixo</p>
<pre class="brush: jscript;">
&lt;script type=&quot;text/javascript&quot;&gt;
$(document).ready(function() {
    $(&quot;#enviar&quot;).click(function() {
       var nome = $(&quot;#nome&quot;);
       var nomePost = nome.val();
       var email = $(&quot;#email&quot;);
       var emailPost = email.val();
       var telefone = $(&quot;#telefone&quot;);
       var telefonePost = telefone.val();
       $.post(&quot;enviar.php&quot;, {nome: nomePost, email: emailPost, telefone: telefonePost},
       function(data){
          $(&quot;#resposta&quot;).html(data);
       }
       , &quot;html&quot;);
     });
});
&lt;/script&gt;
</pre>
<p>Que deve ser inserido entre as tags head do seu html.</p>
<p>Fim&#8230;</p>
<p>Temos também no jQuery outros modos de enviar requisições ajax, como a própria funçao $.ajax().</p>
<p>Mas deixarei isso para outro post, assim como as validações.</p>
<p>Bem isso é tudo pessoal.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.softov.com.br/blog/post/93/jquery-ajax-php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Trabalhando com Classes e Objetos &#8211; PHPOO</title>
		<link>http://www.softov.com.br/blog/post/20/trabalhando-com-classes-e-objetos-phpoo</link>
		<comments>http://www.softov.com.br/blog/post/20/trabalhando-com-classes-e-objetos-phpoo#comments</comments>
		<pubDate>Fri, 07 Aug 2009 21:32:34 +0000</pubDate>
		<dc:creator>fernandosoftov</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[php orientado a objetos]]></category>
		<category><![CDATA[phpOO]]></category>

		<guid isPermaLink="false">http://www.softov.com.br/blog/?p=20</guid>
		<description><![CDATA[Dois exemplos simples de como trabalhar com Classe e Objetos em Php &#8211; PHPOO Teste tradicional class OlaMundo { function OlaMundo(){ return &#34;Olá Mundo do PHPOO!&#34;; } } $ola = new OlaMundo(); echo $ola-&#62;OlaMundo(); Outro exemplo, com duas instanciações. // Classe Pessoa class Pessoa { private $nome; function setNome($nome){ $this-&#62;nome = $nome; } function getNome(){ [...]]]></description>
			<content:encoded><![CDATA[<p>Dois exemplos simples de como trabalhar com Classe e Objetos em Php &#8211; PHPOO</p>
<p>Teste tradicional</p>
<pre class="brush: php;">

class OlaMundo {
 function OlaMundo(){
 return &quot;Olá Mundo do PHPOO!&quot;;
 }
}

$ola = new OlaMundo();
echo $ola-&gt;OlaMundo();
</pre>
<p>Outro exemplo, com duas instanciações.</p>
<pre class="brush: php;">

// Classe Pessoa
class Pessoa {
 private $nome;
 function setNome($nome){
 $this-&gt;nome = $nome;
 }

 function getNome(){
 return $this-&gt;nome;
 }
}

$joao = new Pessoa();
$joao-&gt;setNome(&quot;João Brito&quot;);
$pedro = new Pessoa();
$pedro-&gt;setNome(&quot;Pedro Ribeiro&quot;);

echo &quot;&lt;strong&gt;&lt;br /&gt;&lt;br /&gt;Classe Pessoa:&lt;br /&gt;&lt;/strong&gt;&quot;;
echo $joao-&gt;getNome();
echo &quot;&lt;br /&gt;&quot;;
echo $pedro-&gt;getNome();
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.softov.com.br/blog/post/20/trabalhando-com-classes-e-objetos-phpoo/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Por que usar PHP?</title>
		<link>http://www.softov.com.br/blog/post/16/por-que-usar-php</link>
		<comments>http://www.softov.com.br/blog/post/16/por-que-usar-php#comments</comments>
		<pubDate>Fri, 07 Aug 2009 16:46:28 +0000</pubDate>
		<dc:creator>fernandosoftov</dc:creator>
				<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.softov.com.br/blog/?p=16</guid>
		<description><![CDATA[Sou um amante nato do PHP, penso que este motivo é por ter sido a primeira linguagem de programação que aprendi. Como meu primeiro post no blog, começarei dando boas razões para utilizar  o PHP. Licença gratuita. Roda em qualquer plataforma. Velocidade de processamento ótima Código fonte livre Orientação a objetos ótima É a linguagem [...]]]></description>
			<content:encoded><![CDATA[<p>Sou um amante nato do PHP, penso que este motivo  é por ter sido a primeira linguagem de programação que aprendi.</p>
<p>Como meu primeiro post no blog, começarei dando boas razões para utilizar  o PHP.<span id="more-16"></span></p>
<ol>
<li> Licença gratuita.</li>
<li> Roda em qualquer plataforma.</li>
<li> Velocidade de processamento ótima</li>
<li> Código fonte livre</li>
<li> Orientação a objetos ótima</li>
<li> É a linguagem Web mais popular e que mais cresce (em ritmo bem acelerado) no mercado</li>
<li> Possibilita a utilização dos maiores e mais utilizados Bancos de dados no mercado (Adabas D, InterBase, PostgreSQL, dBase, FrontBase, SQLite, Empress, mSQL, Solid, FilePro, Direct MS-SQL Sybase, Hyperwave, MySQL, Velocis, IBM DB2, ODBC, Unix dbm, Informix, Oracle (OCI7 e OCI8), Ingres, Ovrimos, Firebird) sem necessitar de configuração externa como no caso do ASP que se tem que configurar o ODBC</li>
<li> Esta sempre em atualização e tendo corrigidas falhas e adicionados novos recursos</li>
<li> É mais estável e exige e consome menos recursos de hardware do servidor</li>
<li> Componentes nativos, não dependendo de componentes externos para algumas funcionabilidades básicas (como é o caso do ASP aonde muitos desses componentes são até pagos)</li>
<li> Planos de hospedagem Web (na grande maioria dos casos) mais baratos e sem nenhum custo extra para a utilização do MySQL em conjunto com o PHP. Sem dúvidas, tem planos de até 6,90 por mês com MySQL</li>
<li> A programação em PHP é mais eficiente do que em ASP, pois se consegue programar um mesmo sistema com menos código em PHP do que ASP</li>
<li> Roda no Apache , IIS  e etc… até como script shell de UNIX e sabores…</li>
</ol>
<p>Se depois disso tudo você ainda não considerar o PHP como ao menos uma opção para a criação do seu website ou sistema web de banco de dados, é porque você então tem necessidades que o ASP ou JSP ou o ZOPE tambem não poderam te ajudar.<br />
Pesquise mais sobre o PHP, faça um teste, e ponha aqui o seu parecer, eu gostaria muito de saber qual é.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.softov.com.br/blog/post/16/por-que-usar-php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
