Posts TaggedPHP
Dica rápida: Executar um arquivo batch através do PHP
Uma dica rápida pra quem está tentando executar um arquivo .bat usando o php. Dê permissão ao usuário do apache ou IIS para executar o cmd.exe, feito isso, chame o seu bat usando como ponte prompt de comando: exec(“cmd.exe \c arquivo.bat”)
Lembre-se que seu script batch não deve ter interação com o usuário
Abrasss
Add comment Outubro 13, 2009
Vagas de Emprego – Brasil
Empresa de e-commerce com sede nos Estados Unidos esta contratando trainees com
experiencia em programacao para trabalhar em projeto remoto de desenvolvimento
de software .
os candidatos poderao estas localizados em qualquer localidade e deveram ter as
seguintes qualificacoes :
bons conhecimentos e experiencia em programacao PHP /MySQL & Smarty
bons conhecimentos em web design , XHTML, CSS (Webstandards compliant)
,Javascript/AJAX
bons conhecimentos do idioma Ingles leitura e escrita .
desejavel certificacao ZEND , experiencia com Zend Framework
desejavel que este cursando curso superior de ciencia da computacao ou
engenharia de software
Add comment Maio 2, 2009
Vagas de Emprego – Exterior
Web Application Developer
Ice Water Media, Austin, TX (Mopac )
Company Background
Ice Water Media is a growing marketing firm with over 7 years in business. Our focus is on technology and websites developed for lead generation. We currently own 50 active website properties and several software systems that we have built from the ground up.
Job Description
Because of our growth, we need another web application developer to join our team. The position will work directly under our CTO, who has over 17 years of development experience. Responsibilities include development of new features, fixing bugs in existing software, refactoring the existing code base to improve clarity and purpose, and testing software changes thoroughly while following the development standards and methodology of the company. You should have experience writing software that is easily maintainable by other developers and scalable by the systems administration team. All of our employees are expected to continually improve their skills through reading, training and experimentation.
PHP / CakePHP Web developer
Confidential, Toronto, Canada
Leading direct response company seeks advanced PHP / MySQL Web
Developer, with at least three years experience in the E-Commerce
arena.
Experience in PHP, CakePHP, T-SQL and OOP is mandatory. The job
involves design and development of an e-commerce back-end system.
The successful candidate will be a likable individual who is
energetic, assertive, motivated, self-starter with exceptional IT
skills.
PHP Software Engineer
Shutterstock, New York, NY
Shutterstock.com is looking for a PHP software engineer to join our tech team. We’re looking for experienced PHP programmers who can get complicated projects done quickly and independently. You should have a keen interest in and enthusiasm for high-traffic web sites and all the excitement they offer: optimization, load balancing, redundancy, fail over, tiered architectures, etc.
Applicants should be local to the New York area.
Required Skills:
At least 3 years experience with:
* PHP
* HTML / CSS / Javascript
* MySQL
* Linux
Optional Skills
* AJAX
* layout / design
* other languages (bash, C, etc.)
* Apache
* MySQL replication and optimization
PHP Programmer
Global Personals, LLC, Manhattan, NY
Changing the World Through Online Dating
Global Personals LLC is focused on the design and implementation of effective online dating communities. Since 2003, we have been creating cutting-edge communication tools that enable millions of members to quickly and easily spice up their lives! With over 12,000,000 member profiles and growing, our portfolio of top-notch free and paid subscription sites (WebDate.com, WealthyMen.com, and Fling.com) continue to redefine the ways that people communicate and meet online. Interested in a casual, fun, and exciting work environment? We have offices in Miami Beach, New York, Baltimore, Los Angeles and San Francisco. Please check out our most recent job postings.
Job Description:
– Looking for a true PHP expert that loves to hack code in several languages and has fun doing it.
– Design, develop, maintain and optimize secure and scalable multi-tier web applications.
– Strong knowledge of PHP, Perl, JavaScript, UNIX shell, SQL, HTML, CSS, XML.
– Comfortable with both object oriented and procedural programming methodologies.
– Experience with PHP5 and MySQL5 preferable.
– Experience with C, C++, Java, Python, and other languages a plus.
– Knowledge installing, configuring and maintaining Linux, Apache, MySQL and PHP packages.
– Strong knowledge of stored procedures, triggers, indexes, table normalization and database design.
– Familiarity with Zeus Web Server a big plus.
– Knowledge of AJAX development a plus.
– Comfortable hacking and compiling Linux software packages.
– Strong understanding of software development life-cycle and best practices.
– Proficiency in working and developing on Linux (any flavor – debian, redhat, ubuntu, slackware etc.
-Proficiency with Flash/Actionscript
Add comment Maio 2, 2009
Vagas de Emprego – Exterior
VAGAS DISPONÍVEIS NO SITE PHP-JOBS
http://www.phpjobs.com/
| Web Programmer II |
Description
Employment Guide, a division of Dominion Enterprises is actively seeking a PHP Web Programmer II to join our Norfolk, Virginia division. Qualified individuals should possess a passion for working on high traffic sites and developing new and exciting web applications. Additional duties might be required as needed.
Qualifications
Bachelor’s degree in computer science, mathematics or related field preferred OR
Equivalent combination of education and work experience.
2-3+ years of PHP 4/5 is required
Basic to intermediate understanding of Linux (is required) JavaScript / AJAX (is a plus)
Understanding of MVC Frameworks such as CakePHP, Zend Framework, or Ruby on Rails (is a definite plus)
Basic to intermediate understanding of MS-SQL 2005.
Experience using Version Control such as SVN or CVS (is a plus)
Problem solving and time management skills
Ability to work in both an individual and team based environment
Ability to review, analyze and modify programming systems including encoding, testing, debugging and documenting programs.
Consult with managerial, engineering, and technical personnel to clarify program intent, identify problems, and suggest changes.
Prepare detailed workflow charts and diagrams that describe input, output, and logical operation, and convert them into a series of instructions coded in a computer language.
Communication Skills and Interpersonal Skills:
Ability to communicate with internal customers clearly and effectively, both verbally and in writing.
Ability to organize, prioritize and perform multiple job tasks simultaneously.
Uses experience and good judgment to plan tasks and projects
Assist in mentoring Junior members of a development team
Proven ability to work creatively and analytically in a problem-solving environment
Ability to troubleshoot applications
Dominion Enterprises offers a dynamic, fun environment, excellent growth opportunities, competitive earnings, and a comprehensive benefits package including tuition reimbursement and 401k.
Dominion Enterprises is an Equal Opportunity Employer and supports a diverse workforce. Dominion Enterprises is a Drug Testing Employer.
| PHP Developer |
Responsibilities:
• Support business needs and translating production numbers into business driving data sets
• Create reporting systems front end and back end applications
• Work closely with DBAs to identify optimal methodologies of data retrieval
• Ideal candidate should not only be able to maintain and write great code, but must understand how to translate business problems into practical solutions
Requirements:
• 3-5 years experience with PHP, MySQL, Javascript, AJAX, HTML
• Ability to write efficient queries and optimize database-intensive application
• Must be able to understand and use development frameworks
• Strong understanding of Linux
• Must be able to work as part of a team
• Must have excellent communication and analytical capabilities
• Must be comfortable with Bash and/or Perl scripting UI development and design highly desired Must understand Object Oriented PHP
To Apply:
Send your cover letter and resume to: php-developer@limewire.com
About Lime Wire
Lime Wire LLC is the maker of the most popular file‐sharing software in the world. Lime Wire prides itself on its great products, one of the most engaged user bases in the world, and an incredible team of talent. Since launching the LimeWire application in 2000, we have continuously sought ways to empower our users. Recently, we have been busy with the launch of the LimeWire Store and creating more ways for Lime Wire’s peer‐to‐peer community to connect.
Still, we are determined to do much more and seek gifted and inspired people to join our team.
We offer competitive salaries, excellent benefits (including 5 weeks of vacation per year) and great perks (including free lunches, snacks, drinks, tickets to cultural and athletic events, company‐sponsored outings, fabulous rooftop parties, and coworkers who are also great friends). Located in downtown Manhattan, we foster a happy, healthy work environment where a free exchange of ideas is encouraged. Ideal candidates thrive in our do‐it‐yourself, entrepreneurial atmosphere. While we work hard, we always have time for a board game, a round of poker, or a break on our garden roof deck.
Interested in Lime Wire? We look forward to hearing from you.
Add comment Abril 22, 2009
Vagas de Emprego – Brasil
ATENÇÃO – VAGAS DISPONÍVEIS NO YAHOO GRUPOS PHP-EMPREGOS
http://br.groups.yahoo.com/group/php-empregos/
Procuro programador PHP freelancer para ajudar no desenvolvimento de um site.
Será necessário 2 dias por semana de trabalho no meu escritório, os demais o freelancer deverá trabalhar de home office ou do local que ele preferir.
Interessados por favor enviem e-mail para
tiago.carvalho@ comunicageral. com.br com CV, pretensão salarial e links de sites já realizados.
Incluso Vale Refeição.
Localização : Moema Zona Sul de São Paulo
Tiago
Diretor RH Comunica Geral
————————————————————————
A Bizplace, sediada em São José/SC, empresa de desenvolvimento e posicionamento Web.
Contrata, para início imediato, em regime de estágio/freelancer (10 a 20 Horas/semana) . Parte dessas horas devem ser cumpridas na Empresa (horários a combinar).
> PROGRAMADOR WEB
Requisitos:
- Domínio da linguagem PHP orientada a objeto;
- Javascript;
- MySql;
Conhecimentos diferenciais:
- CSS;
- Actionscript;
- Frameworks (Zend, entre outros);
- Ferramentas CMS (Joomla, entre outros);
- Otimização para Mecanismos de Busca.
Remuneração: A combinar (conforme carga horária).
Maiores informações, entrar em contato através dos telefones: ![]()

![]()
![]()

![]()
![]()
![]()
![]()
![]()
![]()
(48)3343-7800
/ ![]()

![]()
![]()

![]()
![]()
![]()
![]()
![]()
![]()
(48)3343-7888
ou dos e-mails: vagas.bizplace@ gmail.com ou vagas.bizplace@ yahoo.com. br
Add comment Abril 22, 2009
Evitando SQL Injection com PHP
SQL injection é uma técnica de introduzir (injetar) instruções SQL em entradas de usuário – entenda entradas de usuário como qualquer variável que possa ser manipulada pelo mesmo como variáveis POST e GET.
Como funciona na prática
$query = " SELECT * FROM USUARIOS WHERE login = ";
$query.= " '{$_POST['login']}' AND senha = '{$_POST['senha']}' ";
$res = mysql_query($query);
if( mysql_num_rows($res) ) {
echo "Login efetuado com sucesso!";
}else{
echo "Login e/ou senha incorreto(s)";
}
No código acima, caso o usuário informa no campo login a entrada: blablabla’ or 0=0 – e qualquer valor no campo senha o resultado da query será:
SELECT * FROM USUARIOS WHERE login = ‘blablabla’ or 0=0 –’ AND senha = ’senhainvalida’;
A mágica está no trecho ‘ or 0=0 – que faz com que seja listado todo conteúdo da tabela USUARIOS já que a consulta busca os usuários cujo o login seja ‘blablabla’ ou que zero seja igual a zero. Zero sempre será igual a zero e assim todo conteúdo é retornado. Mas e a senha? A senha é ignorada já que após a comparação é adicionado o caracter de comentário e tudo a partir dali é ignorado
.
Outro problema nesse código é a forma como o usuário é válidado.
if( mysql_num_rows($res) ) {
echo "Login efetuado com sucesso!";
}else{
echo "Login e/ou senha incorreto(s)";
}
A instrução checa apenas se alguma linha foi retornada na consulta. Como vimos antes, todo conteúdo da tabela USUARIOS é retornado e o primeiro usuário retornado na consulta é que será o felizardo a contemplar o invasor com seus dados.
Proteger-se com mysql_real_scape_string() e addslashes()
Essa é a forma mais básica e simples de contornar o problema. Basta chamar uma das duas funções para “escapar” a entrada do usuário.
$_POST['login'] = addslashes($_POST['login']);
$_POST['senha'] = addslashes($_POST['senha']);
$query = " SELECT * FROM USUARIOS WHERE login = '{$_POST['login']}'";
$query.= " AND senha = '{$_POST['senha']}' ";
Ou
$_POST['login'] = mysql_real_escape_string($_POST['login']);
$_POST['senha'] = mysql_real_escape_string($_POST['senha']);
$query = " SELECT * FROM USUARIOS WHERE login = '{$_POST['login']}'";
$query.= " AND senha = '{$_POST['senha']}' ";
As funções irão adicionar um slash (“\”) na aspa simples.
SELECT * FROM USUARIOS WHERE login = ‘blablabla\’ or 0=0 –’ AND senha = ’senhainvalida’;
Todo conteúdo entre aspa simples será interpretado como esperado, como um login de usuário.
Se magic_quotes_gpc estiver ativo no PHP (que é configuração padrão) o escape de cookies, post e get é feito automáticamente.
Usando Prepared Statement
Prepared statement automaticamente faz o escape nos valores de entrada e ajustam corretamente o tipo de dado.
$conexao = new mysqli('localhost','usuario','senha','banco');
$stm = $conexao->prepare("SELECT * FROM USUARIOS WHERE login = ? AND senha = ?");
$stm->bind_param("ss", $_POST['login'], $_POST['senha']);
$stm->execute();
if( $stm->affected_rows ){
echo "Login efetuado com sucesso!";
}else{
echo "Login e/ou senha incorreto(s)";
}
$stm->close();
Boas práticas
- O usuário de acesso ao banco deve ter seu acesso limitado em nível de acesso e à objetos que ele realmente precisa.
- Use senhas criptografadas
- Não confie em nenhuma entrada de usuário
- Evite validar o usuário através do número de linhas que retorna da consulta
Evite o código abaixo:
if( $stm->affected_rows ) {
echo "Usuário autenticado com sucesso!";
}
Use a forma a seguir:
$conexao = new mysqli('localhost','usuario','senha','banco');
$stm = $conexao->prepare("SELECT senha FROM USUARIOS WHERE login = ?");
$stm->bind_param("s", $_POST['login']);
$stm->execute();
$senha = "";
$stm->bind_result($senha);
if( $stm->fetch() ){
if( $senha == crypt($_POST['senha'],"td") ){
echo "Usuário autenticado com sucesso!";
exit();
}
}
echo "Usuário e/ou senha inválidos";
$stm->close();
Até o próximo post
Add comment Abril 21, 2009
PHP From Hell
Embarcando nessa onda de posts semanais que uma galera de blogueiros fazem, resolvi criar a seção “PHP From Hell”. Vou tentar – eu disse tentar
– postar alguma coisa dessa seção toda sexta-feira. A idéia é postar dicas de funcionalidades do PHP que pouca gente ( incluindo yo hehehe ) conhece.
Vou começar falando da função extract. Esta função importa elementos de um array associativo para a tabela de símbolos. Trocando em miúdos, os índices do array passam a ser variáveis cujo os valores são os seus correspondentes no array. Basicamente é alguma coisa parecida com o register_globals com câmbio manual
.
Na prática a coisa funciona assim:
$marca = “Ferrari”;
$origem = “Los Cabos”;
$carros_collection = array(“marca”=>”Audi”,”ano”=>”2008″,”modelo”=>”A4″);
$busu_collection = array(“origem”=>”Lapa”,”destino”=>”Liberdade”);
extract($busu_collection, EXTR_SKIP);
echo “<BR/>$marca, $ano, $modelo, $tidoc_marca”;
echo “<BR/>$origem, $destino, $tidoc_origem”;
O resultado vai ser:
Los Cabos, Liberdade
Mais de onde veio $tidoc_marca e onde foi parar o valor Lapa? Simples Padawan … Como você está inserindo elementos na tabela de símbolos, corre o risco de você cagar alguma coisa. Pra que isso não aconteça, você usa o parâmetro extract_type. É esse parâmetro que indica a forma que as colisões serão tratadas. Em nosso exemplo usamos EXTR_PREFIX_ALL e EXTR_SKIP, no primeiro, se já houver uma variável com o mesmo nome do elemento incorporado, o nome da nova variável irá receber o prefixo indicado no terceiro parâmetro. Com EXTR_SKIP, se ocorrer colisões, o novo valor é descartado.
Outras opções são:
EXTR_OVERWRITE, EXTR_PREFIX_ALL, EXTR_PREFIX_INVALID, EXTR_IF_EXISTS, EXTR_PREFIX_IF_EXISTS, EXTR_REFS.
Recomendo dar uma lida na documentação: http://www.php.net/manual/pt_BR/function.extract.php
Add comment Junho 27, 2008
Aplicações Desktop com PHP – Parte 1
Que o PHP é uma das linguagens de programação mais usadas em ambiente web, todo mundo sabe. Mas pouca gente sabe que também é possível criar aplicações desktop com ela. E é isso que nós iremos fazer. Para tal, iremos utilizar o PHP-GTK.
O que é GTK/GTK+?
O GTK (Gimp Tool Kit) é uma poderosa biblioteca para desenvolvimento de aplicações GUI multi-plataforma, muito utilizada no mundo linux e que vem ganhando seu espaço também no windows.
PHP-GTK
É linguagem binding que permite aos desenvolvedores PHP criarem aplicações gráficas multi-plataforma sem abrir mão dos recursos do PHP.
Vamos então instalar os trecos \o/
Ingredientes
- PHP-GTK
- Uma caneca com café
Instalação do PHP-GTK no Windows
Baixe aqui http://sourceforge.net/project/downloading.php?groupname=agata&filename=php-gtk2b.exe&use_mirror=ufpr o instalador, execute-o e seja feliz.
Instalação do PHP-GTK no Linux
Baixe aqui http://sourceforge.net/project/downloading.php?groupname=agata&filename=php-gtk2b.tar.gz&use_mirror=ufpr o pacote pré-compilado e siga os passos abaixo:
# mv php-gtk2 /usr/local/
# ln -sf /usr/local/php-gtk2/bin/php /usr/bin/php-gtk2
1,2,3, testando
Para testar crie um novo arquivo chamdo exemplo.php com o código abaixo:
if (!class_exists(‘gtk’)) {
die(“O módulo php-gtk2 não foi carregado corretamente. Verifique seu php.ini.”);
}$wnd = &new GtkWindow();
$wnd->set_title(‘Exemplo’);
$wnd->connect_simple(‘destroy’, array(‘gtk’, ‘main_quit’));$label = &new GtkLabel(“Perdeu preiboy!’”);
$wnd->add($label);
$wnd->show_all();
Gtk::main();
?>
Para executar, vá até a linha de comando e execute:
No Linux
No Windows
É isso ai. No próximo post vamos explorar melhor os recursos do PHP-GTK.
Pra quem quiser saber mais sobre o projeto:
http://www.php-gtk.com.br/
http://gtk.php.net/
Abraços!
Add comment Junho 24, 2008
Gerando documentos PDF com FPDF – Parte 02
Antes tarde do que nunca. Hoje iremos falar do método AddFont(). Este método serve para importar uma nova font TrueType ou Type1 ao documento PDF.
Ingredientes:
- Conversor de fonts TrueType/Type1
- Fonts TrueType/Type1
- FPDF
>> ttf2pt1
Se você é usuário *nix, baixe a última versão aqui: http://ttf2pt1.sourceforge.net/download.html se for usuário windows, tente aqui: http://gnuwin32.sourceforge.net/packages/ttf2pt1.htm ou aqui: http://public.box.net/ischool
Após concluir o download, descompacte o arquivo em um diretório de sua preferência. Vá até a console ( bash, ksh, etc ou prompt de comando para os usuários do windows ) e execute o comando:
C:\Downloads\ttf2pt1>ttf2pt1 -a C:\WINDOWS\Fonts\Verdana.ttf Verdana
$./ttf2pt1 -a /mnt/WINDOWS/Fonts/Verdana.ttf Verdana
O comando acima irá produzir dois arquivos. Um com a extensão .AFM e o outro T1A. Agora vamos retornar ao PHP. Pegue os balai de gato gerados anteriormente e a fonte ttf ( em nosso caso Verdana.ttf ) e leve para o diretório font do FPDF. Agora estamos prontos pra criar o arquivo que irá gerar as fonts que serão usadas de fato em nosso script PHP. Crie um script PHP com o código abaixo.
require_once ‘makefont/makefont.php’;MakeFont( ‘Verdana.ttf’, ‘Verdana.afm’, ‘ISO-8859-1′ );
?>
Tá pronta a bagaça. Agora basta executar o arquivo via CLI ( linha de comando ) ou por HTTP mesmo.
Pronto, agora você tem dois arquivos novos: Verdana.php e Verdana.z. Agora você já pode usar sua font Verdana em suas relatórios em PDF usando o método AddFont() como no exemplo abaixo.
require_once “fpdf_dir/fpdf.php”;
$pdf = &new FPDF(”L”,”mm”,”A4″);
$pdf->Open();
$pdf->AddPage();
$pdf->AddFont(“Verdana”);
$pdf->SetFont(“Verdana”,”B”, 14);
$pdf->Text(40,20,”Título do Relatório”);
$pdf->SetLineWidth(0.7);
$pdf->Line(40,22,200,22);
$pdf->SetXY(40,26);
$pdf->SetFont(”,”,12);
$pdf->Cell(30,5,”Modelo”,0,0,”C”,0);
$pdf->Cell(30,5,”Fabricante”,0,0,”C”,0);
$pdf->Output();
?>
É isso ai, mangaba não é não? Se ainda tiverem dúvidas, olhem este artigo feito pela iSchool http://ischool.000webhost.info/php/curso-fpdf-recursos-2 que é muito bom.
Abraços e até a próxima!
4 comments Abril 28, 2008