Programação

Treino e Dedicação. Habilidade e Presteza com Atenção.

Dicas de comandos SQL mais avançados do WordPress para desenvolderores

27/05/2015 às 20:25:00 Evaldo Lopes php, mysql, wordpress, banco de dados, programação web 01 Comentário

Para quem faz uso um pouco mais avançado do WordPress, especialmente quem trabalha desenvolvendo sites com a plataforma, é bem comum aparecerem situações um tanto complexas.

Leia mais...

Autenticando usuários em Servidores Windows via ldap do PHP

21/11/2010 às 12:08:33 Evaldo Lopes php, programação web

Este post é direcionado ao desenvolvedores em php que desejam implementar acesso direto aos servidores Windows via Active Directory (AD). Utilizaremos a função do php inerentes ao protocolo LDAP, então: vamos entender melhor. O que é o LDAP? O Lightweight Directory Access Protocol (LDAP) é um protocolo para acesso e modificação de informações de diretórios através da rede. O LDAP permite que você localize pessoas, organizações, e outros recursos tais como arquivos e dispositivos na rede, seja na Internet ou numa Intranet. Para entendermos melhor podemos tomar como comparação os programas de banco de dados. O MySQL, MSSQL Server e Oracle dentre tantos outros são SGBDs com características e definições próprias, mas para qualquer um a linguagem universal de comunicação e acesso a dados é o SQL. O LDAP nada mais é, do que a linguagem de comunicação entre qualquer aplicação com o Active Directory (AD). Mais informações sobre o LDAP: - LDAP Zone http://www.ldapzone.com/ - ldapman.org http://www.ldapman.org/ (apresenta alguns bons artigos introdutórios). - The LDAP Schema Repository http://ldap.akbkhome.com/ (esse é indispensável). Isto depende muito do cenário tecnológico no qual que você se encontra: - O primeiro requisito mínimo indispensável para que você possa desfrutar desta tecnologia, é ter acesso a um ambiente que conte com algum servidor da plataforma WINDOWS que ofereça o recurso do AD (Active Directory). - O segundo requisito é você entender a estrutura do AD de seu domínio. Se a empresa no qual trabalho tem uma árvore de AD muito vasta e complexa, contando com muitos usuáios subdivididos em vários domínios e em suas respectivas Ous (Organizations Units). Se você não entende muito bem essa linguagem, recomendo que pesquise informações sobre como funciona o AD antes de prosseguir, abaixo seguem link de sites que podem ajudar no processo de aprendizado sobre o AD: - http://www.microsoft.com/brasil/technet/centralwindows/centromigracao/activedirectory/gerenciando.mspx - http://support.microsoft.com/default.aspx?scid=kb;en-us;325284 Agora que já conhece o PHP, LDAP e o AD, você tem respaldo suficiente para analisar (tomando como base o contexto no qual sua empresa ou cliente esta inserido) para avaliar se esta é a melhor solução a se adequar ao seu caso. Lembre-se cada caso é um caso, e por isso devemos analisar cuidadosamente todos os casos antes de definir qual o melhor método de autenticação para nossa(s) aplicação(ções). Agora podemos começar as configurações do php e, se necessário: o servidor também, com adição com cópias de dll’s. Servidor: Precisa verificar se há três dll na pasta system32, caso não localize-as e faça uma cópia dessas para a pasta em questão: system32. - libsasl.dll - libeay32.dll - ssleay32.dll Depois disso reinicie o servidor. PHP: Para poder habilitar o suporte ao LDAP em um ambiente com Apache/PHP é necessário seguir os seguintes passos: - Abrir o arquivo php.ini e descomentar a linha: extension=php_ldap.dll - Em seguida restartar o serviço do Apache Testando a conexão: Acessando o AD com PHP: - Primeiro para acessar um servidor AD devemos indicar ao PHP qual o servidor queremos conectar e criar uma conexão, para isso usamos a função: ldap_connect("servidor"); O uso desta função é bem simples, abaixo segue um exemplo: <_?php if (!($conexao = @ldap_connect("127.0.0.1"))) { die("Não foi possével se conectar com o servidor de AD"); } else { echo "Conectado com sucesso !!!"; } ?> No exemplo acima $conexao é a variável que irá receber o ponteiro da conexão caso o PHP consiga estabelecer uma conexão com o AD. Como pode ter observado "127.0.0.1" é o IP do servidor, mas também poderíamos se comunicar com o servidor AD pelo nome sem problemas. <_?php if (!($conexao = @ldap_connect("localhost"))) { die("Não foi possével se conectar com o servidor de AD"); } else { echo "Conectado com sucesso !!!"; } ?> OBS: Não se esqueça que o parâmetro de connect(); tem de ser uma string. Agora que já conectamos ao servidor é necessário efetuarmos a autenticação com o mesmo, para isso o php tem a função: ldap_bind($conexao, $usuario, $senha); Exemplo: <_?php if (!($conexao = @ldap_connect("localhost"))) { die("Não foi possível se conectar com o servidor de AD"); } else { echo "Conectado com sucesso !!!"; } if (!($bind = @ldap_bind($conexao, $usuario, $senha))) { //se não validar echo "Usuário ou senha incorretos !!!"; } else { //se validar echo "Usuário autenticado !!!"; } ?> Após ter conectado com o servidor o ponteiro para esta conexão é armazenado na variável $connect que é passado para a função ldap_bind(); Os outros dois parâmetros desta função são um usuário e uma senha válidos no AD. Uma observação importante é que usuário na verdade é composta da seguinte forma: "DOMINIO\\USUARIO". Caso o domínio da minha empresa seja "evaldolopes.com.br" e eu queira autenticar o usuário "evaldo" o script ficaria da seguinte forma: <_?php if (!($conexao = @ldap_connect("localhost"))) { die("Não foi possível se conectar com o servidor de AD"); } else { echo "Conectado com sucesso !!!"."
"; } if (!($bind = @ldap_bind($conexao, "evaldolopes.com.br\\evaldo", $senha))) { //se não validar echo "Usuário ou senha incorretos !!!"; } else { //se validar echo "Usuário autenticado !!!"; } ?> Espero ter ajudado! Sugestões, Criticas ou Agradecimentos; sempre são construtivos. Um abraço a todos.

Leia mais...

Sintaxe PHP – Parte I

21/11/2010 às 12:46:14 Evaldo Lopes php, programação web

Tags PHP: Há quatro formas de adicionar um trecho de código PHP ao documento HTML. Também não é necessário o documento ser HTML e a extensão do arquivo é normalmente (.php). Também chamado de método analítico, este método natural de adicionar um código PHP é entre as tags: <_?php - para início do código; ?> - para final do código. HTML-style / Script tags Outra forma natural de adicionar o bloco de código PHP é através das tags ao estilo Javascript, com: <_script language="php"> - para início do código; <_/script> - para o final do código. Essa forma, por razões óbvias, apesar de estar sempre habilitada, não é muito utilizada. Short tags Por praticidade, essa é a forma mais utilizada. Há uma diretiva no php.ini chamada short_open_tag. Quando marcada para On (padrão), habilita utilizar: <_? - para início do código; ?> - para final do código. Estranhamente, à primeira vista, essa formanão é recomendada. Isso se deve ao fato de poder confundircom tags de definição de versão XML do domcumento. ASP-style tags A última forma de adicionar PHP ao documento, também depende de uma diretiva do php.ini. É a asp_tags, utilizada apenas por quem já possuem o hábito de utilizar: <% - para início do código; %> - para final do código. Em liguagem como APS ou JSP.

Leia mais...

Sintaxe PHP – Parte II

21/11/2010 às 12:46:32 Evaldo Lopes php, programação web

Comando de saída: echo e print Ao longo do nosso estudo você perceberá que os comandos PHP são normalmente expressos via funções. Funções são construções específicas da linguagem expressas através do nome, segido de parênteses, onde é possível ou não passar valores considerados parâmetros de chamada. Começarei com dois comandos que não são funções, são construções especiais da linguagem, pois não necessitam de parâmetros. As instruções mas elementares de "impressão" de um determinado valor na saída HTML são echo e print. Ambos possuem o mesmo propósito fundamental, inserir o valor (ou resultado de expressão) passada como parâmetro na saída HTML exatamente no ponto onde foram chamadas; a diferença é que o print retorna 1(um) e o echo não. Ex.: echo "meu nome é Evaldo Lopes"; Ex.: print "meu nome é Evaldo Lopes"; Funções Alternativas de Saída: exit() e die() As funções exit() e die() são idênticas e servem para interromper o script no momento em que forem alcançadas pelo interpretador. Se algum valor for passado como parâmetro, este será impresso na saída HTML. Ex.: Essa também não! print_r() Aparentemente, print_r() é uma função para o mesmo propósito da construção print. A diferença está no momento de imprimir tipos de dados array (explicarei posteriormente) ou objetos. Ex.: 'Print:; "; print array("valor 1"); echo " - "; print_r ("Print_r():"); print_r (array("valor 1")); ?> var_dump() A função var_dump() é bem interessante, principalmente para depuração de script. Ela além de imprimir o valor passado como parâmetro, informa o seu tipo de dado. Em arrays ou objetos, funciona como a print_r() e ainda mostra os tipos de dados de cada posição ou atributo, respectivamente. Ex.:...


Leia mais...

Sintaxe PHP – Parte III

21/11/2010 às 12:46:41 Evaldo Lopes php, programação web

Comando de saída: echo e print Ao longo do nosso estudo você perceberá que os comandos PHP são normalmente expressos via funções. Funções são construções específicas da linguagem expressas através do nome, segido de parênteses, onde é possível ou não passar valores considerados parâmetros de chamada. Começarei com dois comandos que não são funções, são construções especiais da linguagem, pois não necessitam de parâmetros. As instruções mas elementares de "impressão" de um determinado valor na saída HTML são echo e print. Ambos possuem o mesmo propósito fundamental, inserir o valor (ou resultado de expressão) passada como parâmetro na saída HTML exatamente no ponto onde foram chamadas; a diferença é que o print retorna 1(um) e o echo não. Ex.: echo "meu nome é Evaldo Lopes"; Ex.: print "meu nome é Evaldo Lopes"; Funções Alternativas de Saída: exit() e die() As funções exit() e die() são idênticas e servem para interromper o script no momento em que forem alcançadas pelo interpretador. Se algum valor for passado como parâmetro, este será impresso na saída HTML. Ex.:<_html> <_body> <_?php die("pare o script aqui"); echo "essa linha não será impressa!"; ?> Essa também não! <_/body> <_/html> print_r() Aparentemente, print_r() é uma função para o mesmo propósito da construção print. A diferença está no momento de imprimir tipos de dados array (explicarei posteriormente) ou objetos. Ex.:<_html> <_body> <_?php print "Print:; "; print array("valor 1"); echo " - "; print_r ("Print_r():"); print_r (array("valor 1")); ?> <_/body> <_/html> var_dump() A função var_dump() é bem interessante, principalmente para depuração de script. Ela além de imprimir o valor passado como parâmetro, informa o seu tipo de dado. Em arrays ou objetos, funciona como a print_r() e ainda mostra os tipos de dados de cada posição ou atributo, respectivamente. Ex.:<_html> <_body> <_pre> <_?php var_dump("um texto"); var_dump(array("valor 1", "valor 2")); ?> <_/pre> <_/body> <_/html>

Leia mais...

"Senhor eu sei que Tu me sondas, sei também que me conheces...
Senhor! eu que Tu me sondas..."