<?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>Phaneronsoft &#187; HTML</title>
	<atom:link href="http://www.phaneronsoft.com/phaneronsoft/category/html/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.phaneronsoft.com/phaneronsoft</link>
	<description>Desenvolvimento Web</description>
	<lastBuildDate>Fri, 15 Jul 2011 20:15:32 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Adicionar HTML no ZEND Form de maneira rapida e limpa</title>
		<link>http://www.phaneronsoft.com/phaneronsoft/2010/02/11/adicionar-html-no-zend-form-de-maneira-rapida-e-limpa/</link>
		<comments>http://www.phaneronsoft.com/phaneronsoft/2010/02/11/adicionar-html-no-zend-form-de-maneira-rapida-e-limpa/#comments</comments>
		<pubDate>Thu, 11 Feb 2010 17:13:27 +0000</pubDate>
		<dc:creator>Marcelo Korjenioski</dc:creator>
				<category><![CDATA[HTML]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[Form]]></category>
		<category><![CDATA[Framework]]></category>
		<category><![CDATA[Zend]]></category>

		<guid isPermaLink="false">http://www.phaneronsoft.com/phaneronsoft/?p=445</guid>
		<description><![CDATA[Criei uma solução para adicionar HTML no form do Zend é simples e eficiente Basta criar um classe no Library com o nome Htmlform.php e adicionar o código &#60;?php class Htmlform extends Zend_Form_Element_Xhtml { public $helper = &#039;formNote&#039;; } ?&#62; Agora no Formulário você irá chamar ela usando. $html = new Htmlform(&#039;nome_do_elemento&#039;); $html-&#62;setValue(&#039;&#60;strong&#62;teste&#60;/strong&#62;&#039;); $this-&#62;addElement($html); Caso [...]]]></description>
			<content:encoded><![CDATA[<p>Criei uma solução para adicionar HTML no form do Zend é simples e eficiente<br />
Basta criar um classe no Library com o nome Htmlform.php e adicionar o código</p>
<pre class="brush: php">
&lt;?php
class Htmlform extends Zend_Form_Element_Xhtml {
public $helper = &#039;formNote&#039;;
}
?&gt;
</pre>
<p>Agora no Formulário você irá chamar ela usando.</p>
<pre class="brush: php">
$html = new Htmlform(&#039;nome_do_elemento&#039;);
$html-&gt;setValue(&#039;&lt;strong&gt;teste&lt;/strong&gt;&#039;);
$this-&gt;addElement($html);
</pre>
<p>Caso tenha alguma duvida deixe um comen­tá­rio que terei pra­zer em aju­dar.<br />
Comen­tá­rios são bem vin­dos assim posso melho­rar a qua­li­dade dos tuto­ri­ais aqui apresentados.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.phaneronsoft.com/phaneronsoft/2010/02/11/adicionar-html-no-zend-form-de-maneira-rapida-e-limpa/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Descobrir ID de elemento através de uma Class usando JQuery</title>
		<link>http://www.phaneronsoft.com/phaneronsoft/2009/11/20/descobrir-id-de-elemento-atraves-de-uma-class-usando-jquery/</link>
		<comments>http://www.phaneronsoft.com/phaneronsoft/2009/11/20/descobrir-id-de-elemento-atraves-de-uma-class-usando-jquery/#comments</comments>
		<pubDate>Fri, 20 Nov 2009 12:42:29 +0000</pubDate>
		<dc:creator>Marcelo Korjenioski</dc:creator>
				<category><![CDATA[HTML]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[JQuery]]></category>
		<category><![CDATA[Sites]]></category>
		<category><![CDATA[Descobrir]]></category>
		<category><![CDATA[Listas]]></category>

		<guid isPermaLink="false">http://www.phaneronsoft.com/phaneronsoft/?p=411</guid>
		<description><![CDATA[Descobrir ID de elemento através de uma Class usando JQuery é o tema de hoje. Eu não sou o tipo do programador que fica se preocupando com a quantidade de linhas por arquivo. Gosto mesmo é de criar um código simples e de fácil manutenção. Esta semana estava querendo colocar um efeito “slide” em algumas [...]]]></description>
			<content:encoded><![CDATA[<p>Descobrir ID de elemento através de uma Class usando JQuery é o tema de hoje.<br />
Eu não sou o tipo do programador que fica se preocupando com a quantidade de linhas por arquivo.<br />
Gosto mesmo é de criar um código simples e de fácil manutenção. Esta semana estava querendo colocar<br />
um efeito “slide” em algumas listas porem não queria criar uma função para cada lista. Então resolvi<br />
criar uma classe comum para elas e atribuir IDs para os botões e para as listas. Desta maneira foi simples<br />
resolver meu problema pois posso identificar os IDs dos elementos através da classe.<br />
Segue o código abaixo para explicar melhor a situação.</p>
<p>Segue o<a href="http://www.phaneronsoft.com/exemplos/jquery/"> exemplo funcionando</a></p>
<pre class="brush: php">

&lt;head&gt;
&lt;title&gt;Descobrir id de elemento usando uma classe com JQuery&lt;/title&gt;
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=ISO-8859-1&quot;&gt;
&lt;style type=&quot;text/css&quot;&gt;
ul {list-style:none;}
* {margin:0;padding:0;border:0px;}
html {height:100%;}
.agrupa_programacao {float:left;display:inline;width:970px;margin-top:30px;}
.divisao_programacao {float:left;display:inline;width:230px;margin-right:10px;}
.lista_programacao,.lista_programacao2 {float:left;display:inline;width:228px;margin-top:5px;background:#fff;border:1px solid #bbb;}
.lista_programacao2 {margin-top:0px;border-top:0px}
.tit_programacao, .tit_programacao2, .tit_programacao3 {float:left;display:inline;width:198px;height:20px;background:#acbcc0 url(../img/seta.jpg) no-repeat 9px 16px;padding:12px 0 12px 30px;text-align:left;font:14px Verdana, Arial, Helvetica, sans-serif;font-weight:bold;color:#fff;border-bottom:1px solid #fff;}
.tit_programacao2 {color:#133c8b;background:#f4f1f1;}
.tit_programacao3 {background:#d9eff3 url(../img/seta2.gif) no-repeat 9px 7px;padding:5px 0 5px 30px;color:#133c8b;font:bold 12px Verdana, Arial, Helvetica, sans-serif;}
h3.tit_programacao3{border-left:1px solid #BBBBBB;border-right:1px  solid #BBBBBB;cursor:pointer;}
.txt_programacao, .txt_programacao2, .txt_programacao3 {float:left;display:inline;width:198px;padding:10px 15px 10px 15px;background:#f4f1f1;font:11px Verdana, Arial, Helvetica, sans-serif;color:#5e5e5e;border-bottom:1px solid #fff;}
.txt_programacao2 {background:#d7d7d7;}
.txt_programacao3 {background:#fff;}
&lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;div&gt;
&lt;h3 id=&quot;frutas&quot;&gt;Frutas&lt;/h3&gt;
&lt;ul id=&quot;frutas_lista&quot;&gt;
&lt;li id=&quot;1&quot;&gt;Abacaxi&lt;/li&gt;
&lt;li id=&quot;2&quot;&gt;Pera&lt;/li&gt;
&lt;li id=&quot;3&quot;&gt;Maça&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;verduras&quot;&gt;Legumes&lt;/h3&gt;
&lt;ul id=&quot;verduras_lista&quot;&gt;
&lt;li id=&quot;1&quot;&gt;Alface&lt;/li&gt;
&lt;li id=&quot;2&quot;&gt;Couve&lt;/li&gt;
&lt;li id=&quot;3&quot;&gt;Cenoura&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;script src=&quot;http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
&lt;script language=&quot;javascript&quot; type=&quot;text/javascript&quot;&gt;
$(document).ready(function(){ // Inicio o script apenas quando toda a pagina estiver carregada.
// Atribuo a função onclick em todos os elementos com a classe informada
$(&quot;.tit_programacao3&quot;).click(function () {
//Pego o ID do elemento.
var id = $(this).attr(&#039;id&#039;);
// Como defini os ids para o titulo e lista, apenas faço uma
// concatenação para identificar a lista para receber a ação.
if ($(&quot;#&quot; + id + &quot;_lista&quot;).is(&quot;:hidden&quot;)) {
$(&quot;#&quot; + id + &quot;_lista&quot;).slideDown(&quot;normal&quot;);
} else {
$(&quot;#&quot; + id + &quot;_lista&quot;).slideUp(&quot;normal&quot;);
}
});
});
&lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
<p>Associando a classe com id é possível reduzir a quantidade de código facilitando a manutenção e agilizando o desenvolvimento.</p>
<p>Comen­tá­rios são bem vin­dos assim posso melho­rar a qua­li­dade dos tuto­ri­ais aqui apre­sen­ta­dos.<br />
É isso pes­soal uma ótima semana e até o próximo post.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.phaneronsoft.com/phaneronsoft/2009/11/20/descobrir-id-de-elemento-atraves-de-uma-class-usando-jquery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Exemplo Básico de AJAX com JQUERY</title>
		<link>http://www.phaneronsoft.com/phaneronsoft/2009/10/28/exemplo-basico-de-ajax-com-jquery/</link>
		<comments>http://www.phaneronsoft.com/phaneronsoft/2009/10/28/exemplo-basico-de-ajax-com-jquery/#comments</comments>
		<pubDate>Wed, 28 Oct 2009 16:33:42 +0000</pubDate>
		<dc:creator>Marcelo Korjenioski</dc:creator>
				<category><![CDATA[HTML]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[JQuery]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[iniciante]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.phaneronsoft.com/phaneronsoft/?p=403</guid>
		<description><![CDATA[Hoje estava conversando com um amigo que começou a estudar AJAX para fazer uma entrevista de emprego para programador Jr e que pediam conhecimentos básicos de PHP, AJAX e JQuery. Perguntei para ele o que você entende por AJAX? “É um bagulho que pega informações do lado servidor sem precisar recarregar a página.” A resposta [...]]]></description>
			<content:encoded><![CDATA[<p>Hoje estava conversando com um amigo que começou a estudar AJAX<br />
para fazer uma entrevista de emprego para programador Jr e que pediam conhecimentos básicos de PHP, AJAX e JQuery.</p>
<p><em>Perguntei para ele o que você entende por AJAX?</em><br />
<em><strong>“É um bagulho que pega informações do lado servidor sem<br />
precisar recarregar a página.”</strong></em></p>
<p>A resposta esta certa e o conceito é este.</p>
<p>Então hoje resolvi criar um post sobre o que é o tal de AJAXem um<br />
exemplo pratico e simples de entender que mostrei para meu amigo.</p>
<p>Vamos usar o JQuery para fazer a conexão AJAX.<br />
No exemplo vamos pegar o conteúdo de uma pagina “texto.html” e adicionar<br />
o conteúdo na página “index.html” em uma tag span.</p>
<p>Vamos criar uma página <em>index.html</em> com o código abaixo.</p>
<pre class="brush: php">

&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01 Transitional//EN&quot;&gt;
&lt;html&gt;
&lt;head&gt;
&lt;title&gt;EXEMPLO BASICO DO USO DO AJAX COM JQUERY&lt;/title&gt;
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=ISO-8859-1&quot;&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;input type=&quot;button&quot; onclick=&quot;ajax();&quot; value=&quot;Pegar texto&quot; name=&quot;Pegar texto&quot; /&gt;
&lt;br /&gt;
&lt;span id=&quot;conteudo_ajax&quot;&gt;&lt;/span&gt;
&lt;/body&gt;
&lt;/html&gt;
&lt;script src=&quot;http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
function ajax () {
// Caso queira limpar o valor do elemento antes de adicionar remova o comentario abaixo.
//$(&quot;#conteudo_ajax&quot;).empty();
jQuery.ajax({
type: &quot;get&quot;, // Defino o método de envio POST / GET
url: &#039;texto.html&#039;, // Informo a URL que será pesquisada.
success: function(html){
$(&quot;#conteudo_ajax&quot;).append(html); // Adiciono o valor dentro do elemento.
}
});
}
&lt;/script&gt;
</pre>
<p>Agora crie uma página  <em>texto.html</em> com o texto para pesquisa</p>
<pre class="brush: php">

Texto que foi pego usando AJAX.
</pre>
<p>O código é simples mas já dá uma idéia de como funciona o AJAX para quem esta começando a estudar.</p>
<p>Comen­tá­rios são bem vin­dos assim posso melho­rar a qua­li­dade dos tuto­ri­ais aqui apre­sen­ta­dos.<br />
É isso pes­soal uma ótima semana e até o próximo post.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.phaneronsoft.com/phaneronsoft/2009/10/28/exemplo-basico-de-ajax-com-jquery/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Adicionar um novo item no inicio do Array com chave nula.</title>
		<link>http://www.phaneronsoft.com/phaneronsoft/2009/09/01/adicionar-um-novo-item-no-inicio-do-array-com-chave-nula/</link>
		<comments>http://www.phaneronsoft.com/phaneronsoft/2009/09/01/adicionar-um-novo-item-no-inicio-do-array-com-chave-nula/#comments</comments>
		<pubDate>Tue, 01 Sep 2009 13:29:54 +0000</pubDate>
		<dc:creator>Marcelo Korjenioski</dc:creator>
				<category><![CDATA[HTML]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.phaneronsoft.com/phaneronsoft/?p=357</guid>
		<description><![CDATA[Hoje estou apresentando novamente uma solução para quando for popular um select dentro de um formulário usando um array de dados no esquema valor =&#62; nome. Vamos ao problema e a solução. Digamos que eu queria validar este select para ver se foi marcado algo e eu não posso alterar o HTML ou DB onde [...]]]></description>
			<content:encoded><![CDATA[<p>Hoje estou apresentando novamente uma solução para quando for popular<br />
um select dentro de um formulário usando um array de dados no esquema<br />
valor =&gt; nome.</p>
<p>Vamos ao problema e a solução.</p>
<p>Digamos que eu queria validar este select para ver se foi marcado algo e eu não<br />
posso alterar o HTML ou DB onde pego este array.<br />
Se não tiver um valor nulo no select ele ira pegar o primeiro item do array no<br />
caso o Admin.</p>
<pre class="brush: php">
$array_atual = array(&#039;1&#039; =&gt; &#039;Admin&#039;,&#039;2&#039;=&gt;&#039;Usuário&#039;);
</pre>
<p>Se usar a função array_unshift(); posso adicionar<br />
no início do array um novo item porem ele terá uma chave int e eu quero um nula.</p>
<pre class="brush: php">
$array_atual = array(&#039;1&#039; =&gt; &#039;Admin&#039;,&#039;2&#039;=&gt;&#039;Usuário&#039;);
array_unshift($array_atual, &#039;Selecione&#039;);
</pre>
<p>Então a solução para adicionar uma chave nula é usar</p>
<pre class="brush: php">
$array_atual = array(&#039;1&#039;=&gt;&#039;Admin&#039;,&#039;2&#039;=&gt;&#039;Usuário&#039;);
$array_atual = array(&#039;&#039;=&gt;&#039;Selecione&#039;) + $array_atual;
</pre>
<p>Existem varias maneiras de resolver este problema mas esta foi a mais simples que encontrei.<br />
Caso tenha alguma duvida ou sugestão deixe um comentário que terei prazer em ajudar.<br />
Comentários são bem vindos assim posso melhorar a qualidade dos tutoriais aqui apresentados.</p>
<p>É isso pessoal uma ótima semana e até o próximo post.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.phaneronsoft.com/phaneronsoft/2009/09/01/adicionar-um-novo-item-no-inicio-do-array-com-chave-nula/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Importar dados apartir de uma URL e gerar SQL para inserir dados em BD MySQL ou PostgreSQL</title>
		<link>http://www.phaneronsoft.com/phaneronsoft/2009/08/25/importar-dados-apartir-de-uma-url-e-gerar-sql-para-inserir-dados-em-bd-mysql-ou-postgresql/</link>
		<comments>http://www.phaneronsoft.com/phaneronsoft/2009/08/25/importar-dados-apartir-de-uma-url-e-gerar-sql-para-inserir-dados-em-bd-mysql-ou-postgresql/#comments</comments>
		<pubDate>Tue, 25 Aug 2009 23:05:43 +0000</pubDate>
		<dc:creator>Marcelo Korjenioski</dc:creator>
				<category><![CDATA[Expressões Regulares]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Sites]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://www.phaneronsoft.com/phaneronsoft/?p=330</guid>
		<description><![CDATA[Seguindo outros tutoriais sobre como importar dados, desta vez vamos fazer um script para capturar dados de uma pagina HTML e gerar um SQL de insert.  Nesta pesquisa estou procurando por links dentro de uma determinada Tag. Estou usando o ID dos elementos como referência. Veja a importância de não repetir os IDs dos elementos.  [...]]]></description>
			<content:encoded><![CDATA[<p>Seguindo outros tutoriais sobre como importar dados, desta vez vamos fazer um script para capturar dados de uma pagina HTML e gerar um SQL de insert.  Nesta pesquisa estou procurando por links dentro de uma determinada Tag. Estou usando o ID dos elementos como referência. Veja a importância de não repetir os IDs dos elementos.  Chega de conversa e vamos direto ao ponto.</p>
<pre class="brush: php">

&lt;?php
header(&quot;Content-Type: text/html; charset=UTF-8&quot;);
// URL que irei pegar os links
$url = &quot;http://pt.wikipedia.org/wiki/Categoria:Especialidades_m%C3%A9dicas&quot;;
$conteudo = null;
// Abro conexão de leitura.
$conecurl = @fopen(&quot;$url&quot;,&quot;r&quot;) or die (&#039;&lt;center&gt;erro na conexão&lt;br&gt;&lt;b&gt;informe o administrador erro 15 &lt;/b&gt;&lt;/center&gt;&#039;);
while(!feof($conecurl)) {
$conteudo .= fgets($conecurl,4096);
}
// Fecho conexão.
fclose($conecurl);
// Aqui vou informar a primeira tag para o filtro do HTML eu peguei um elemento com id por ser unico no HTML.
$inicio = strpos($conteudo,&#039;&lt;div id=&quot;mw-subcategories&quot;&gt;&#039;);
// Pego outro elemento com id para finalizar o range de busca.
$fim = strpos($conteudo,&#039;&lt;div id=&quot;mw-pages&quot;&gt;&#039;);
// Pegamos a posição final menos a inicial para ver quanto iremos pular.
$quantopula = $fim - $inicio ;
$conteudo = substr($conteudo, $inicio ,$quantopula);

function pegaLink($html){
// ER para pegar todas as tags de links.
$er = &quot;/&lt;a.*?href=(\&quot;.*?\&quot;|[A-Za-z0-9_]*?).*?&gt;.*?&lt;\/a&gt;/&quot;;
preg_match_all($er,$html,$links);
$link = $links[0];
return $link;
}

function pegaNomeLink($url){
// ER para pegar o nome da tag de link.
$label = str_replace(&quot;&lt;/a&gt;&quot;,&quot;&quot;,preg_replace(&quot;/^&lt;a.*?&gt;/&quot;,&quot;&quot;,$url));
return $label;
}
// Pego um array com todos os links
$links = pegaLink($conteudo);
$query = NULL;
// Inicio da query.
$query .= &quot;insert into especialidades (nome) values &quot;;
// Faço um loop para fazer o insert de cada item.
foreach ($links as $value) {
$item = &#039;(&#039;;
// Removo o link e pego apenas o nome.
$item .= &quot;&#039;&quot;.pegaNomeLink($value).&quot;&#039;&quot;;
$item .= &#039;)&#039;;
$values[] = $item;
}
// Transformo o Array em uma String.
$query .= implode(&#039;,&#039;, $values);
echo $query;
?&gt;
</pre>
<p>Caso tenha alguma duvida deixe um comen­tário que terei pra­zer em aju­dar.<br />
Comen­tários são bem vin­dos assim posso mel­ho­rar a qual­i­dade dos tuto­ri­ais aqui apresentados.</p>
<p>É isso pessoal tenham uma ótima semana e até o próximo post.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.phaneronsoft.com/phaneronsoft/2009/08/25/importar-dados-apartir-de-uma-url-e-gerar-sql-para-inserir-dados-em-bd-mysql-ou-postgresql/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Upload e Remoção de arquivo via AJAX</title>
		<link>http://www.phaneronsoft.com/phaneronsoft/2009/08/14/upload-e-remocao-de-arquivo-via-ajax/</link>
		<comments>http://www.phaneronsoft.com/phaneronsoft/2009/08/14/upload-e-remocao-de-arquivo-via-ajax/#comments</comments>
		<pubDate>Fri, 14 Aug 2009 03:15:33 +0000</pubDate>
		<dc:creator>Marcelo Korjenioski</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Sites]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[Upload]]></category>

		<guid isPermaLink="false">http://www.phaneronsoft.com/phaneronsoft/?p=322</guid>
		<description><![CDATA[Não é possível fazer upload de arquivo via Ajax porem alguém encontrou a solução usando iframe.  Vamos chamar de fake upload via Ajax. No AJAX F1 tem um tutorial de como fazer este sistema de AJAX file upload. Um leitor do solicitou uma ajuda com a listagem do itens após o upload do arquivo e [...]]]></description>
			<content:encoded><![CDATA[<p>Não é possível fazer upload de arquivo via Ajax porem alguém encontrou a solução usando iframe.  Vamos chamar de fake upload via Ajax. No AJAX F1 tem um tutorial de como fazer este sistema de <a href="http://www.ajaxf1.com/tutorial/ajax-file-upload-tutorial.html">AJAX file upload</a>.</p>
<p>Um leitor do solicitou uma ajuda com a listagem do itens após o upload do arquivo e também para remover ele. Resolvi criar um sistema baseado no AJAX F1 e disponibilizar.</p>
<p>O sistema esta bem crú então conforme for passando o tempo vou melhorar o código.</p>
<p>Aqui esta o<a title="Upload Arquivo" href="http://www.phaneronsoft.com/exemplos/upload.zip" target="_blank"> link para o dowload do exemplo</a> com css e imagens.</p>
<p>No exemplo aqui postado esta sem o css para o código fica menor.</p>
<p>Vamos criar um arquivo index.php e colocar o código abaixo</p>
<pre class="brush: php">

&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;Enviar e Remover Arquivos&lt;/title&gt;
&lt;link href=&quot;style/style.css&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot; /&gt;

&lt;script language=&quot;javascript&quot; type=&quot;text/javascript&quot;&gt;
&lt;!--
function startUpload(){
// Quando inicia o Upload o elemento a mensagem de progreso fica visível e o formulário é ocultado.
document.getElementById(&#039;f1_upload_process&#039;).style.visibility = &#039;visible&#039;;
document.getElementById(&#039;f1_upload_form&#039;).style.visibility = &#039;hidden&#039;;
return true;
}

function stopUpload(success,file){
var result = &#039;&#039;;
if (success == 1){
// Caso o retorno do envio do arquivo vindo do iframe seja 1 ele adiciona o arquivo na lista.
result = &#039;&lt;span&gt;O arquivo foi enviado com sucesso!&lt;\/span&gt;&lt;br/&gt;&lt;br/&gt;&#039;;
adicionar(file);
}
else {
// Se ocorrer erro mostra a mensagem.
result = &#039;&lt;span&gt;Ocorreu um erro na hora de enviar o arquivo!&lt;\/span&gt;&lt;br/&gt;&lt;br/&gt;&#039;;
}
document.getElementById(&#039;f1_upload_process&#039;).style.visibility = &#039;hidden&#039;;
document.getElementById(&#039;f1_upload_form&#039;).innerHTML = result + &#039;&lt;label&gt;File: &lt;input name=&quot;myfile&quot; type=&quot;file&quot; size=&quot;30&quot; /&gt;&lt;\/label&gt;&lt;label&gt;&lt;input type=&quot;submit&quot; name=&quot;submitBtn&quot; value=&quot;Upload&quot; /&gt;&lt;\/label&gt;&#039;;
document.getElementById(&#039;f1_upload_form&#039;).style.visibility = &#039;visible&#039;;

return true;
}

// Remove elementos
function removeElement(id) {
// Declara variável lista que indica  onde o elemento será removido.
var lista    = document.getElementById(&#039;lista&#039;);
// Declara variavel elemento que indica qual elemento será removido.
var elemento = document.getElementById(id);

// Função removeChild irá procurar elementos que estão dentro da variável lista com o valor
// da variavel elemento para remover.
lista.removeChild(elemento);
}

// Adiciona elementos basedo no valor do file input
function adicionar(id) {
// Pega a id do item da lista criado baseado no nome do arquivo
var valor   = id;

// Cria uma variavel com referencia ao Id do Elemento
var lista    = document.getElementById(&#039;lista&#039;);

// É criado uma tag &lt;li&gt; que contem informação do elemento adicionado.
// Também é adicionado um &lt;input&gt; do tipo hidden com o nome do arquivo.
// Estou usando o nome do arquivo como ID na lista criada.
var dado = &#039;&lt;li id=&quot;element_&#039; + valor + &#039;&quot;&gt;&#039;
+ &#039;&lt;form action=&quot;delete.php&quot; method=&quot;post&quot; target=&quot;delete_target&quot;&gt;&#039;
+ &#039;&lt;label for=&quot;file&quot;&gt;&#039; + valor + &#039;&lt;/label&gt;&#039;
+ &#039;&lt;input name=&quot;file&quot; value=&quot;&#039; + valor +&#039;&quot; type=&quot;hidden&quot;/&gt;&#039;
+ &#039;&lt;input id=&quot;item_&#039; + valor + &#039;&quot; type=&quot;submit&quot; value=&quot;Remover&quot; name=&quot;Remover&quot;/&gt;&lt;/form&gt;&lt;/li&gt;&#039;;

// Pega o código HTML dentro da lista e adiciona novos registros.
lista.innerHTML = lista.innerHTML + dado;
return true;
}

//--&gt;
&lt;/script&gt;
&lt;/head&gt;

&lt;body&gt;
&lt;div id=&quot;container&quot;&gt;
&lt;div id=&quot;header&quot;&gt;&lt;div id=&quot;header_left&quot;&gt;&lt;/div&gt;
&lt;div id=&quot;header_main&quot;&gt;Enviar e Remover Arquivos&lt;/div&gt;&lt;div id=&quot;header_right&quot;&gt;&lt;/div&gt;&lt;/div&gt;
&lt;div id=&quot;content&quot;&gt;
&lt;form action=&quot;upload.php&quot; method=&quot;post&quot; enctype=&quot;multipart/form-data&quot; target=&quot;upload_target&quot; onsubmit=&quot;startUpload();&quot; &gt;
&lt;!-- Mensagem de progresso de envio do arquivo --&gt;
&lt;p id=&quot;f1_upload_process&quot;&gt;Carregando...&lt;br/&gt;&lt;img src=&quot;loader.gif&quot; /&gt;&lt;br/&gt;&lt;/p&gt;
&lt;p id=&quot;f1_upload_form&quot; align=&quot;center&quot;&gt;&lt;br/&gt;
&lt;label&gt;Arquivo:
&lt;input name=&quot;myfile&quot; id=&quot;myfile&quot; type=&quot;file&quot; size=&quot;30&quot; /&gt;
&lt;/label&gt;
&lt;label&gt;
&lt;input type=&quot;submit&quot; name=&quot;submitBtn&quot; value=&quot;Enviar&quot; /&gt;
&lt;/label&gt;
&lt;/p&gt;

&lt;iframe id=&quot;upload_target&quot; name=&quot;upload_target&quot; src=&quot;#&quot; style=&quot;width:0;height:0;border:0px solid #fff;&quot;&gt;&lt;/iframe&gt;
&lt;/form&gt;
&lt;/div&gt;

&lt;div id=&quot;arquivos&quot;&gt;
&lt;fieldset&gt;
&lt;legend&gt;Arquivos&lt;/legend&gt;
&lt;div&gt;
&lt;!--  Lista onde será adicionado a relação dos arquivos enviados --&gt;
&lt;ul id=&quot;lista&quot;&gt;&lt;/ul&gt;
&lt;/div&gt;
&lt;iframe id=&quot;delete_target&quot; name=&quot;delete_target&quot; src=&quot;#&quot; style=&quot;width:0;height:0;border:0px solid #fff;&quot;&gt;&lt;/iframe&gt;
&lt;/fieldset&gt;
&lt;/div&gt;

&lt;div id=&quot;footer&quot;&gt;
&lt;a href=&quot;http://www.ajaxf1.com&quot; target=&quot;_blank&quot;&gt;Powered by AJAX F1&lt;/a&gt; /
&lt;a href=&quot;http://www.phaneronsof.com&quot; target=&quot;_blank&quot;&gt;Powered by Phaneronsoft&lt;/a&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/body&gt;
</pre>
<p>Agora vamos criar um arquivo php que o iframe irá solicitar para enviar o arquivo. Vamos nomear de upload.php</p>
<pre class="brush: php">

&lt;?php
// Modifique o endereço do upload aqui
$destination_path = getcwd().DIRECTORY_SEPARATOR;
$result = 0;
$target_path = $destination_path . basename( $_FILES[&#039;myfile&#039;][&#039;name&#039;]);
// Pega o nome do arquivo para devolver para a lista HTML via Javascript.
$file_name = $_FILES[&#039;myfile&#039;][&#039;name&#039;];
if(@move_uploaded_file($_FILES[&#039;myfile&#039;][&#039;tmp_name&#039;], $target_path)) {
//Caso o arquivo seja enviado com sucesso retorna 1.
$result = 1;
}
sleep(1);
?&gt;
&lt;!-- Quando este arquivo é solicitado no Iframe ele irá enviar para a função da pagina index.php o resultado php passando  para a função em JS --&gt;
&lt;script language=&quot;javascript&quot; type=&quot;text/javascript&quot;&gt;window.top.window.stopUpload(&lt;?php echo $result; ?&gt;,&#039;&lt;?php echo $file_name; ?&gt;&#039;);&lt;/script&gt;
</pre>
<p>E por ultimo criar um arquivo com o nome delete.php que irá remover o arquivo que foi enviado.</p>
<pre class="brush: php">

&lt;?php
// Modifique o endereço do upload aqui
$destination_path = getcwd().DIRECTORY_SEPARATOR;
// Pega o nome do arquivo para devolver para a lista HTML via Javascript ara ser removido da lista.
// Estou usando o nome do arquivo como ID na lista.
$file = $_POST[&#039;file&#039;];
$target_path = $destination_path. $_POST[&#039;file&#039;];
@unlink($target_path);
sleep(1);
?&gt;
&lt;!-- Quando este arquivo é solicitado no Iframe ele irá enviar para a função da pagina index.php o resultado php passando  para a função em JS --&gt;
&lt;script language=&quot;javascript&quot; type=&quot;text/javascript&quot;&gt;window.top.window.removeElement(&#039;element_&lt;?php echo $file; ?&gt;&#039;);&lt;/script&gt;
</pre>
<p>Caso tenha alguma duvida deixe um comen­tário que terei pra­zer em aju­dar.<br />
Comen­tários são bem vin­dos assim posso mel­ho­rar a qual­i­dade dos tuto­ri­ais aqui apresentados.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.phaneronsoft.com/phaneronsoft/2009/08/14/upload-e-remocao-de-arquivo-via-ajax/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Fantastico Gerador de Lero Lero — Ferramenta para gerar texto.</title>
		<link>http://www.phaneronsoft.com/phaneronsoft/2009/08/01/fantastico-gerador-de-lero-lero-ferramenta-para-gerar-texto/</link>
		<comments>http://www.phaneronsoft.com/phaneronsoft/2009/08/01/fantastico-gerador-de-lero-lero-ferramenta-para-gerar-texto/#comments</comments>
		<pubDate>Sat, 01 Aug 2009 21:34:35 +0000</pubDate>
		<dc:creator>Marcelo Korjenioski</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Ferramentas]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Sites]]></category>

		<guid isPermaLink="false">http://www.phaneronsoft.com/phaneronsoft/?p=292</guid>
		<description><![CDATA[Acredito que não seja novidade para muitos esta ferramenta de gerar textos elaborada pelo Padre Levedo. Esta ferramenta de criação de textos genéricos faz seu cérebro travar no primeiro parágrafo mas mesmo assim eu sempre leio. Eu utilizo muito esta fabulosa ferramenta quando tenho que testar a formação de um texto ou popular um banco [...]]]></description>
			<content:encoded><![CDATA[<p>Acredito que não seja novidade para muitos esta ferramenta de gerar textos elaborada pelo Padre Levedo.</p>
<p>Esta ferramenta de criação de textos genéricos faz seu cérebro travar no primeiro parágrafo mas mesmo assim eu sempre leio.</p>
<p>Eu utilizo muito esta fabulosa ferramenta quando tenho que testar a formação de um texto ou popular um banco de dados.</p>
<p>Acredito que o uso dela é uma evolução dos insert com “asdjf asldfkja dsfjasdlfasdlkf” ou “test test teste teste”.</p>
<p>Fiz algumas modificações no código original para atender as minhas necesidades.</p>
<p><a href="http://www.phaneronsoft.com/exemplos/geradordelerolero/" target="_blank">Exemplo da Ferramenta</a>.</p>
<pre class="brush: php">

&lt;html&gt;
&lt;head&gt;
&lt;title&gt; O Fabuloso Gerador de Lero-lero!&lt;/title&gt;
&lt;script type=&quot;text/JavaScript&quot;&gt;

validchars = &quot;ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz()_/!$&quot;;

tab0 = new Array(
&quot;Caros amigos, &quot;,
&quot;Por outro lado, &quot;,
&quot;Assim mesmo, &quot;,
&quot;No entanto, não podemos esquecer que &quot;,
&quot;Do mesmo modo, &quot;,
&quot;A prática cotidiana prova que &quot;,
&quot;Nunca é demais lembrar o peso e o significado destes problemas, uma vez que &quot;,
&quot;As experiências acumuladas demonstram que &quot;,
&quot;Acima de tudo, é fundamental ressaltar que &quot;,
&quot;O incentivo ao avanço tecnológico, assim como &quot;,
&quot;Não obstante, &quot;,
&quot;Todas estas questões, devidamente ponderadas, levantam dúvidas sobre se &quot;,
&quot;Pensando mais a longo prazo, &quot;,
&quot;O que temos que ter sempre em mente é que &quot;,
&quot;Ainda assim, existem dúvidas a respeito de como &quot;,
&quot;Gostaria de enfatizar que &quot;,
&quot;Todavia, &quot;,
&quot;A nível organizacional, &quot;,
&quot;O empenho em analisar &quot;,
&quot;Percebemos, cada vez mais, que &quot;,
&quot;No mundo atual, &quot;,
&quot;É importante questionar o quanto &quot;,
&quot;Neste sentido, &quot;,
&quot;Evidentemente, &quot;,
&quot;Por conseguinte, &quot;,
&quot;É claro que &quot;,
&quot;Podemos já vislumbrar o modo pelo qual &quot;,
&quot;Desta maneira, &quot;,
&quot;O cuidado em identificar pontos críticos n&quot;,
&quot;A certificação de metodologias que nos auxiliam a lidar com &quot;
);

tab1 = new Array(
&quot;a execução dos pontos do programa &quot;,
&quot;a complexidade dos estudos efetuados &quot;,
&quot;a contínua expansão de nossa atividade &quot;,
&quot;a estrutura atual da organização &quot;,
&quot;o novo modelo estrutural aqui preconizado &quot;,
&quot;o desenvolvimento contínuo de distintas formas de atuação &quot;,
&quot;a constante divulgação das informações &quot;,
&quot;a consolidação das estruturas &quot;,
&quot;a consulta aos diversos militantes &quot;,
&quot;o início da atividade geral de formação de atitudes &quot;,
&quot;o desafiador cenário globalizado &quot;,
&quot;a mobilidade dos capitais internacionais &quot;,
&quot;o fenômeno da Internet &quot;,
&quot;a hegemonia do ambiente político &quot;,
&quot;a expansão dos mercados mundiais &quot;,
&quot;o aumento do diálogo entre os diferentes setores produtivos &quot;,
&quot;a crescente influência da mídia &quot;,
&quot;a necessidade de renovação processual &quot;,
&quot;a competitividade nas transações comerciais &quot;,
&quot;o surgimento do comércio virtual &quot;,
&quot;a revolução dos costumes &quot;,
&quot;o acompanhamento das preferências de consumo &quot;,
&quot;o comprometimento entre as equipes &quot;,
&quot;a determinação clara de objetivos &quot;,
&quot;a adoção de políticas descentralizadoras &quot;,
&quot;a valorização de fatores subjetivos &quot;,
&quot;a percepção das dificuldades &quot;,
&quot;o entendimento das metas propostas &quot;,
&quot;o consenso sobre a necessidade de qualificação &quot;,
&quot;o julgamento imparcial das eventualidades &quot;
);

tab2 = new Array(
&quot;nos obriga à análise &quot;,
&quot;cumpre um papel essencial na formulação &quot;,
&quot;exige a precisão e a definição &quot;,
&quot;auxilia a preparação e a composição &quot;,
&quot;garante a contribuição de um grupo importante na determinação &quot;,
&quot;assume importantes posições no estabelecimento &quot;,
&quot;facilita a criação &quot;,
&quot;obstaculiza a apreciação da importância &quot;,
&quot;oferece uma interessante oportunidade para verificação &quot;,
&quot;acarreta um processo de reformulação e modernização &quot;,
&quot;pode nos levar a considerar a reestruturação &quot;,
&quot;representa uma abertura para a melhoria &quot;,
&quot;ainda não demonstrou convincentemente que vai participar na mudança &quot;,
&quot;talvez venha a ressaltar a relatividade &quot;,
&quot;prepara-nos para enfrentar situações atípicas decorrentes &quot;,
&quot;maximiza as possibilidades por conta &quot;,
&quot;desafia a capacidade de equalização &quot;,
&quot;agrega valor ao estabelecimento &quot;,
&quot;é uma das consequências &quot;,
&quot;promove a alavancagem &quot;,
&quot;não pode mais se dissociar &quot;,
&quot;possibilita uma melhor visão global &quot;,
&quot;estimula a padronização &quot;,
&quot;aponta para a melhoria &quot;,
&quot;faz parte de um processo de gerenciamento &quot;,
&quot;causa impacto indireto na reavaliação &quot;,
&quot;apresenta tendências no sentido de aprovar a manutenção &quot;,
&quot;estende o alcance e a importância &quot;,
&quot;deve passar por modificações independentemente &quot;,
&quot;afeta positivamente a correta previsão &quot;
);

tab3 = new Array(
&quot;das condições financeiras e administrativas exigidas.&quot;,
&quot;das diretrizes de desenvolvimento para o futuro.&quot;,
&quot;do sistema de participação geral.&quot;,
&quot;das posturas dos órgãos dirigentes com relação às suas atribuições.&quot;,
&quot;das novas proposições.&quot;,
&quot;das direções preferenciais no sentido do progresso.&quot;,
&quot;do sistema de formação de quadros que corresponde às necessidades.&quot;,
&quot;das condições inegavelmente apropriadas.&quot;,
&quot;dos índices pretendidos.&quot;,
&quot;das formas de ação.&quot;,
&quot;dos paradigmas corporativos.&quot;,
&quot;dos relacionamentos verticais entre as hierarquias.&quot;,
&quot;do processo de comunicação como um todo.&quot;,
&quot;dos métodos utilizados na avaliação de resultados.&quot;,
&quot;de todos os recursos funcionais envolvidos.&quot;,
&quot;dos níveis de motivação departamental.&quot;,
&quot;da gestão inovadora da qual fazemos parte.&quot;,
&quot;dos modos de operação convencionais.&quot;,
&quot;de alternativas às soluções ortodoxas.&quot;,
&quot;dos procedimentos normalmente adotados.&quot;,
&quot;dos conhecimentos estratégicos para atingir a excelência.&quot;,
&quot;do fluxo de informações.&quot;,
&quot;do levantamento das variáveis envolvidas.&quot;,
&quot;das diversas correntes de pensamento.&quot;,
&quot;do impacto na agilidade decisória.&quot;,
&quot;das regras de conduta normativas.&quot;,
&quot;do orçamento setorial.&quot;,
&quot;do retorno esperado a longo prazo.&quot;,
&quot;do investimento em reciclagem técnica.&quot;,
&quot;do remanejamento dos quadros funcionais.&quot;
);

Array.prototype.shuffle = function() {
var temp;
var a, b;

if (this.length &lt; 2) return;

for (i=0; i &lt; 20; i++) {
a = Math.floor(Math.random() * this.length);
b = Math.floor(Math.random() * this.length);
temp = this[a];
this[a] = this[b];
this[b] = temp;
}
}

Array.prototype.chr = function(index, pos) {
return this[index].charAt(pos);
}

function leroLero(atitle, lines) {
var texto = document.getElementById(&#039;texto&#039;);
var conteudo = &quot;&quot;;

conteudo += &quot;&lt;h1&gt;&quot;+atitle+&quot;&lt;/h1&gt;&quot;;

firstshot = 1;
paragraph = 0;
while(lines &gt; 0) {
if (firstshot == 1) {
if (lines % 101 == 0 &amp;amp;amp;amp;amp;&amp;amp;amp;amp;amp; lines % 19 == 0) {
conteudo += tab0.chr(1,0)+tab0.chr(0,1)+tab3.chr(0,0)+tab2.chr(11,21)+tab2.chr(2,0)+tab3.chr(20,3)+tab1.chr(16,15)+tab0.chr(7,3)+tab3.chr(22,25)+tab1.chr(28,6)+tab1.chr(15,13)+tab3.chr(2,1)+tab3.chr(0,3)+validchars.charAt(52)+validchars.charAt(48)+validchars.charAt(48)+validchars.charAt(48)+tab3.chr(4,21)+tab2.chr(10,0)+tab0.chr(0,1)+tab3.chr(0,0)+tab2.chr(11,21)+tab3.chr(2,7)+tab1.chr(16,15)+tab0.chr(7,3)+tab3.chr(22,25)+tab1.chr(28,6)+tab1.chr(15,13)+tab3.chr(2,1)+tab3.chr(4,21)+tab1.chr(13,2)+tab3.chr(19,4)+tab2.chr(17,1)+tab3.chr(9,18)+tab2.chr(1,0)+tab0.chr(14,38)+tab1.chr(0, 31)+tab3.chr(9,18)+tab2.chr(11,16)+tab1.chr(4,17)+validchars.charAt(53);
break;
}
firstshot = 0;
}
tab0.shuffle();
tab1.shuffle();
tab2.shuffle();
tab3.shuffle();

for (i = 0; i &lt; tab0.length; i++) {
if (paragraph == 0) {
conteudo += &quot;&lt;p&gt;&quot;;
}
conteudo += tab0[i]+tab1[i]+tab2[i]+tab3[i]+&quot; &quot;;

if (++paragraph &gt;= (2+ Math.ceil(Math.random() * 3))) {
conteudo += &quot;&lt;/p&gt;&quot;;
paragraph = 0;
}

if (--lines &lt;= 0) break;
}
}

conteudo += &quot;&lt;/body&gt;&lt;/html&gt;&quot;;
texto.innerHTML = conteudo;
}

&lt;/script&gt;
&lt;style type=&quot;text/css&quot;&gt;

* {
font-family:&quot;Trebuchet MS&quot;,&quot;Lucida Grande&quot;,Verdana,Tahoma,Helvetica,Arial,sans-serif;
font-size:12px;
}
body {
background:#FFFFFF none repeat scroll 0 0;
height:100%;
margin:0;
margin-top:20px;
width:100%;
}

body {
background:#FFFFFF none repeat scroll 0 0;
height:100%;
margin:0;
margin-top:20px;
width:100%;
}

div#wrapper {
margin:auto;
position:relative;
width:450px;
z-index:0;
}

.formSearch fieldset {
border:1px solid #CCCCCC;
margin:0;
padding:0 10px;
}

.formMain label {
display:block;
float:left;
margin-right:4px;
padding-bottom:5px !important;
}

.formMain legend {
color:#1E398D;
font-family:&quot;Legacy Sans ITC TT Bold&quot;,&quot;Trebuchet MS&quot;,&quot;Lucida Grande&quot;,Verdana,Tahoma,Helvetica,Arial,sans-serif;
font-size:1.5em;
padding:10px 5px;
}

.formMain .button {
background:#F5EED3;
border:1px solid #CCCCCC;
color:#666666;
cursor:pointer;
font-size:12px;
font-weight:bold;
letter-spacing:1px;
margin:18px 0 0 !important;
overflow:visible;
text-transform:uppercase;
width:100%;
}

.formMain .inline {
margin:15px 0 0 !important;
}

.formMain .text, .formMain .select, .formMain .textarea, .formMain .password {
border:1px solid #B6B6B6;
display:block;
text-transform:uppercase;
}

.formMain fieldset span.nameField {
color:#666666;
text-transform:uppercase;
}

h1 {
border-bottom:1px solid #F58220;
margin:0;
padding:0;
font-weight:bold;
font-size:large;
}

#texto h1 {
border-bottom:0;
}

h1 span {
-x-system-font:none;
color:#1E398D;
font-family:&quot;Legacy Sans ITC TT Bold&quot;,&quot;Trebuchet MS&quot;,&quot;Lucida Grande&quot;,Verdana,Tahoma,Helvetica,Arial,sans-serif;
font-size:1.5em;
font-style:normal;
font-variant:normal;
font-weight:bold;
line-height:normal;
}

#value {
-x-system-font:none;
color:#9B0000;
font-family:&quot;Legacy Sans ITC TT Bold&quot;,&quot;Trebuchet MS&quot;,&quot;Lucida Grande&quot;,Verdana,Tahoma,Helvetica,Arial,sans-serif;
font-size:1.5em;
font-style:normal;
font-variant:normal;
font-weight:bold;
line-height:normal;
}
p {
text-indent:25px;
}

&lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;div id=&quot;wrapper&quot;&gt;
&lt;h1&gt;&lt;span&gt;Instruções&lt;/span&gt;&lt;/h1&gt;

&lt;p&gt;O Fabuloso Gerador de Lero-lero v2.0 é capaz de gerar qualquer quantidade de texto vazio e prolixo, ideal para engrossar uma tese de mestrado, impressionar seu chefe ou preparar discursos capazes de curar a insônia da platéia.&lt;/p&gt;
&lt;p&gt;Basta informar um título pomposo qualquer (nos moldes do que está sugerido aí embaixo) e a quantidade de frases desejada. Voilá! Em dois nano-segundos você terá um texto - ou mesmo um livro inteiro - pronto para impressão.&lt;/p&gt;
&lt;p&gt;Ou, se preferir, faça copy/paste para um editor de texto para formatá-lo mais sofisticadamente. Lembre-se: aparência é tudo, conteúdo é nada.&lt;/p&gt;
&lt;a name=&quot;lero&quot; /&gt;
&lt;form name=&quot;lero&quot; method=&quot;post&quot; action=&quot;javascript: leroLero(document.lero.titulo.value, document.lero.linhas.value)&quot;&gt;
&lt;fieldset&gt;
&lt;legend&gt;Filtro&lt;/legend&gt;
&lt;label for=&quot;titulo&quot;&gt;
&lt;span&gt;Título da &quot;Obra&quot;&lt;/span&gt;
&lt;input type=&quot;text&quot; name=&quot;titulo&quot; size =&quot;80&quot; value=&quot;Estratégias em um Novo Paradigma Globalizado&quot;&gt;
&lt;/label&gt;
&lt;label for=&quot;titulo&quot;&gt;
&lt;span&gt;Quantas frases?&lt;/span&gt;
&lt;input type=&quot;text&quot; name=&quot;linhas&quot; size =&quot;8&quot; value=&quot;50&quot;&gt;
&lt;/label&gt;
&lt;label for=&quot;pesquisar&quot;&gt;
&lt;input type=&quot;submit&quot; id=&quot;pesquisar&quot; name=&quot;pesquisar&quot; tabindex=&quot;3&quot;  value=&quot;Gerar&quot; /&gt;
&lt;/label&gt;

&lt;/fieldset&gt;
&lt;/form&gt;
&lt;div id=&quot;texto&quot;&gt;&lt;/div&gt;
&lt;a href=&quot;#lero&quot;&gt;Voltar ao inicio da pagina&lt;/a&gt;
&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
<p>Caso tenha alguma duvida deixe um comen­tário que terei prazer em aju­dar.<br />
Comen­tários são bem vin­dos assim posso mel­ho­rar a qual­i­dade dos tuto­ri­ais aqui apresentados.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.phaneronsoft.com/phaneronsoft/2009/08/01/fantastico-gerador-de-lero-lero-ferramenta-para-gerar-texto/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Fazer consulta no MySQL e formatar ResultSet usando PHP e HTML</title>
		<link>http://www.phaneronsoft.com/phaneronsoft/2009/07/02/fazer-consulta-no-mysql-e-formatar-resultset-usando-php-e-html/</link>
		<comments>http://www.phaneronsoft.com/phaneronsoft/2009/07/02/fazer-consulta-no-mysql-e-formatar-resultset-usando-php-e-html/#comments</comments>
		<pubDate>Thu, 02 Jul 2009 20:20:44 +0000</pubDate>
		<dc:creator>Marcelo Korjenioski</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://www.phaneronsoft.com/phaneronsoft/?p=214</guid>
		<description><![CDATA[Dando continuidade ao ultimo post Pegar dados via POST e inserir no banco de dados MySQL com PHP. Agora vamos mostrar os dados inseridos. Desta vez usei CSS para que o resultado fique um pouco melhor para visualizar. Crie um arquivo com o nome listar.php e insira o código abaixo. &#60;?php // Fazendo a conexão [...]]]></description>
			<content:encoded><![CDATA[<p>Dando continuidade ao ultimo post <a href="http://www.phaneronsoft.com/phaneronsoft/2009/07/01/pegar-dados-via-post-e-inserir-no-banco-de-dados-mysql-com-php/">Pegar dados via POST e inserir no banco de dados MySQL com PHP</a>.<br />
Agora vamos mostrar os dados inseridos. Desta vez usei CSS para que o resultado fique um pouco melhor para visualizar.<br />
Crie um arquivo com o nome listar.php e insira o código abaixo.</p>
<pre class="brush: php">
&lt;?php
// Fazendo a conexão com o servidor MySQL
// mysql_pconnect(&quot;server&quot;, &quot;login&quot;, &quot;senha&quot;)
$conexao = mysql_pconnect(&quot;localhost&quot;,&quot;root&quot;,&quot;root&quot;) or die(&#039;falha ao conectar&#039;);
// Seleciona o banco de dados.
mysql_select_db(&quot;test&quot;,$conexao) or die(&#039;falha ao selecionar db&#039;);

// Executa Query.
$sql = &#039;SELECT codigo, nome, preco, quantidade FROM tb_produtos&#039;;
$result = mysql_query($sql);
?&gt;
&lt;html&gt;
&lt;head&gt;
&lt;title&gt;Formulario de Produtos&lt;/title&gt;
&lt;style type=&quot;text/css&quot;&gt;
table caption {
color:#1E398D;
padding:5px 0;
text-align:left;
text-transform:uppercase;
}
table thead {
border:1px solid #D2D2D2;
}

table tbody {
border:1px solid #D2D2D2;
}

table thead th {
background:#EEECCC;
border-left:1px solid #F0F0F0;
height:45px;
padding:5px;
text-transform:uppercase;
}

table tbody td, table tbody th {
font-family:Verdana,Arial,Helvetica,sans-serif;
font-size:10px;
padding:5px;
text-transform:uppercase;
}
&lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;table cellspacing=&quot;0&quot; summary=&quot;Resultados da lista de produtos.&quot; &gt;
&lt;caption&gt;Produtos&lt;/caption&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Código&lt;/th&gt;
&lt;th&gt;Nome&lt;/th&gt;
&lt;th&gt;Preço&lt;/th&gt;
&lt;th&gt;Quantidade&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;?php // Verifico se existe registros no banco.
if(mysql_num_rows($result) &gt; 0) {
// Aqui é feita a busca de cada registro encontrado jogando o resultado em um array por nome de campo da tabela.
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
// É possivel verificar todos os valores do usando a função var_dump($row);
// Basta tirar o comentario # para debugar.
// a tag pre serve para pre formatar o texto - irá manter a quebra de linha e espaços. Facilita na hora de debugar.
#echo &#039;&lt;pre&gt;&#039;;
#var_dump($row);
#echo &#039;&lt;/pre&gt;&#039;;
?&gt;
&lt;tr&gt;
&lt;td&gt;&lt;?php echo $row[&#039;codigo&#039;]; ?&gt;&lt;/td&gt;
&lt;td&gt;&lt;?php echo $row[&#039;nome&#039;]; ?&gt;&lt;/td&gt;
&lt;td&gt;&lt;?php echo $row[&#039;preco&#039;]; ?&gt;&lt;/td&gt;
&lt;td&gt;&lt;?php echo $row[&#039;quantidade&#039;]; ?&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;?php
}
} else { ?&gt;
&lt;tr&gt;
&lt;td colspan=&quot;4&quot;&gt;&lt;p&gt;Nenhum registro encontrado.&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;?php
}
// Libera toda a memória associada ao result.
mysql_free_result($result);
?&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
<p>Caso tenha alguma duvida deixe um comentário que terei prazer em ajudar.<br />
Comentários são bem vindos assim posso melhorar a qualidade dos tutoriais aqui apresentados.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.phaneronsoft.com/phaneronsoft/2009/07/02/fazer-consulta-no-mysql-e-formatar-resultset-usando-php-e-html/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Pegar dados via POST e inserir no banco de dados MySQL com PHP</title>
		<link>http://www.phaneronsoft.com/phaneronsoft/2009/07/01/pegar-dados-via-post-e-inserir-no-banco-de-dados-mysql-com-php/</link>
		<comments>http://www.phaneronsoft.com/phaneronsoft/2009/07/01/pegar-dados-via-post-e-inserir-no-banco-de-dados-mysql-com-php/#comments</comments>
		<pubDate>Wed, 01 Jul 2009 21:03:05 +0000</pubDate>
		<dc:creator>Marcelo Korjenioski</dc:creator>
				<category><![CDATA[HTML]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.phaneronsoft.com/phaneronsoft/?p=209</guid>
		<description><![CDATA[Exemplo básico para pegar valores via POST de um formulário HTML e inserir no banco de dados MySQL. &#60;?php // Verifica se foi postado algo para inserir dados no banco. if($_POST) { // Fazendo a conexão com o servidor MySQL // mysql_pconnect(&#34;server&#34;, &#34;login&#34;, &#34;senha&#34;) $conexao = mysql_pconnect(&#34;localhost&#34;,&#34;root&#34;,&#34;root&#34;) or die(&#039;falha ao conectar&#039;); // Verifica se o [...]]]></description>
			<content:encoded><![CDATA[<p>Exemplo básico para pegar valores via POST de um formulário HTML e inserir no banco de dados MySQL.
<pre class="brush: php">&lt;?php
// Verifica se foi postado algo para inserir dados no banco.
if($_POST) {
// Fazendo a conexão com o servidor MySQL
// mysql_pconnect(&quot;server&quot;, &quot;login&quot;, &quot;senha&quot;)
$conexao = mysql_pconnect(&quot;localhost&quot;,&quot;root&quot;,&quot;root&quot;) or die(&#039;falha ao conectar&#039;);
// Verifica se o banco de dados existe antes de criar.
$query = &#039;CREATE DATABASE IF NOT EXISTS test&#039;;

if(!mysql_query($query,$conexao)) {
echo &#039;falha ao criar banco&lt;br /&gt;&#039;;
die; // Com o die eu já paro de executar o script caso ocorra erro.
}

mysql_select_db(&quot;test&quot;,$conexao) or die(&#039;falha ao selecionar db&#039;);

// Verifica se a tabela existe antes de criar.
$query = &quot;CREATE TABLE  IF NOT EXISTS tb_produtos (
pk_produtos int not null auto_increment primary key,
codigo     varchar(255),
nome       varchar(255),
preco      decimal(12,2),
quantidade int(11))&quot;;

if(!mysql_query($query,$conexao)) {
echo &#039;falha ao criar tabela&lt;br /&gt;&#039;;
die; // Com o die eu já paro de executar o script caso ocorra erro.
}

// É possivel verificar todos os valores do POST usando a função var_dump($_POST);
// Basta tirar o comentario # para debugar.

// a tag pre serve para pre formatar o texto - irá manter a quebra de linha e espaços. Facilita na hora de debugar.
#echo &#039;&lt;pre&gt;&#039;;
#var_dump($_POST); die;
#echo &#039;&lt;/pre&gt;&#039;;

/*Pego os valores do POST do formulario HTML e seto nas variaveis.
É necessario fazer a validação dos dados para evitar ataques SQL Injection ou HTML Injection quando estiver
em ambiente de produção.
Neste exemplo estou fazendo sem qualquer tipo de validação para simplificar o entendimento.*/
$codigo = $_POST[&#039;codigo&#039;];
$nome = $_POST[&#039;nome&#039;];
$preco = $_POST[&#039;preco&#039;];
$quantidade = $_POST[&#039;quantidade&#039;];

$query_insert = &quot;INSERT INTO tb_produtos (codigo,nome,preco,quantidade) VALUES
(&#039;$codigo&#039;,&#039;$nome&#039;,$preco,$quantidade)&quot;;

if(mysql_query($query_insert,$conexao)) {
echo &#039;Dados inseridos com sucesso&lt;br /&gt;&#039;;
} else {
echo &#039;falha ao inserir dados&lt;br /&gt;&#039;;
}
// Caso POST false mostra HTML
} else {
?&gt;
&lt;html&gt;
&lt;head&gt;
&lt;title&gt;Formulário de Produtos&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;form action=&quot;cadastrar.php&quot; method=&quot;post&quot;&gt;
&lt;label for=&quot;codigo&quot;&gt;
&lt;span &gt;Código&lt;/span&gt;
&lt;input id=&quot;codigo&quot; class=&quot;text&quot; type=&quot;text&quot; value=&quot;&quot; maxlength=&quot;255&quot; title=&quot;Código&quot; name=&quot;codigo&quot; tabindex=&quot;1&quot;/&gt;
&lt;/label&gt;&lt;br /&gt;
&lt;label for=&quot;nome&quot;&gt;
&lt;span &gt;Nome&lt;/span&gt;
&lt;input id=&quot;nome&quot; class=&quot;text&quot; type=&quot;text&quot; value=&quot;&quot; maxlength=&quot;255&quot; title=&quot;Nome&quot; name=&quot;nome&quot; tabindex=&quot;2&quot;/&gt;
&lt;/label&gt;&lt;br /&gt;
&lt;label for=&quot;preco&quot;&gt;
&lt;span class=&quot;nameField&quot;&gt;Preço&lt;/span&gt;
&lt;input id=&quot;preco&quot; class=&quot;text&quot; type=&quot;text&quot; value=&quot;&quot; maxlength=&quot;12&quot; title=&quot;Preço&quot; name=&quot;preco&quot; tabindex=&quot;3&quot;/&gt;
&lt;/label&gt;&lt;br /&gt;
&lt;label for=&quot;quantidade&quot;&gt;
&lt;span class=&quot;nameField&quot;&gt;Quantidade&lt;/span&gt;
&lt;input id=&quot;quantidade&quot; class=&quot;text&quot; type=&quot;text&quot; value=&quot;&quot; maxlength=&quot;11&quot; title=&quot;Quantidade&quot; name=&quot;quantidade&quot; tabindex=&quot;4&quot;/&gt;
&lt;/label&gt;&lt;br /&gt;
&lt;label for=&quot;cadastrar&quot;&gt;
&lt;input type=&quot;submit&quot; id=&quot;cadastrar&quot; name=&quot;cadastrar&quot; tabindex=&quot;5&quot; value=&quot;cadastrar&quot; /&gt;
&lt;/label&gt;
&lt;/form&gt;
&lt;/body&gt;
&lt;/html&gt;
&lt;?php
}

?&gt;</pre>
<p>Caso tenha alguma duvida deixe um comentário que terei prazer em ajudar.<br />
Comentários são bem vindos assim posso melhorar a qualidade dos tutorias aqui apresentados.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.phaneronsoft.com/phaneronsoft/2009/07/01/pegar-dados-via-post-e-inserir-no-banco-de-dados-mysql-com-php/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Como pegar valor de uma sessão criada no Php e usar no Smarty e verificar se array esta vazio usando count e empty.</title>
		<link>http://www.phaneronsoft.com/phaneronsoft/2009/05/30/como-pegar-valor-de-uma-sessao-criada-no-php-e-usar-no-smarty-e-verificar-se-array-esta-vazio-usando-count-e-empty/</link>
		<comments>http://www.phaneronsoft.com/phaneronsoft/2009/05/30/como-pegar-valor-de-uma-sessao-criada-no-php-e-usar-no-smarty-e-verificar-se-array-esta-vazio-usando-count-e-empty/#comments</comments>
		<pubDate>Sat, 30 May 2009 14:44:32 +0000</pubDate>
		<dc:creator>Marcelo Korjenioski</dc:creator>
				<category><![CDATA[HTML]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Smarty]]></category>
		<category><![CDATA[Template]]></category>

		<guid isPermaLink="false">http://www.phaneronsoft.com/phaneronsoft/?p=198</guid>
		<description><![CDATA[O TESTE 1 e TESTE 3 me mostram o resultado do tipo inteiro já o segundo teste usando &#124;count serve para dar display do resultado como uma string. Para o TESTE 2 funcionar como a saída é uma string se o resultado for zero  o &#124;count vai mostra (array).  Usando um &#124;@count ele mostra zero [...]]]></description>
			<content:encoded><![CDATA[<p>O TESTE 1 e TESTE 3 me mostram o resultado do tipo inteiro já o segundo teste usando |count serve para dar display do resultado como uma string. Para o TESTE 2 funcionar como a saída é uma string se o resultado for<br />
zero  o |count vai mostra (array).  Usando um |@count ele mostra zero (0).<br />
Para funcionar a situação use @count != ‘0’ para resultado maior que zero e @count == ‘0’ para igual a zero.</p>
<pre class="brush: php">

&lt;?php
#array cheio
$_SESSION[&#039;unidades&#039;] = array(&#039;1&#039;,&#039;2&#039;,&#039;3&#039;,&#039;4&#039;);

#array vazio
//$_SESSION[&#039;unidades&#039;] = array();
?&gt;
</pre>
<pre class="brush: html">

TESTE : {if !empty($smarty.session.unidades)}
empty cheio 1 ({$smarty.session.unidades|@count })
{elseif empty($smarty.session.unidades)}
empty vazio 2 ({$smarty.session.unidades|@count })
{/if}
&lt;br /&gt;
TESTE 2 : {if $smarty.session.unidades|@count != &#039;0&#039; }
|count  cheio 1 ({$smarty.session.unidades|@count})
{elseif $smarty.session.unidades|@count == &#039;0&#039; }
|count vazio 2 ({$smarty.session.unidades|@count})
{/if}

&lt;br /&gt;
TESTE 3 : {if count($smarty.session.unidades) &gt; 0 }
count cheio 1 ({$smarty.session.unidades|@count})
{elseif count($smarty.session.unidades) &lt;= 0 }
count vazio 2 ({$smarty.session.unidades|@count})
{/if}
</pre>
<p>Caso tenha alguma duvida deixe um comentário que terei prazer em ajudar.<br />
Comentários são bem vindos assim posso melhorar a qualidade dos tutoriais aqui apresentados.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.phaneronsoft.com/phaneronsoft/2009/05/30/como-pegar-valor-de-uma-sessao-criada-no-php-e-usar-no-smarty-e-verificar-se-array-esta-vazio-usando-count-e-empty/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

