PHP

Erro no PHP com MySQL 8: The server requested authentication method unknown to the client

Hoje aconteceu esse erro comigo: Warning: mysqli::__construct(): The server requested authentication method unknown to the client [caching_sha2_password] in XXX on line 8

Warning: mysqli::__construct(): (HY000/2054): The server requested authentication method unknown to the client in XXX on line 8
Connection failed: The server requested authentication method unknown to the client

Fui investigar o motivo e descobri que aparentemente o MySQL mudou a forma padrão de autenticação.

Para resolver, basta executar o seguinte SQL, trocando 123456 pela senha de root do MySQL:

ALTER USER 'root'@'localhost' IDENTIFIED WITH 
mysql_native_password BY '123456'; 

Fonte


Add ticket to GLPI thru API (REST) with PHP Example

<?php

$ch = curl_init();

$fields='{"input": {"name": "Titulo ABCD","content": "Descricao 1234"}}';

curl_setopt($ch, CURLOPT_URL, 'http://localhost/glpi/apirest.php/Ticket/');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
curl_setopt($ch, CURLOPT_POST, 1);

$headers = array();
$headers[] = 'Content-Type: application/json';
$headers[] = 'Session-Token: 6c4f680e5581ca31008809b3236f6ac4';
$headers[] = 'App-Token: 7mvDUHjK21WB19banyJJNWTegjpEQlwslVODeOPJ';
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

$result = curl_exec($ch);
if (curl_errno($ch)) {
    echo 'Error:' . curl_error($ch);
}
curl_close($ch);

var_dump($result);
?>


Como instalar o mod_rewrite para PHP do Apache2 no Linux

Para instalar o mod_rewrite no Ubuntu ou Linux Mint, abra o terminal (CTRL + ALT + T) e digite:

sudo a2enmod rewrite
service apache2 restart

Pronto!

Se você executar o primeiro comando novamente, o sistema confirmará que o mod_rewrite já está ativo com a seguinte mensagem:

Module rewrite already enabled

Testado no Linux Mint 17, e deverá funcionar também no Ubuntu 14.04

Fonte: https://www.digitalocean.com/community/tutorials/how-to-set-up-mod_rewrite-for-apache-on-ubuntu-14-04


Como instalar a extensão intl para PHP do Apache2 no Linux

Para instalar a extensão intl para PHP no Ubuntu ou Linux Mint, abra o terminal (CTRL + ALT + T) e digite:

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install php5-intl
sudo /etc/init.d/apache2 restart

Pronto! 🙂

Testado no Linux Mint 17, e deverá funcionar também no Ubuntu 14.04

Fonte: http://php.net/manual/pt_BR/intl.setup.php


PHP-Day SERPRO Curitiba

O SERPRO e a Comunidade PHP convidam você a participar do evento PHP-day-SERPRO dia 25/05/2001 das 08:00h as 18:00h na Rua Carlos Pioli, 133.

A grade de programação é composta de 8 palestras de 50 minutos cada ministradas por membros da comunidade PHP e do quadro de desenvolvedores do SERPRO.

Para aqueles que não puderem estar presentes no local o evento será transmitido ao vivo pela internet.

Caso você tenha uma palestra que se encaixe com os temas abaixo e deseja ministrar no evento, envia sua proposta para zedmaster ARROBA gmail PONTO com e flavio PONTO lisboa ARROBA serpro PONTO gov PONTO br

Temas:

– Zend Framework
– PHP + OpenSocial
– Memcached
– WordPress
– Programacao php, qual plataforma usar?
– PHPUnit
– Doctrine
– Smarty
– Nginx com PHP
– Programação Ágil (SCRUM, XP, LEAN, TDD etc)
– GIT
– Refatoração
– Arquitetura de Softwares
– Padrões de Projetos

Esperamos a sua participação no evento.

Site: http://serpro.phpday.com.br
Organização: http://www.phpday.com.br/projects/php-day-serpro/wiki
IRC – Servidor: irc.freenode.net – Canal: #php-curitiba


Você conhece o Symfony (PHP) Framework?

O Symfony é uma framework PHP que tem como foco a aceleração do desenvolvimento e manutenção de aplicações web, e a substituição de códigos corriqueiros. São poucos os pre-requisitos para sua instalação: Linux, FreeBSD, MacOS ou Windows e um servidor PHP 5. A versão atual (1.4) só suporta PHP 5.2.4 ou superior, mas versões anteriores podem rodar em servidores PHP 5.0 e 5.1. Infelizmente, como várias outras frameworks modernas, o Symfony não dá mais suporte ao PHP4, mas por outro lado, é compatível com quase todos os bancos de dados relacionais, como o MySQL, Postgresql etc.


A idéia por trás dele é bem parecida com a do Ruby on Rails: facilidade de uso, design simples e código legível. Com ela é possível desenvolver uma aplicação completa com bastante facilidade. O desenvolvedor pode se focar na lógica da aplicação sem ter que perder tempo editando arquivos XML “infinitos”. Podem ser desenvolvidas aplicação porte pequeno a “enterprise”, dando ao desenvolvedor total controle sobre configuração e customização. O Symfony usa arquitetura MVC (Model-View-Controller). Como se não bastasse, existe uma comunidade bastante ativa por trás disso tudo.

Entre os recursos oferecidos pela framework, estão:

  • Internacionalização
  • Desenvolvimento de templates por designers sem conhecimento do framework
  • Formulários gerados com validações automáticas
  • URL’s amigáveis
  • Facilidade para implemtentar Ajax
  • Ferramentas para geração de código
  • Framework para teste automatizado embutido
  • Ferramentas para log, dando aos administradores informações completas sobre as atividades da aplicação

O Symfony tem uma curva de aprendizagem um pouco maior que outras frameworks, e o tutorial “Getting Started” é uma boa forma de começar. Também é disponibilizada uma aplicação de exemplo chamada “Symfony sandbox“, que te dá uma idéia prática de como funciona. Basta baixar, descompactar, colocar no seu servidor e pronto. A aplicação vem configurada para utilizar o banco de dados SQLite, mas é bastante simples configurar para outro SGBD.


Passar uma string pela URL com PHP

As vezes você precisa passar uma frase com acentos, espaços e pontuação, mas não pode simplesmente colocar esses caracteres na URL, porque pode dar alguns erros em alguns navegadores (browsers).

No PHP existe uma função que faz essa conversão. Chama-se urlencode. E você pode usar dessa forma:

<?php echo urlencode("Este é o texto que você quer converter!"); ?>

Ele vai retornar o seguinte:

Este+%C3%A9+o+texto+que+voc%C3%AA+quer+converter%21

Dessa forma você pode passar a string pela URL sem problemas.

Se você precisar fazer o contrário (converter o texto codificado para o texto normal), você pode utilizar a função urldecode. Assim:


PHP corrompe imagem ao forçar download

Você faz o download utilizando a função header do PHP e todos seus atributos. Quando o arquivo chega, vem corrompido. A coisa fica mais confusa ainda porque a maioria dos formatos de arquivo funciona corretamente, mas os arquivos de imagem chegam corrompidos.

Tive esse problema e gostaria de compartilhar a solução encontrada:

Enviei um arquivo qualquer e comparei o tamanho. Vi que estava diferente (3 bytes a mais). Enviei um arquivo de texto e percebi que depois que abria utilizando o script, o arquivo de texto estava com uma linha a mais no início.

Procurei por todo o script e não achei nada. Quando fui em uma das includes encontrei o erro. No final da include, depois que fechava o PHP (?>), tinha uma linha a mais.

Pronto. Removi a linha e tudo funcionou perfeitamente :).

Isso acontece porque antes do comando header não pode ter um byte sequer. Ela indica o cabeçalho do arquivo, então deve ser a primeira coisa a ser carregada, ou então dá erro.


Gerar código aletório com a função uniqid do PHP

Uniqid é uma função simples que gera um código aleatório, que pode ser usado para diferentes coisas, como códigos de confirmação, nomes de arquivo, senhas etc.

O código gerado é baseado no na hora do servidor em micro-segundos.

Exemplo de uso:

<?php
echo uniqid();
?>

Enviando arquivos com o PHP

Aqui vou mostrar um script básico para enviar arquivos utilizado o PHP. Funciona dessa forma:

Você envia o arquivo através de um formulário comum, utilizando um campo tipo “file”. Lembre-se na tag form você deve incluir o atributo enctype=”multipart/form-data”.

Depois que o arquivo é enviado (no exemplo abaixo o arquivo foi enviado para a própria página, mas você pode colocar a parte de HTML em uma página, e a parte de PHP em outra sem problemas), ele é movido para a pasta final com a função move_uploaded_files do PHP. Lembre-se que é necessário dar um chmod 777 no diretório que irá receber o arquivo.

No programa que utilizo (Filezilla) e na maioria dos programas de FTP, basta clicar com o botão direito na pasta  ou arquivo e ir em “Permissões” para mudar o CHMOD.

A variável $_FILES[“arquivo”][“tmp_name”] é o nome temporário do arquivo. É o nome que o servidor dá ao arquivo assim que o recebe. $_FILES[“arquivo”][“name”] é o nome original do arquivo.

Veja o exemplo abaixo:

<?php
### SCRIPT PARA UPLOAD DE ARQUIVOS ####
### DESENVOLVIDO POR: TIAGO PASSOS ####
### VOXTIAGO ARROBA GMAIL PONTO COM ###

if ($_FILES["arquivo"]["tmp_name"]) {

   // ESSE EH O NOME TEMPORARIO DO ARQUIVO
   $tmp_name = $_FILES["arquivo"]["tmp_name"];

   // INFORME O DIRETORIO PARA ONDE O ARQUIVO SERA ENVIADO
   // LEMBRE-SE QUE É NECESSÁRIO DAR CHMOD 777 NESSE DIRETÓRIO
   $diretorio = "upload/";

   $nome_do_arquivo = $diretorio . $_FILES["arquivo"]["name"];

   if (move_uploaded_file($tmp_name, $nome_do_arquivo)) {

      ?><script type="text/javascript">alert("Arquivo enviado");</script><?php

   } else {

      ?><script type="text/javascript">alert("Arquivo não enviado");</script><?php

   }

}

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Enviar arquivos com PHP</title>
</head>
<body>

<form id="envia_arquivo" method="post" enctype="multipart/form-data">
Foto:<br />
<input type="file" name="arquivo" id="arquivo" size="40" /><br />
<input type="submit" value="Enviar!" />
</form>

</body>
</html>

  • Publicidade

  • Redes Sociais

    Facebook  Twitter
  • Estatísticas

    Page Views (desde março de 2010):

    Estatísticas detalhadas
  • Novidades por e-mail!

    Digite seu e-mail:


    Fique tranquilo. Seu e-mail não será usado para outros fins, e você poderá se descadastrar quando quizer.

    Eu!

    Tiago Passos
    Todo o conteúdo desse site esta licenciado sob a licença Creative Commons 3.0 (CC BY 3.0). Você pode copiar e modificar o conteúdo desde que cite o autor.
    iDream theme by Templates Next | Powered by WordPress