Vaga Programador PHP
InPhoenex
Experiência de pelo menos 1 ano.
Conhecimentos em:
- Metodologias de Testes
- Ferramentas de Testes
- Engenharia de Software
- Programação Orientada a Objetos
- Com perfil investigativo
Salário: entre R$ 1.000,00 a R$ 2.500,00 inicial, dependendo da experiência
Interessados enviar currículo para silvano@inphonex.com com pretensão salarial.
Vaga Programador PHP
- PHP
- Ajax / JS
- SQL
- HTML / CSS
Desejável:
- PHPUnit
- Selenium
- Symfony (1.1)
- PHPDoctrine
- XP / Scrum
- MySql
- JQuery
- Linux, configuração e manutenção de ambiente de desenvolvimento
O ambiente de trabalho é ótimo:
- trabalhamos com Scrum
- temos tempo para escrever teste de software para tudo o que fazemos.
- fazemos refactoring e pensamos constantemente a arquitetura
- não ficamos apagando incêndio o tempo todo
- não ficamos mudando de prioridade o tempo todo.
- boas máquinas
- dois monitores pra cada um
- sem stress
Horário: 8:00-12:00 13:00-17:00, segunda a sexta.
Forma de contratação:
- CLT
- salário de 2.5k
- plano de saúde.
Aos interessados, enviar currículo para o email: bruno@gradua.net
Gerar senha no PHP
E quando clicamos, é solicitado o e-mail utilizado dirante o cadastro, para que seja enviada uma nova senha, para nosso e-mail, e esta senha, normalmente não é a senha que cadastramos, isto porque, o sistema teve que reiniciar sua senha e gerar uma nova senha, já que você a esqueceu.
Por motivos de segurança os sites guardam as senhas em banco de dados criptografada (usando MD5, crypt, etc).
Neste exemplo, veremos como utilizar o PHP
NOTA: no código abaixo, estarei utilizando a numeração nas linhas apenas para melhor visualização e explicação do código. Não digitem estes números de linhas em seu código.
1. <?php
2.
3. $CaracteresAceitos = 'abcdxywzABCDZYWZ0123456789';
4.
5. $max = strlen($CaracteresAceitos)-1;
6.
7. $password = null;
8.
9. for($i=0; $i < 8; $i++) {
10.
11. $password .= $CaracteresAceitos{mt_rand(0, $max)};
12.
13. }
14.
15. echo $password;
16.
17. ?>
Vamos a explicação:
Linha 1:
Abrimos a TAG do PHP
Linha 3:
Criamos uma variável de nome $CaracteresAceitos que irá armazenar letras e números necessários para gerar nossa senha.
Linha 5:
Criamos a variável $max e utilizamos a função "strlen" para contar quantos caracteres a variável $CaracteresAceitos tem.
Linha 7:
Criamos a variável $password e atribuímos a ela o valor null
Linha 9:
Criamos um loop para que nossa senha tenha o tamanho máximo de 8 caracteres
Linha 11:
Concatenamos (.=) a variável $CaracteresAceitos em nossa variável $password, e utilizamos a função mt_rand() para gerar uma senha aleatória, baseada no conteúdo da variável $CaracteresAceitos
Linha 13:
Fechamos a chave do loop
Linha 15:
Utilizamos o echo para exibir o novo valor da variável $password, gerada de forma randômica
Linha 17:
Fechamos a TAG do PHP.
Créditos: Oberaldo Bull
Posted by Programador ASP
Criando RSS 2.0 (Really Simple Syndication) com PHP e MySQL
1º Passo: Copie o comando SQL abaixo e cole no seu console MySQL:
create database rss;
use rss;
create table noticias (
not_id int(6) not null auto_increment,
not_titulo varchar(60) not null,
not_texto text not null,
not_data date not null,
not_hora time not null,
constraint primary key(not_id)
);
2º Passo: Crie um arquivo PHP chamado Rss.class.php.
3º Passo: Edite o arquivo recém-criado e insira o seguinte código:
<?php
class Rss
{
#Declaracao de variaveis
private $conexao = null;
private $servidor;
private $usuario;
private $senha;
private $alias;
/**
* Construtor
*/
public function __construct()
{
#Dados para conexao com o banco de dados
$this- >servidor = "localhost";
$this- >usuario = "root";
$this- >senha = "vertrigo";
$this- >alias = "rss";
#Efetua a conexao com o banco e seleciona a base de dados
$this- >conexao = mysql_connect($this->servidor, $this->usuario, $this->senha);
if ($this- >conexao)
{
mysql_select_db($this- >alias, $this->conexao);
}
}
/**
* Gera o RSS 2.0
*
* @param String $titulo titulo do rss
*
* @param String $link url do site
*
* @param String $descricao descricao do rss
*
* @param String $tabela tabela do banco de dados que será puxada as informacoes
*
* @param String $campo campo da tabela pelo qual sera ordenado, de forma decrescente, o rss
*
* @param String $destino url de destino das noticias - Ex: http://www.site.com.br/noticia?id=
*
* @return void
*/
public function rss($titulo, $link, $descricao, $tabela, $campo, $destino)
{
#Seleciona os dados no banco de dados
$sql = "SELECT * FROM $tabela ORDER BY $campo DESC;";
$res = mysql_query($sql);
#Cria a variavel $xml com o codigo xml necessario para criar o RSS
$xml = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>";
$xml .= "<rss version=\"2.0\">";
$xml .= "<channel>";
$xml .= "<title>$titulo</title>";
$xml .= "<link>$link</link>";
$xml .= "<description>$descricao</description>";
$xml .= "<language>pt-br</language>";
#Verifica se o numero de linhas resultantes da query eh maior do que zero
if (mysql_numrows($res) > 0)
{
# "Quebra" a matriz
while ($dados = mysql_fetch_array($res))
{
$xml .= "<item>";
$xml .= "<title>$dados[1]</title>";
$xml .= "<link>$destino$dados[0]</link>";
$xml .= "</item>";
}
}
$xml .= "</channel>";
$xml .= "</rss>";
#Retorna o valor da variavel $xml
return $xml;
}
}
?>
4º Passo: Crie um arquivo chamado index.php, no mesmo diretório que o Rss.class.php, e insira o seguinte código:
<?php
require_once("Rss.class.php"); //chama o arquivo
$obj_rss = new Rss(); //instancia a classe
echo $obj_rss->rss("Exemplo de RSS 2.0", "http://www.seusite.com.br", "Últimas notícias", "noticias", "not_id", "http://www.seusite.com.br/noticia.php?id="); //escreve o valor retornado do metodo
?>
5º Passo: Basta inserir registros no banco de dados, acessar o arquivo index.php e pronto! Você já terá seu script RSS a disposição! Inseri dois registros no banco de dados, como exemplo, e obtive o seguinte resultado:
Créditos para Tiago Hillebrandt
Posted by Programador ASP
Funções para array PHP
Essas funções permitem a interação e manipulação de arrays de várias formas. Arrays são essenciais para armazenar, gerenciar, operar sobre um conjunto de variáveis.
Arrays simples e multidimensionais (matrizes) são suportados, e podem ser criados pelo usuário ou por outras funções. Existem diversas funções específicas para banco de dados com o intuito de preencher arrays com os dados retornados em consultas, e vários outros tipos de funções também retornam arrays.» Função array() - Permite a criação dinâmica de um array.
» Função count() - Informa quantos elementos determinado o array possui.
$fruta = array('banana', 'tomate', 'mamão');
$favorito = array('animal' => 'cachorro', 'carro' => 'stilo');
$planExcel =
array(
array('1 Célula da 1 Linha', '2 célula da 1 linha'),
array('1 Célula da 1 Linha', '2 célula da 1 linha'),
);
Resultado da função: 3
echo count($fruta);
» Função sizeof() - Idêntica à count, retornará um valor inteiro contendo o número de elementos
de um array.
Resultado da função: 3» Função reset() - Você pode pensar: "apaga o array". Cuidado, essa é uma função que parece, mas não é.
echo sizeof($fruta);
Na verdade, sua função é colocar o índice para o primeiro elemento do array e retornar o valor desse elemento.
Resultado da função: banana
echo reset($fruta);
» Função end() - Faz exatamente o inverso da função reset, colocando o índice para o último elemento do array e retornando o valor deste.
Resultado da função: mamão» Função prev() - A partir da posicao do indice, desloca-se para o elemento anterior e retorna valor deste.
echo end($fruta);
» Função next() - A partir da posição do índice, avança para o próximo elemento e retorna valor deste. Caso você esteja no último elemento e utilize esta função, o resultado será vazio.
echo prev($fruta);
Resultado: mamao» Função pos() - Retorna o conteudo do elemento atual do array.
echo next($fruta);
Resultado: mamao» Função key() - Retorna o indice do elemento atual do array
echo pos($fruta);
Resultado: 2» Função each() - Cria um novo array com apenas o elemento posicionado no array informado
echo key($fruta);
Resultado: mamao» Função shuffle - Essa funcao "mistura" aleatoriamente o array, trocando as posicoes de seus elementos.
$cesta = each($fruta);
echo pos($fruta);
Resultado: Array Original: banana/tomate/mamao
shuffle($fruta);
echo $fruta [0] . "|" . $fruta[1] . "|" . $fruta[2];
Depois da funcao: tomate/banana/mamao» Funcao sort() - Coloca os elementos em ordem crescente.
Resultado: Array original: banana/tomate/mamao
sort($fruta);
echo $fruta [0]. "|" . $fruta[1] . "|" . $fruta[2];
Depois: banana/mamao/tomate» Função rsort() - Coloca os elementos em ordem decrescente.
Resultado: Array original: banana/tomate/mamao
rsort($fruta);
echo $fruta [0]. "|" . $fruta[1] . "|" . $fruta[2];
Depois: tomate/mamao/banana
Validar e-mail com ASP
O retorno é booleano (true ou false)
<%
'-----------------------------------------------------
'Funcao: IsEmail(strEmail)
'Sinopse: Verifica se o valor passado é um Email válido
'Parametro: strEmail
'Retorno: Booleano
'-----------------------------------------------------
Function IsEmail(strEmail)
Set regEx = New RegExp ' Cria o Objeto Expressão
regEx.IgnoreCase = True ' Sensitivo ou não
regEx.Global = True ' Não sei exatamente o que faz
'Caracteres Excluidos
regEx.Pattern = "[^@\-\.\w]|^[_@\.\-]|[\._\-]{2}|[@\.]{2}|(@)[^@]*\1"
ResultadoHum = RegEx.Test(strEmail)
'Caracteres validos
regEx.Pattern = "@[\w\-]+\."
ResultadoDois = RegEx.Test(strEmail)
'Caracteres de fim
regEx.Pattern = "\.[a-zA-Z]{2,3}$"
ResultadoTres = RegEx.Test(strEmail)
Set regEx = Nothing
If Not (ResultadoHum) And ResultadoDois And ResultadoTres Then
IsEmail = True
Else
IsEmail = False
End If
End Function
'EXEMPLO DE CHAMADA
Response.Write IsEmail("email@provedor.com.br")
%>
Fonte: Codigo Fonte : Gabriel Fróes
posted by Programador ASP
Validar e-mail com PHP
function valida_email($endereco){
$pattern = "^[a-zA-Z0-9_\-\.]+@[a-zA-Z0-9_\-]+\.[a-zA-Z0-9\-\.]+$";
if (eregi($pattern, $endereco)){
return true;
}
else {
return false;
}
}
?>
<html>
<body>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" name="emailForm">
Email: <input type="text" name="email"><br/>
<input type="submit" name="submitemail">
</form>
<?php
if (isset($_POST['submitemail']))
{
if (valida_email($_POST['email'])){
echo "O email: ".$_POST['email']." é válido! ";
}
else{
echo "O email: ".$_POST['email']." não é válido! ";
}
}
?>
</body>
</html>
Nesse código implementamos a função valida_email(). Uma vez implementada, essa função poderá ser chamada posteriormente no código. Essa função espera um parâmetro, que está representado por '$endereco' no código. Esse parâmetro será o endereço de e-mail que desejamos validar. Ao receber o parâmetro, ela o joga para a função ereg(), que pesquisa em '$endereco' para ver se encontra a expressão que lhe foi passada primeiramente. O que passamos para ereg() nesse caso foi:
^[a-zA-Z0-9_\-\.]+@[a-zA-Z0-9_\-]+\.[a-zA-Z0-9\-\.]+$
Vamos explicar cada parte dessa expressão:
(1) ^[a-zA-Z0-9_\-\.]+ significa que ereg() deve procurar em '$endereco' algo que "inicie com pelo menos uma letra (de a até z e de A até Z), um número (de 0 até 9), underline (_), hífen (\-) ou ponto (\.) e posteriormente utilize, no máximo, uma combinação disso".
(2) @ significa que deve-se localizar um literal "@".
(3) [a-zA-Z0-9_\-]+ significa que deve-se localizar algo que contenha caracteres alfanuméricos, hífens ou underlines.
(4) \. procura por um ".".
(5) [a-zA-Z0-9\-\.]+$ procura no restante do endereço letras, números, hífens e pontos até o final da string.
A função valida_email() então retorna "true" se ereg() encontrar o que busca e o e-mail for, portanto, válido. Se o e-mail for inválido, valida_email() retornará "false".
Na parte seguinte do código, chamamos a função valida_email() dentro de um if() para verificar se o endereço contido em '$email' é válido. Não abordei aqui a forma como o valor de '$email' lhe foi atribuído, mas usualmente isso seria feito através de um formulário. A função valida_email() recebe o valor de '$email' (que assume o papel de '$endereco') e faz a verificação. Se o valor retornado for "true" escreve-se na tela "O e-mail é válido!", mas se for "false" escreve-se "O e-mail não é válido!".
Para entendermos bem o que está acontecendo, façamos uma simulação. Para isso, faremos uma atribuição direta para '$email'. Podemos, por exemplo, substituir as linhas 11 e 12 do nosso código pelo seguinte:
$email = "teste_.-._01@servidor_-_01.com.br";
» Nesse caso, teste_.-._01@servidor_-_01.com.br é aprovado em (1) que encontra o que procura em teste_.-._01, é aprovado em (2) que encontra @, é aprovado em (3) que encontra o que procura em servidor_-_01, é aprovado em (4) que encontra . e é finalmente aprovado em (5) que encontra o que procura em com.br. Portanto, nesse caso, valida_email() retorna "true".
Agora, substituamos as linhas 11 e 12 por:
$email = "teste@a2*.";
» Nesse segundo caso, teste@a2 *. é aprovado em (1) que encontra o que procura em teste, é aprovado em (2) que encontra @, mas é reprovado em (3) que encontrou * que não procurava. A pesquisa pára aqui, mas caso ela continuasse, teste@a2*. seria aprovado em (4) que encontra . mas seria novamente reprovado em (5) que não possui mais string onde procurar. Portanto, valida_email() retorna "false".
OBS: ereg() retornará "false" somente se encontrar um caractere que não estava procurando (como no caso do *) ou se não encontrar nenhum dos caracteres que estava procurando. O fato de 'teste' não possuir números ou hífens não faz com que ele seja reprovado em (1).
Pronto! Agora você poderá reduzir consideravelmente os e-mails inválidos informados por usuários aos seus formulários, tendo em vista que é impossível criar um sistema que barre 100% dos e-mails inválidos. E lembre-se: tenha cuidado ao tornar as coisas mais restritivas, uma vez que uma função de validação que rejeita 1% dos dados válidos é muito mais irritante que uma que permite 10% de dados inválidos.
Fonte: Plugmasters : Michel Franscisco
Posted by Programador PHP
Testar a igualdade de strings - PHP
<?
$palavra1 = "Programar";
$palavra2 = "PROGRAMAR";
if(strcmp($palavra1, $palavra2) == 0)
echo "As duas palavras são iguais";
else
echo "As duas palavras são diferentes";
?>
Testar a igualdade de strings desconsiderando maiúsculas e minúsculas:
<?
$palavra1 = "Programar";
$palavra2 = "PROGRAMAR";
if(strcasecmp($palavra1, $palavra2) == 0)
echo "As duas palavras são iguais";
?>
Fonte: htmlstaff
Busca dinâmica interagindo AJAX, PHP e MySQL
E ai pessoal! Vou ensinar como fazer uma busca dinâmica interagindo AJAX, PHP e MySQL.
Bom, vamos lá:
1º passo: Antes de iniciarmos, é preciso criar a tabela "cliente" no nosso banco de dados "teste". A tabela conterá os campos: id, nome, cidade, uf. O campo id será inteiro e também nossa chave primária, os campos nome (por onde efetuaremos a consulta) e cidade serão varchar(50) e o campo uf será char(2) e conterá a sigla do estado.
CREATE TABLE cliente (
id int(6) unsigned NOT NULL default '0',
nome varchar(50) NOT NULL default '',
cidade varchar(50) NOT NULL default '',
uf char(2) NOT NULL default '',
PRIMARY KEY (id)
);
2º passo: Será a criação da página "index.html", que conterá o campo de busca e a chamada para a função ajax.
<html>
<head>
<title>Busca Dinamica</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script src="script.js"></script>
</head>
<body>
<table width="657" border="0" bgcolor="#f7f7f7">
<tr>
<td align="center" bgcolor="#CCCCCC"><strong><font color="#FF0000" size="1" face="Verdana, Arial, Helvetica, sans-serif"><- Busca Dinamica -></font></strong></td>
</tr>
<tr>
<td><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><strong>Digite aki o nome do cliente</strong></font>:
<!-- NOTE Q A CADA TECLA PRESSIONADA É CHAMADA A FUNÇÃO PESQUISA PASSANDO O QUE O USUARIO TEM DIGITADO ATÉ O MOMENTO -->
<input type="text" name="nome" onKeyUp="carregaAjax('pagina', 'busca_nome.php?valor=' + this.value)" onKeyDown="carregaAjax('pagina', 'busca_nome.php?valor=' + this.value)"></td>
</tr>
<tr>
<td>
<!-- AQUI SERÁ APRESENTADO O RESULTADO DA BUSCA DINÂMICA.. OU SEJA OS NOMES -->
<div id="pagina"></div></td>
</tr>
</table>
</body>
</html>
3º passo: Vamos agora construir o nosso arquivo "busca_nome.php" que conectará no banco e efetuará uma busca simples usando SQL.
<?php
if(!empty($_GET["valor"])){
// O campo valor conterá o que o usuário digitou até o momento
//Conecta ao banco, colocar parametros ip, usuario, senha
$conexao=mysql_connect("localhost","root","root");
//Seleciona o banco de dados que vai usar
mysql_select_db("teste");
// Executa a instrução SELECT passando o que o usuário digitou
$sql="select * from cliente where nome like '$_GET[valor]%'";
$resultado=mysql_query($sql) or die (mysql_error());
//Verifica a quantidade de registros retornados
$linhas=mysql_num_rows($resultado);
if($linhas>0){
// Executa um LOOP para mostrar os nomes das pessoas
// Vale lembrar que todos esses resultados serao mostrados dentro da pagina index.html dentro da DIV pagina
while($pegar=mysql_fetch_array($resultado))
echo "$pegar[nome] <br />";
}
}
?>
4º passo: A construção do nosso "script.js" que conterá as funções da metodologia AJAX.
function openAjax() {
var Ajax;
try {Ajax = new XMLHttpRequest(); // XMLHttpRequest para browsers mais populares, como: Firefox, Safari, dentre outros.
}catch(ee){
try {Ajax = new ActiveXObject("Msxml2.XMLHTTP"); // Para o IE da MS
}catch(e){
try {Ajax = new ActiveXObject("Microsoft.XMLHTTP"); // Para o IE da MS
}catch(e){Ajax = false;}
}
}
return Ajax;
}
function carregaAjax(div, getURL) {
document.getElementById(div).style.display = "block";
if(document.getElementById) { // Para os browsers complacentes com o DOM W3C.
var exibeResultado = document.getElementById(div); // div que exibirá o resultado.
var Ajax = openAjax(); // Inicia o Ajax.
Ajax.open("GET", getURL, true); // fazendo a requisição
Ajax.onreadystatechange = function(){
if(Ajax.readyState == 1) { // Quando estiver carregando, exibe: carregando...
exibeResultado.innerHTML = "<div>Carregando</div>";
}
if(Ajax.readyState == 4) { // Quando estiver tudo pronto.
if(Ajax.status == 200) {
var resultado = Ajax.responseText; // Coloca o retornado pelo Ajax nessa variável
resultado = resultado.replace(/\+/g,""); // Resolve o problema dos acentos (saiba mais aqui: http://www.plugsites.net/leandro/?p=4)
//resultado = resultado.replace(/ã/g,"a");
resultado = unescape(resultado); // Resolve o problema dos acentos
exibeResultado.innerHTML = resultado;
} else {
exibeResultado.innerHTML = "Por favor, tente novamente!";
}
}
}
Ajax.send(null); // submete
}
}
Veja alguns exemplos nos sites a seguir:
www.aramacan.com.br
www.smt.saobernardo.sp.gov.br
Conectar PHP + MySQL
mysql_connect
(PHP 3, PHP 4, PHP 5)
mysql_connect - Abre uma conexão com um servidor MySQL
Descrição
resource mysql_connect ( [string server [, string username [, string password [, bool new_link [, int client_flags]]]]] )
Abre ou reutiliza uma conexão com um servidor MySQL.
Parâmetros
- server
O servidor MySQL. Também pode incluir um número de porta, exemplo "servidor:porta" ou um caminho para um socket local, exemplo ":/caminho/para/socket" para o servidor local(localhost).
Se a diretiva do PHP mysql.default_host não estiver definida(padrão), então o valor padrão é 'localhost:3306'
- username
O nome de usuário. O valor padrão é o nome do usuário que é o proprietário do processo do servidor. Por exemplo: root
- password
A senha. O valor padrão é uma senha vazia.
- new_link
Se uma segunda chamada é feita a mysql_connect() com os mesmos argumentos, não é estabelecida uma nova conexão, mas ao invés, o identificador da conexão que já esta aberta é retornado. O parâmetro new_link modifica este funcionamento e faz mysql_connect() sempre abrir uma nova conexão, mesmo que mysql_connect() seja chamado antes com os mesmos parâmetros.
- client_flags
O parâmetro client_flags pode ser uma combinação das seguintes constantes: MYSQL_CLIENT_SSL, MYSQL_CLIENT_COMPRESS, MYSQL_CLIENT_IGNORE_SPACE ou MYSQL_CLIENT_INTERACTIVE. Leia a seção sobre Tabela 2 para maiores informações.
Valores de retorno
Retorna um identificador de conexão MySQL em caso de sucesso, ou FALSE em caso de falha.
Exemplos
Exemplo 1. Exemplo mysql_connect()
|
Exemplo 2. Exemplo mysql_connect() usando a a sintaxe servidor: porta
|
Instalando Apache + MySQL + PHP 5 no Windows
Lendo em grupos de discussão, fóruns, etc, percebi que o pessoal tem várias dificuldades e ou problemas para conseguir instalar e configurar o "WAMP" (Windows + Apache + MySQL + PHP).
1. Download dos itens necessários
Primeiro, faça o download dos programas a serem usados.
Quanto ao Apache, usaremos o Apache 1.3.*, visto que na documentação do PHP existe a seguinte recomendação: "Não use Apache 2.0 e PHP em um sistema de produção, seja no Unix ou no Windows" (http://www.php.net/manual/pt_BR/install.apache2.php).
- Apache: http://mirrors.uol.com.br/pub/apache/httpd/binaries/win32/apache_1.3.31-win32-x86-no_src.exe
- MySQL 4.1.8: http://dev.mysql.com/get/Downloads/MySQL-4.1/mysql-4.1.8-win-noinstall.zip/from/http://www.linorg.usp.br/mysql/
- PHP 5.0.3: http://br2.php.net/get/php-5.0.3-Win32.zip/from/this/mirror
2. Instalação
- Execute a instalação do Apache e o instale com as configurações padrões. Se quiser, pode escolher outro diretório para a instalação.
- Extraia o MySQL em uma pasta qualquer. Recomendo dentro da pasta onde vocó instalou o Apache. Ex: C:\Arquivos de Programas\Apache Group\Apache\mysql
- Extraia o PHP 5 na pasta C:\php5
3. Configuração do PHP
Vá para a pasta c:\php5 e copie o arquivo php5ts.dll para a seguinte pasta, de acordo com o seu Windows:
- c:\windows\system (em Windows 9x/Me)
- c:\windows\system32 (em WindowsXP)
- c:\winnt\system32 (para Windows NT/2000)
Copie também o arquivo c:\php5\libmysql.dll para umas das pastas ditas acima, de acordo com o Windows em uso. Esse arquivo é necessário para o funcionamento do MySQL no PHP.
Ainda no c:\php5, renomeie o arquivo "php.ini-dist" para "php.ini" e abra-o. Procure a linha extension_dir = "./" e a altere para extension_dir = "c:/php5/ext/", ó o diretório onde ficam as extensões do php (MySQL, Curl, GD, etc). Agora, localize a linha ;extension=php_mysql.dll e tire o ; do início dela. Se quiser também, já aproveite e faça o mesmo na linha ;extension=php_gd2.dll, caso queira a biblioteca GD para a manipulação de imagens. Salve as alterações e mova o "php.ini" para a pasta:
- c:\windows (em Windows 9x/Me/XP)
- c:\winnt (para Windows NT/2000)
4. Configuração do Apache
Vá para a pasta onde você instalou o Apache e abra o arquivo conf/httpd.conf em qualquer editor de texto. (Ex: Bloco de Notas).
1º) Localize a linha #LoadModule unique_id_module modules/mod_unique_id.so e logo abaixo dela adicione:
LoadModule php5_module "c:/php5/php5apache.dll"
2º) Localize a linha AddModule mod_setenvif.c e logo abaixo, adicione:
AddModule mod_php5.c
3º) Localize AddType application/x-tar .tgz e logo abaixo, adicione:
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
4º) Localize:
<IfModule mod_dir.c>
DirectoryIndex index.html
</IfModule>
E logo ao lado do index.html adicione:
index.php default.php main.php
5. Configuração do MySQL
Não hà nada para se configurar no MySQL, você só deve iniciar o mesmo. Vá para a pasta que instalou o MySQL, então abra o bin/mysqld.exe, iniciando o servidor do MySQL.
Lembre-se que sempre você terá de iniciar o MySQL. Se não quiser ir na pasta toda vez que iniciar o computador, crie um atalho para o bin/mysqld.exe e coloque no "Iniciar, Programas, Inicializar (ou Iniciar, de acordo com o windows)".
6. Falta pouco!
Agora, vá em "Iniciar, Programas, Apache HTTP Server, Control Apache Server, Restart", para reinicializar o Apache com as alterações feitas. Pronto! Agora você pode tem PHP5 + MySQL em seu Windows!.
Para efetuar um teste, crie um arquivo chamado phpinfo.php, com o conteúdo:
<? phpinfo(); ?> e o coloque na pasta htdocs dentro da pasta do Apache. Abra seu navegador e digite http://localhost/phpinfo.php. Se a página abrir com as informações do PHP, significa que tudo deu certo.
Observações: Lembrando que nos caminhos que mostrei, o C:\ deve ser substituído pela letra do HD em que está seu Windows e onde foram instalados os programas. Uso o C:\ no artigo, pois é a letra que é normalmente usada.
Caso queira register_globals no PHP, abra o c:\windows\php.ini, localize a linha "register_globals = Off" e arrume para "register_globals = On". Veja mais aqui: http://www.php.net/manual/pt_BR/security.registerglobals.php