Universidade de Aveiro Mestrado em Comunicação Multimédia 1º Semestre 2009/2010
Tecnologias Dinâmicas para a Internet
Projecto 3 O PHP Docentes: Profs. Benjamim Júnior e Telmo Silva Discentes: Henrique Ribeiro, Ivan Terra, João Mourão, Joaquim Vieira, Pedro Dias.
A linguagem PHP •
"PHP (Hypertext Preprocessor) é uma linguagem livre e muito utilizada para gerar conteúdo dinâmico na World Wide Web.
•
O PHP é considerada uma poderosa linguagem de scripting que actua apenas no lado do servidor (Server-Side).
•
Quando um utilizador visita a página PHP, o servidor web processa o código PHP. Depois determina que partes é que precisa mostrar ao utilizador (conteúdo e imagens) e que partes necessita de esconder (Operações de ficheiros, cálculos matemáticos, etc.). Posteriormente traduz o PHP numa página HTML e envia-a para o browser do utilizador.
•
A linguagem PHP foi concebida 1994 por Rasmus Lerdorf e a primeira versão utilizada por utilizadores foi disponibilizada em 1995, e ficou conhecida como "Personal Home Page Tools" (ferramentas para página pessoal).
•
A versão mais actual é a 5.3 que foi lançada em Junho de 2009 e vem crescendo numa velocidade incrível, e já está a ser desenvolvida a versão 6 do PHP.
Vantagens • É uma linguagem gratuita (Open Source). • É veloz e robusta (o ASP tende a deixar o servidor mais lento, o PHP • • •
• • • •
raramente causa este problema.). É estruturada e de orientação a objectos. De fácil ligação a bases de dados. (Ex: SQL) Funciona em qualquer plataforma onde for possível instalar um servidor Web. Há também versões para Linux, FreeBSD, Solaris, Windows NT, IRIX, HP-UX. A sua sintaxe é familiar, isto é, grande parte da sua sintaxe é "aproveitada" do C, Java e Perl com um pequeno conjunto de funcionalidades específicas. É fácil obter ajuda, existem muitos sites com “helps” Possui muitas funções e funciona com muitas tecnologias (BD, XML, etc.). Muitas pessoas o utilizam pois possibilita boas oportunidades no mundo do trabalho.
Desvantagens •
Possui alguma incompatibilidade entre versões, isto é, falta de padronização. Por exemplo, um comando que funciona numa determinada versão pode não funcionar noutra
•
Possui documentação incompleta, pois como a maioria dos programas Open Source, frequentemente os recursos surgem antes de estarem documentados. O site da organização ajuda bastante, mas é comum encontrar recursos sem documentação e, principalmente, sem exemplos que possam ajudar o aprendiz.
•
Segundo os especialistas, a utilização de Servlets e do JSP deixa os códigos mais seguros do que o PHP pois são pré-compilados.
Sintaxe Um script em PHP começa sempre com No fim de cada instrução usa se o “;” Echo e print para imprimir os resultados e “//”para comentar uma linha de código.
Exemplo:
Variáveis As variáveis no PHP são representadas por um cifrão ($) seguido pelo nome da variável. Os nomes de variável no PHP fazem distinção entre maiúsculas e minúsculas (case sensitive). •
As variáveis locais não necessitam de ser declaradas e devem ser inicializadas.
•
As variáveis definidas dentro de uma função são locais e não podem ser acedidas fora da função tal como as variáveis definidas fora de uma função também não podem ser acedidas dentro da mesma. Para que seja possível aceder, dentro de uma função, a funções definidas fora desta é necessário definir a variável como global dentro da função
Variáveis Super Globais Superglobais são variáveis nativas ou pré-definidas no PHP, o que significa que elas estão disponíveis em todo o script. Não há necessidade de fazer Global “$variavel;” para lhes aceder dentro de funções. Estas variáveis super globais são: • • • • • • • • •
$GLOBALS $_SERVER $_GET $_POST $_FILES $_COOKIE $_SESSION $_REQUEST $_ENV
Get Os dados passam entre páginas, embebidas no URL. Os dados estão visível para o utilizador. Exemplo: http://www.tdipt/index.php?nome=alunos (Neste caso a variável nome é transmitida com o valor “alunos”). Este tipo de envio tem algumas desvantagens como: A tecnologia está mais exposta (Reconhecimento visual) É fácil encontrar os parâmetros. O tamanhos dos dados a enviar está condicionado pelo tamanho do URL Vantagens: Este tipo de URL é portável – é possível fazer o bookmark da página, enviar por email, etc.
Post No caso do POST podemos passar valores através de formulários Os dados passam entre páginas de modo invisível para o utilizador.
Este tipo de envio tem algumas desvantagens como: Problemas com o refresh em alguns browsers. Vantagens: Não existe tamanho limite para os dados a enviar. A informação transmitida é invisível ao utilizador, proporcionando maior segurança na transmissão dos dados.
Cookies As cookies são simples e pequenos pedaços de dados armazenados no sistema operativo do utilizador normalmente num ficheiro ( "cookies.txt" ) ou num directório ("C:\DocumentsandSettings\userid\Cookies" ) em ficheiros individuais. Permitem a utilização de dados guardados numa visita anterior ao site. Nota: muitas vezes as cookies não armazenam os dados que queremos seguir mas sim um ID que referencia os dados armazenados no servidor .
Sessions As sessões (sessions) podem ser usadas para guardar informações relativas à autenticação de utilizadores para prevenir acesso de pessoas não autorizadas a determinada página e que poderão ser acedidos a partir de qualquer página do nosso site uma vez que se trata de uma variável "super global".
Interacção no PHP PHP é uma linguagem que possibilita a interacção com outras linguagens. Ex: • HTML • JavaScript • SQL • XML • …
Validações e Expressões Regulares SQL Injection
Validações e Expressões Regulares Todos os dados introduzidos pelo utilizadores devem sempre ser verificados pelo servidor , para garantir uma maior segurança do site. As expressões regulares servem para verificar se uma string tem, ou não, determinados caracteres, serve para validar por exemplo um email.
Sql Injection SQL Injection ou injecção de SQL é uma técnica de
invasão de sistemas que se tornou famosa na Internet que pode ser utilizada em qualquer linguagem de programação.
Ocorre quando o atacante consegue inserir uma série
de instruções SQL dentro de uma 'query' através da manipulação da entrada de dados de uma aplicação.
Frameworks Uma framework é uma estrutura de suporte definida
em que um outro projecto de software pode ser organizado e desenvolvido. Um framework pode incluir programas de suporte, bibliotecas de código, linguagens de script e outros softwares para ajudar a desenvolver e juntar diferentes componentes de um projecto de software.
Frameworks são projectados com a intenção de facilitar
o desenvolvimento de software, habilitando designers e programadores a gastarem mais tempo determinando nas exigências do software do que com detalhes tediosos de baixo nível do sistema.
Exemplos Frameworks Zend Framework: uma colecção de arquivos com várias funções de
base de dados, RSS, AJAX, E-mail, PDF e Busca. Foi desenvolvida pelos criadores do PHP e tem um excelente documentação sobre o assunto
Magpie RSS: Framework que permite que se carregue feeds RSS no
site de maneira simples. Simples e rápido de usar;
CakePHP: é um Framework escrito em PHP que tem como
principais objectivos oferecer uma estrutura que possibilite aos programadores de PHP de todos os níveis desenvolverem aplicações robustas rapidamente, sem perder flexibilidade
CMS CMS – Content Managment System ou, em português, Sistema de Gestão de Conteúdo, são plataformas web pré-programadas usadas para a construção de sites, portais ou intranets dinâmicos. A grande vantagem no uso destas plataformas é o de permitirem que o conteúdo do site possa ser modificado rapidamente, sem alteração de qualquer linha de código e em qualquer altura, sendo apenas necessário um computador ligado à Internet. Estes sistemas de gestão de conteúdos têm duas áreas diferentes: frontend e backend. O frontend é a zona do site acessível a todos os visitantes, é o que consultamos quando digitamos o endereço do site na Internet. O backend é a parte administrativa do mesmo. Apenas os gestores autorizados (através do nome de utilizador e palavra-chave) conseguem entrar. Dentro do backend é também possível criar zonas restritas para os diferentes tipos de utilizadores.
Exemplos CMS Drupal: O Drupal é uma framework modular (organiza-se por módulos) e um sistema de Gestão de Conteúdos (CMS) escrito em PHP. O Drupal permite criar e organizar conteúdo, manipular a aparência, automatizar tarefas administrativas, e definir permissões e papéis para utilizadores e colaboradores. Por ser desenvolvido em PHP, o Drupal é independente do sistema operativo, no entanto requer um servidor HTTP compatível com PHP e um Servidor de Base de Dados para funcionar. O Drupal é normalmente descrito como uma Framework de Gestão de Conteúdos, pois além de oferecer as funcionalidades básicas de um CMS também tem implementadas uma série de APIs robustas e apresenta uma estrutura modular que facilita o desenvolvimento de módulos complexos. O Drupal é um software livre e de código aberto, por isso qualquer um pode ver como o Drupal funciona, fazer modificações, redistribuir com ou sem as modificações, além de poder propor e participar em mudanças no projecto principal. Tudo isso de acordo com a licença GPL, da GNU. A comunidade Drupal é activa e prestável. Existem vários módulos com funções importantes que foram criados por utilizadores comuns.
Joomla: Desenvolvido a partir do Mambo o Joomla escrito em PHP e pode ser executado tanto num servidor Web Apache como num IIS e base de dados MySQL.É um projecto de código aberto (licença GNU/GPL) e a sua última versão estável é a 1.5.14 (em 30 de Julho de 2009).
Wordpress: Trata-se um sistema de gestão de conteúdos na web, escrito em PHP e recorrendo a base de dados MySQL, especialmente usado para a criação de blogs. O WordPress foi criado a partir do já desaparecido b2/cafelog e é hoje, junto com o Movable Type, o mais popular na criação de Blogs. As causas do seu rápido crescimento são, entre outras, seu tipo de licença (de código aberto), a facilidade de uso e suas características como gestor de conteúdos. Criado por Ryan Boren e Matthew Mullenweg, é distribuído sob a GNU General Public sendo de uso gratuito.
Referencias http://www.php.net http://www.w3schools.com/PHP/ http://apostilas.fok.com.br/manual-do-php/index.php http://pt.wikipedia.org/wiki/Drupal http://www.webdesignerdepot.com/2009/01/how-to-choose-the-right-cms/ http://www.w3.org/TR/soap12-part0/ http://www.w3.org/TR/soap12-part1/ http://www.w3.org/TR/soap12-part2/