Um tutorial indispensavel e util para se levantar um servico de Node.Js no servidor da Amazon AWS que em breve postarei um video sobre o mesmo:https://codeforgeek.com/2015/05/setup-node-development-environment-amazon-ec2/Video auxiliar que ajuda a entender como liberar a porta necessaria para rodar o servico do Node.JS:https://www.youtube.com/watch?v=WxhFq64FQzAMuito bom.Abs. Ola.Desta vez vamos conhecer um pouco mais de personalizacao do cadastro em formularios do Wordpress.Vamos criar um validador captcha com imagem de verificacao gerada pelo PHP GD Library.Primeiro criamos pelo administrador do WordPress uma Pagina Personalizada e dentro da pasta de /wp-content/themes/[seu_tema]/ criaremos um arquivo por exemplo /page-contato.php.No cabecalho do documento ou no final inserimos o seguinte javascript:----------------------------------------------------------------------------------------------------------<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> <script>jQuery.noConflict();jQuery(document).ready(function(){ jQuery('#refresh-captcha').on('click', function(e){ jQuery('#captcha').attr("src","./php/newCaptcha.php?rnd=" + Math.random()); }); jQuery('#validar').click(function () { jQuery.ajax({ type: "POST", url: "./verificaCodeCapt.php", dataType: "json", data: { 'code':jQuery('input#captcha').val() }, success: function (response) { if(response.resp === 'Incorreto'){ jQuery('#errorCode').html("<span style='color:red;'>Codigo Invalido</span>"); jQuery('input#captcha').val('').focus(); }else { jQuery('#errorCode').html("<span style='color:blue;'>Codigo OK</span>"); } }, error: function (xhr, ajaxOptions, thrownError) { alert(xhr.status); alert(thrownError); } }); });});</script> ----------------------------------------------------------------------------------------------------------Repare neste codigo javascript da biblioteca jQuery na linha da acao ON (jQuery('#refresh-captcha').on()) temos a chamada do seguinte arquivo PHP, responsavel pela geracao da imagem criada pelo PHP:----------------------------------------------------------------------------------------------------------<?php//newCaptcha.phpsession_start();$string = '';for ($i = 0; $i < 5; $i++) { $string .= chr(rand(97, 122));}$_SESSION['captcha'] = $string; //store the captcha$dir = '../fonts/';$image = imagecreatetruecolor(165, 50); //custom image size$font = "PlAGuEdEaTH.ttf"; // custom font style$color = imagecolorallocate($image, 92, 124, 237); // custom color$white = imagecolorallocate($image, 245, 245, 245); // custom background colorimagefilledrectangle($image,0,0,399,99,$white);imagettftext ($image, 30, 0, 10, 40, $color, $dir.$font, $_SESSION['captcha']);header("Content-type: image/png");imagepng($image);?>----------------------------------------------------------------------------------------------------------Ja acao de submit ao clicar no botao "Enviar" temos a chamada no Click do arquivo PHP que verifica se as letras na imagem correspondem as digitadas pelo usuario:----------------------------------------------------------------------------------------------------------<?phpsession_start();if(isset($_REQUEST['code'])){ //var_dump($_SESSION['captcha']); //var_dump($_REQUEST['code']); if(strtolower($_REQUEST['code']) === strtolower($_SESSION['captcha'])){ echo json_encode(array('resp'=>'Valido')); }else { echo json_encode(array('resp'=>'Incorreto')); } //echo json_encode(strtolower($_REQUEST['code']) == strtolower($_SESSION['captcha']));}else{ echo 0; // no code}session_destroy('captcha');?>----------------------------------------------------------------------------------------------------------Ja no formulario HTML do arquivo /page-contato.php podemos montar da seguinte forma:----------------------------------------------------------------------------------------------------------<form method="post" > <div id="captcha-wrap"> <img src="./img/refresh.png" width="35" alt="refresh captcha" id="refresh-captcha" /> <img src="./captcha/newCaptcha.php" alt="" id="captcha" /> <br> <input class="narrow text input" id="captcha" name="captcha" type="text" placeholder="Verification Code" required /> <span id="errorCode"></span> <br><br> <input type="button" id="validar" value="Enviar"> <br> </div></form> ----------------------------------------------------------------------------------------------------------O resultado final fica bem interessante, basta trabalhar um pouco no layout pra ficar melhor e se adaptar a qualquer formulario.Para os que curtem facilidade baixem a versao funcional do codigo fonte no Git: https://github.com/robertosm822/jQuery-Captcha-PHPAte logo. Com a finalidade de dar continuidade aos estudos de Java2ME consegui o seguinte resultado ao instalar no servidor Apache PHP o Servidor tambem de Java para Internet.Se ja temos o MAMP instalado em nosso MAC OS, primeiro devemos baixar o Tomcat em sua ultima versao, embora eu tenha baixado a 7, todos podem baixar a versao 8:-> http://tomcat.apache.org/download-80.cgiObserve no site em "Binary Distributions", voce pode baixar a versao em .zip pois seria melhor.Segundo passo: Extraia o arquivo na pasta do MAMP (/Applications/MAMP/) .Terceiro passo: Troque o nome da pasta descompactada (apache-tomcat-X.X.XX) para tomcat.Quarto Passo: Adicione esta linha /Applications/MAMP/tomcat/bin/startup.sh no final do arquivo /Applications/MAMP/bin/startApache.shQuinto passo: adicione esta linha/Applications/MAMP/tomcat/bin/shutdown.sh no final do arquivo /Applications/MAMP/bin/stopApache.shPor ultimo, mude as permissoes destes arquivos na pasta tomcat, executando os seguintes comandos dentro da pasta do Tomcat ( /Applications/MAMP/tomcat/bin):chmod +x startup.shchmod +x shutdown.shchmod +x catalina.shchmod +x setclasspath.shchmod