Veja bem,
este código funciona sim. Eu é que estava comendo esferas....
Sorry folks.
Veja bem,
estava pesquisando e encontrei este código
http://minimizr.com/blog/2006/10/minimal-how-to-use-google-maps-api-with-php/
Testei mas não vem nada. Dá o vácuo total. Este é um código I.V.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;
charset=utf-8"/>
<title>Google Maps JavaScript API Example</title>
<script src="http://maps.google.com/maps?
file=api&v=2&key=ABCDEFGH..."
type="text/javascript"></script>
<script type="text/javascript">
//<![CDATA[
function load() {
if (GBrowserIsCompatible()) {
var map = new GMap2(
document.getElementById("map"));
map.setCenter(
new GLatLng(37.4419, -122.1419), 13);
}
}
//]]>
</script>
</head>
<body onload="load()" onunload="GUnload()">
<div id="map"
style="width: 500px; height: 300px"></div>
</body>
</html>
quinta-feira, 31 de maio de 2012
Famous quote of Kill Bill
Veja bem,
se você traalha no mundo corporativo como eu, já deve ter se deparada com uma situação, principalmente reuniões, onde você quis fazer o que O-Ren Ishii fez, em Kill Bill 1, durante a reunião com os chefes da Yakuza.
"As your leader, I encourage you from time to time, and always in a respectful manner, to question my logic. If you're unconvinced that a particular plan of action I've decided is the wisest, tell me so, but allow me to convince you and I promise you right here and now, no subject will ever be taboo. Except, of course, the subject that was just under discussion. The price you pay for bringing up either my Chinese or American heritage as a negative is... I collect your fucking head. Just like this fucker here. Now, if any of you sons of bitches got anything else to say, NOW'S THE FUCKING TIME!"
-O-Ren Ishii
quarta-feira, 30 de maio de 2012
Google Maps - Exemplo de múltiplos markers
Veja bem, a demo é esta:
https://google-developers.appspot.com/maps/documentation/javascript/v2/examples/marker-simple
Quando você exibe o código fonte aparece o código abaixo:
https://google-developers.appspot.com/maps/documentation/javascript/v2/examples/marker-simple
Quando você exibe o código fonte aparece o código abaixo:
<!DOCTYPE html> | |
<html lang="en"> | |
<head> | |
<meta charset="utf-8" /> | |
<title>Google Maps JavaScript API Example: Simple Markers</title> | |
<script src="//maps.google.com/maps?file=api&v=2&key=AIzaSyD4iE2xVSpkLLOXoyqT-RuPwURN3ddScAI" | |
type="text/javascript"></script> | |
<script type="text/javascript"> | |
function initialize() { | |
if (GBrowserIsCompatible()) { | |
var map = new GMap2(document.getElementById("map_canvas")); | |
map.setCenter(new GLatLng(37.4419, -122.1419), 13); | |
// Add 10 markers to the map at random locations | |
var bounds = map.getBounds(); | |
var southWest = bounds.getSouthWest(); | |
var northEast = bounds.getNorthEast(); | |
var lngSpan = northEast.lng() - southWest.lng(); | |
var latSpan = northEast.lat() - southWest.lat(); | |
for (var i = 0; i < 10; i++) { | |
var latlng = new GLatLng(southWest.lat() + latSpan * Math.random(), | |
southWest.lng() + lngSpan * Math.random()); | |
map.addOverlay(new GMarker(latlng)); | |
} | |
} | |
} | |
</script> | |
</head> | |
<body onload="initialize()" onunload="GUnload()"> | |
<div id="map_canvas" style="width: 500px; height: 300px"></div> | |
</body> | |
</html> Testarei hoje às 21:00 horas. Parece promissor. PS: Trabalhar com mapas é cansativo, mas o resultado compensa. |
Happy Birthday to me
Life is amazing!
Happy birthday to me!
terça-feira, 29 de maio de 2012
Utilização do CURL do PHP
Veja bem,
Este é um exemplo de utilização do CURL.
$ch = curl_init();
$url = "http://" . $_SERVER['SERVER_NAME'] . "/cliente/utilitario/lerrg.php?rg=" . $rg;
$timeout = 20;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_NOBODY, false); // remove body
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$data = curl_exec($ch);
curl_close($ch);
return $data;
Coloquei em vermelho dois parâmetros "traiçoeiros". Apesar de estar escrito Header e Body, eles não se referem ao Header ou Body da página que você está chamando.
Utilize esta configuração para acessar o conteúdo da página sem problemas.
That's it!
Este é um exemplo de utilização do CURL.
$ch = curl_init();
$url = "http://" . $_SERVER['SERVER_NAME'] . "/cliente/utilitario/lerrg.php?rg=" . $rg;
$timeout = 20;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_NOBODY, false); // remove body
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$data = curl_exec($ch);
curl_close($ch);
return $data;
Coloquei em vermelho dois parâmetros "traiçoeiros". Apesar de estar escrito Header e Body, eles não se referem ao Header ou Body da página que você está chamando.
Utilize esta configuração para acessar o conteúdo da página sem problemas.
That's it!
Criar um índice no MySQL
Veja bem,
Exemplo de criação de índice:
CREATE INDEX indx_cliente ON Cliente (descricao);
indx_cliene = nome do índice.
Cliente = nome da tabela.
descricao = nome da coluna.
That's it.
Exemplo de criação de índice:
CREATE INDEX indx_cliente ON Cliente (descricao);
indx_cliene = nome do índice.
Cliente = nome da tabela.
descricao = nome da coluna.
That's it.
Alien Planet - Documentário
segunda-feira, 28 de maio de 2012
API Google
Veja bem,
Você também está querendo usar as API's do Google? Em especial o GoogleMaps com Geocoding? Faça o seguinte
Acesse
https://code.google.com/apis/console
Nesse endereço você consegue a Key, sem a qual você não consegue fazer nada.
Referência:
Você também está querendo usar as API's do Google? Em especial o GoogleMaps com Geocoding? Faça o seguinte
Acesse
https://code.google.com/apis/console
Nesse endereço você consegue a Key, sem a qual você não consegue fazer nada.
Referência:
Obtaining an API Key
All Maps API applications* should load the Maps API using an API key. Using an API key enables you to monitor your application's Maps API usage, and ensures that Google can contact you about your application if necessary. If your application's Maps API usage by exceeds the Usage Limits, you must load the Maps API using an API key in order to purchase additional quota.
* Google Maps API for Business developers must not include a key in their requests. Please refer to Loading the Google Maps JavaScript API for Business-specific instructions.
To create your API key:
- Visit the APIs Console at https://code.google.com/apis/console and log in with your Google Account.
- Click the Services link from the left-hand menu.
- Activate the Google Maps API v3 service.
- Click the API Access link from the left-hand menu. Your API key is available from the API Access page, in the Simple API Access section. Maps API applications use the Key for browser apps.
Mudar o domínio localhost - Windows
Às vezes você precisa mudar o domínio da sua máquina, ou acrescentar outro além do localhost que você já tem.
Know-how:
C:\Windows\System32\drivers\etc\host
Abaixo acrescentei o domínio netdaniels.com.
Depois disso é só reiniciar a máquina e testar.
# Copyright (c) 1993-2009 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
# 102.54.94.97 rhino.acme.com # source server
# 38.25.63.10 x.acme.com # x client host
# localhost name resolution is handled within DNS itself.
# 127.0.0.1 localhost
# ::1 localhost
127.0.0.1 localhost
127.0.0.1 netdaniels.com
Know-how:
C:\Windows\System32\drivers\etc\host
Abaixo acrescentei o domínio netdaniels.com.
Depois disso é só reiniciar a máquina e testar.
# Copyright (c) 1993-2009 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
# 102.54.94.97 rhino.acme.com # source server
# 38.25.63.10 x.acme.com # x client host
# localhost name resolution is handled within DNS itself.
# 127.0.0.1 localhost
# ::1 localhost
127.0.0.1 localhost
127.0.0.1 netdaniels.com
Vocabulário de Francês - 01
Estou lendo um livro em francês chamado Le Monde de Sophie. Eu vou lendo e anotando as palavras que não conheço para depois procurar no dicionário. Eis mais uma lista:
Algumas traduções me parecem esquisitas, se você perceber alguma coisa errada, comente. Obrigado.
le potage | a sopa |
couette | edredão |
sommeil | dormir |
placard | armário |
l'étagère | a prateleira |
mi-bas | Elevações de Joelho |
la haie | o hedge |
remonta | subiu |
demeures | casas |
atteignirent | alcançado |
lovée | coiled |
canapé | sofá |
plumes d'oie | ganso |
tapissé | forrado |
songe | sonho |
facteur | fator |
lézarda | lézarda |
déterrer | desenterrar |
arpenter | vistoria |
fusil | rifle |
incunable | incunábulo |
berceau | berço |
la poudre | pó |
à tour de bras | um braço de cada vez |
Algumas traduções me parecem esquisitas, se você perceber alguma coisa errada, comente. Obrigado.
domingo, 27 de maio de 2012
Classe de validação : CValidator
Veja bem,
Se você está que nem eu, desenvolvendo com yii já deve ter chegado a questão das classes de validação. Se não chegou, vai chegar.
No meu caso construí uma classe de validação para CEP.
Primeiro passo:
Na classe Model
public function rules()
{
// NOTE: you should only define rules for those attributes that
// will receive user inputs.
return array(
array('code',
'required'),
array(
'code','cep'),
// The following rule is used by search().
// Please remove those attributes that should not be searched.
array(
'id, code, noise, accessibility, neighborhood, afforestation, violence',
'safe',
'on' => 'search'),
);
}
//Segundo passo criar a classe de validação..........
class cep extends CValidator
{ //início da Classe
public function validateAttribute($object, $attribute)
{
$message = utf8_encode("não é válido ou não existe.");
if (!$this->validaCEP($object->$attribute)) {
$message = $this->message !== null ? $this->message : Yii::t('cep',
'{attribute} ' . $message);
$this->addError($object, $attribute, $message);
}
}
public function clientValidateAttribute($object, $attribute)
{
return "";
}
private function validaCEP($cep)
{
$cep = trim($cep);
if (!is_numeric($cep)) {
return false;
}
if (strlen($cep) != 8) {
return false;
}
$content = $this->get_data("utilitario/lercep.php?cep=$cep");
$content = trim($content);
if (strlen($content) == 0)
{
return false;
}
return true;
}
function get_data($url)
{
$ch = curl_init();
$timeout = 5;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
} //fim da Classe
Para mais detalhes acesse este link
http://abelcorreadias.blogspot.com.br/2012/01/criando-um-validator-para-o-campo-cpf.html
PS: utilitario/lercep.php não é um php mágico que acesse o cep de algum site como república virtual ou mesmo o site do correio. Estou acessando minha própria base de CEP. Atenção: a base de CEP do correio é gigantesca.
Se você está que nem eu, desenvolvendo com yii já deve ter chegado a questão das classes de validação. Se não chegou, vai chegar.
No meu caso construí uma classe de validação para CEP.
Primeiro passo:
Na classe Model
public function rules()
{
// NOTE: you should only define rules for those attributes that
// will receive user inputs.
return array(
array('code',
'required'),
array(
'code','cep'),
// The following rule is used by search().
// Please remove those attributes that should not be searched.
array(
'id, code, noise, accessibility, neighborhood, afforestation, violence',
'safe',
'on' => 'search'),
);
}
//Segundo passo criar a classe de validação..........
class cep extends CValidator
{ //início da Classe
public function validateAttribute($object, $attribute)
{
$message = utf8_encode("não é válido ou não existe.");
if (!$this->validaCEP($object->$attribute)) {
$message = $this->message !== null ? $this->message : Yii::t('cep',
'{attribute} ' . $message);
$this->addError($object, $attribute, $message);
}
}
public function clientValidateAttribute($object, $attribute)
{
return "";
}
private function validaCEP($cep)
{
$cep = trim($cep);
if (!is_numeric($cep)) {
return false;
}
if (strlen($cep) != 8) {
return false;
}
$content = $this->get_data("utilitario/lercep.php?cep=$cep");
$content = trim($content);
if (strlen($content) == 0)
{
return false;
}
return true;
}
function get_data($url)
{
$ch = curl_init();
$timeout = 5;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
} //fim da Classe
Para mais detalhes acesse este link
http://abelcorreadias.blogspot.com.br/2012/01/criando-um-validator-para-o-campo-cpf.html
PS: utilitario/lercep.php não é um php mágico que acesse o cep de algum site como república virtual ou mesmo o site do correio. Estou acessando minha própria base de CEP. Atenção: a base de CEP do correio é gigantesca.
Fatal error: Call to undefined function curl_init()
Veja bem,
estava eu trabalhando com o yii (framework php) e tomei este erro
Fatal error: Call to undefined function curl_init()
Obs: Estou usando o XAMPP
Como resolve?
Acesse o arquivo php.ini
xxxxxx\php\php.ini
descomente
;extension=php_curl.dll
tira o ponto e vírcula
extension=php_curl.dll
Reinicia a máquina.
Voilà!
estava eu trabalhando com o yii (framework php) e tomei este erro
Fatal error: Call to undefined function curl_init()
Obs: Estou usando o XAMPP
Como resolve?
Acesse o arquivo php.ini
xxxxxx\php\php.ini
descomente
;extension=php_curl.dll
tira o ponto e vírcula
extension=php_curl.dll
Reinicia a máquina.
Voilà!
Ask me nicely and maybe I'll tell you... - Game Of thrones
And what's your story, bastard?
Problemas com acentuação (a revanche)
Veja bem,
O conteúdo que vem do banco do MySql estava vindo perfeito. Entretanto os labels, das páginas PHP estava aparecendo com problemas.
Exemplo:
Arboriza��o *
Como resolvi:
$label_arborizacao = utf8_encode("Arborização");
echo $label_arborizacao;
Resultado
Arborização.
Voilà!
Marcadores:
Acentuação,
MySQL,
PHP,
UTF8,
Windows
Problemas com acentuação
Veja bem,
depois de importar centenas de milhares de linhas para o meu banco MySql, descobri que a acentuação estava toda equivocada.
ã aparecia como este sinal |-
Como resolvi:
Estou usando o MySql.exe. Uso o prompt do DOS. A performance é melhor.
MySql.exe -u root -p
<b>> charset Latin1</b>
source C:\xxx\xxx\xxx\arquivo.sql
Voilà!
Apesar do collation das tabelas estar
ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
ao mudar o charset antes da importação, os acentos da nosso idioma não são afetados.
And that's it.
Marcadores:
Acentuação,
Collation,
DOS,
MySQL,
Windows
sábado, 26 de maio de 2012
Substituição de caracteres de arquivos via DOS
Achei uma bat para fazer replace de caracteres em arquivos muito grandes
O nome da bat é : BatchSubstitute.bat
Estou testando com um arquivo de 50 MB.
Visite : http://www.dostips.com/?t=batch.findandreplace
Description: | This batch allows string substitution in a text file. It parses each line of a text file for a particular string and replaces it with another string. I.e. To replace all occurrences of "Yellow Submarine" in "color.txt" with "uboot" and put the output on the screen run: BatchSubstitute.bat "Yellow Submarine" uboot color.txt Or type color.txt|BatchSubstitute.bat "Yellow Submarine" uboot Optionally pipe the output into a new file, i.e. BatchSubstitute.bat "Yellow Submarine" uboot color.txt>newfile.txt Or type color.txt|BatchSubstitute.bat "Yellow Submarine" uboot>newfile.txt Note: Due to the nature of the FOR command and string substitution, the following known restrictions apply:
|
echo off
REM -- Prepare the Command Processor --
SETLOCAL ENABLEEXTENSIONS
SETLOCAL DISABLEDELAYEDEXPANSION
::BatchSubstitude - parses a File line by line and replaces a substring"
::syntax: BatchSubstitude.bat OldStr NewStr File
:: OldStr [in] - string to be replaced
:: NewStr [in] - string to replace with
:: File [in] - file to be parsed
:$changed 20100115
:$source http://www.dostips.com
if "%~1"=="" findstr "^::" "%~f0"&GOTO:EOF
for /f "tokens=1,* delims=]" %%A in ('"type %3|find /n /v """') do (
set "line=%%B"
if defined line (
call set "line=echo.%%line:%~1=%~2%%"
for /f "delims=" %%X in ('"echo."%%line%%""') do %%~X
) ELSE echo.
)
Viagem aos limites do universo
Veja bem,
um video excelente!
um video excelente!
Marcadores:
Astronomia,
Espaço,
Galáxia,
National Geographic,
Universo
sexta-feira, 25 de maio de 2012
MySQL - Executar arquivos gigantes
Veja bem,
Estou subindo a base de CEP dos correios para o meu MYSQL.
Se você quer fazer tem um SQL de 50 MB ou mais, que é o meu caso,
utilize o MySQL.exe e faça isso via DOS.
No prompt digite
source [caminho para o arquivo]
pronto!
Assim é bem mais prático e não trava a sua máquina (fica apenas um pouco mais lenta que o normal até acabar a execução de todo o SQL).
Estou subindo a base de CEP dos correios para o meu MYSQL.
Se você quer fazer tem um SQL de 50 MB ou mais, que é o meu caso,
utilize o MySQL.exe e faça isso via DOS.
No prompt digite
source [caminho para o arquivo]
pronto!
Assim é bem mais prático e não trava a sua máquina (fica apenas um pouco mais lenta que o normal até acabar a execução de todo o SQL).
MySQL - ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'db'
Veja bem,
Estava eu tentando connectar no MySQL via bin\MySQL.exe e recebia esta mensagem sem parar
Access denied for user ''@'localhost' to database 'db'
Isso acontece porque você não pode chamar o executável direto. Não seja uma anta como eu que demorou um tempão para descobrir que precisa passar um usuário e uma senha:
1 - Vá no prompt do DOS cmd
2 - Digite MySQL.exe -u root -p [digite aqui a password]
Se a sua password está vazia que nem a minha vai aparecer uma outra linha
password:
Apenas dê enter e pronto.
Tudo funcionará como mágica.
Estava eu tentando connectar no MySQL via bin\MySQL.exe e recebia esta mensagem sem parar
Access denied for user ''@'localhost' to database 'db'
Isso acontece porque você não pode chamar o executável direto. Não seja uma anta como eu que demorou um tempão para descobrir que precisa passar um usuário e uma senha:
1 - Vá no prompt do DOS cmd
2 - Digite MySQL.exe -u root -p [digite aqui a password]
Se a sua password está vazia que nem a minha vai aparecer uma outra linha
password:
Apenas dê enter e pronto.
Tudo funcionará como mágica.
terça-feira, 15 de maio de 2012
Thrive
Very, very interesting video.
segunda-feira, 14 de maio de 2012
Vampire Hunter D: Bloodlust
Excelente animação. É um pouco parecido com mangá, mas é bem menos histriônico.
Vale a pena.
domingo, 13 de maio de 2012
Only exceptional people
Only exceptional humans tend to become aware of the Matrix, who have "a rare degree of intuition, sensitivity, and a questioning nature", all qualities which are used to identify inconsistencies in the Matrix.
quarta-feira, 9 de maio de 2012
NERDS NÃO SÃO GEEKS
Veja bem, nerd não é geek.
Geek são aquelas pessoas que estão a procura da mais nova novidade do mercado de xbox, playstation, redes sociais, mobiles, IPHONES, IPADS e afins. Os nerds, são aqueles que fazem as aplicações que são instaladas nesses hardwares.
Ou seja, os nerds horas, dias, noites, meses para criar as novidades, e os geeks simplesmente as consomem assim que elas são lançadas.
PS: Não, o fato do seu filho(a) de quatro anos saber operar o celular não faz dele um gênio. Quando ele estiver construindo Apps para estes celulares aí talvez você possa desconfiar da genialidade dele(a). OK?
Geek são aquelas pessoas que estão a procura da mais nova novidade do mercado de xbox, playstation, redes sociais, mobiles, IPHONES, IPADS e afins. Os nerds, são aqueles que fazem as aplicações que são instaladas nesses hardwares.
Ou seja, os nerds horas, dias, noites, meses para criar as novidades, e os geeks simplesmente as consomem assim que elas são lançadas.
PS: Não, o fato do seu filho(a) de quatro anos saber operar o celular não faz dele um gênio. Quando ele estiver construindo Apps para estes celulares aí talvez você possa desconfiar da genialidade dele(a). OK?
domingo, 6 de maio de 2012
yii - Funcionou
Consegui instalar e fazer funcionar o yii.
yii - Problemas na hora de gerar o test drive.
C:\>C:\xampp\htdocs\yii\framework\yiic webapp C:\xampp\htdocs\testdrive
'"php.exe"' is not recognized as an internal or external command,
operable program or batch file.
http://www.yiiframework.com
Solução
Estou utilizando windows como S.O.
Desta forma, basta alterar o framework\yiic.bat
O meu yiic. bat ficou assim
cd c:\xampp\php
@echo off
rem -------------------------------------------------------------
rem Yii command line script for Windows.
rem
rem This is the bootstrap script for running yiic on Windows.
rem
rem @author Qiang Xue <qiang.xue@gmail.com>
rem @link http://www.yiiframework.com/
rem @copyright Copyright © 2008 Yii Software LLC
rem @license http://www.yiiframework.com/license/
rem @version $Id: yiic.bat 2485 2010-09-19 17:07:11Z qiang.xue $
rem -------------------------------------------------------------
@setlocal
set YII_PATH=%~dp0
if "%PHP_COMMAND%" == "" set PHP_COMMAND=php.exe
"%PHP_COMMAND%" "%YII_PATH%yiic" %*
@endlocal
----------------------------------------------------------------------------------------------------
Pequena explicação
cd c:\xampp\php -> é caminho onde está o php
Rádios francesas
http://www.listenlive.eu/france.html
Radio que ouço : France Info.
Hoje acontece a decisão presidencial na França.
Minha preferência : Je n'ai pas formé une opinion.
Radio que ouço : France Info.
Hoje acontece a decisão presidencial na França.
Minha preferência : Je n'ai pas formé une opinion.
Acabei de ler o livro
FAÇA UM SITE
ORIENTADO POR PROJETO
PHP 5.2
MYSQL 5.0
COMÉRCIO ELETRÔNICO
- CARLOS A. J. OLIVERO -
31 CAPÍTULOS
Vários laboratórios.
Depois de finalizar todos os laboratórios você terá um site de comércio eletrônico quase perfeito.
Existem alguns bugs muito simples de serem corrigods.
Tempo para finalizar o livro - 2 semanas.
Número de páginas: 400
FAÇA UM SITE
ORIENTADO POR PROJETO
PHP 5.2
MYSQL 5.0
COMÉRCIO ELETRÔNICO
- CARLOS A. J. OLIVERO -
31 CAPÍTULOS
Vários laboratórios.
Depois de finalizar todos os laboratórios você terá um site de comércio eletrônico quase perfeito.
Existem alguns bugs muito simples de serem corrigods.
Tempo para finalizar o livro - 2 semanas.
Número de páginas: 400
Assinar:
Postagens (Atom)