Anda di halaman 1dari 65

EXTERNATO CAMPISTA DEPARTAMENTO DE INFORMTICA ENSINO MEDIO TCNICO EM INFORMTICA

PORTAL DE NOTCIAS E DOCUMENTOS


Leandro Bastos Menssor Rafael Caetano Emerick Rodolfo Ribeiro Barreto

Campos dos Goytacazes/RJ Outubro- 2011

EXTERNATO CAMPISTA DEPARTAMENTO DE INFORMTICA ENSINO MEDIO TCNICO EM INFORMTICA

PORTAL DE NOTCIAS E DOCUMENTOS


Orientador (a):JOS GABRIEL PEIXOTO RODRIGUES Coorientador(a):RAFAEL VASCONCELOS SILVA

Projeto apresentado em cumprimento s exigncias do curso de Ensino Mdio Tcnico em Informtica como requisito parcial para obteno do ttulo de Tcnico de Informtica.

Campos dos Goytacazes/RJ Outubro- 2011

EXTERNATO CAMPISTA DEPARTAMENTO DE INFORMTICA ENSINO MEDIO TCNICO EM INFORMTICA

PORTAL DE NOTCIAS E DOCUMENTOS


BANCA EXAMINADORA

Prof. (a): JOS GABRIEL PEIXOTO RODRIGUES

Prof. (a): RAFAEL VASCONCELOS SILVA

Prof. (a): ENOCH MELCHISEDEC CARDINOT

Campos Dos Goytacazes RJ

Outubro-2011

EXTERNATO CAMPISTA DEPARTAMENTO DE INFORMTICA ENSINO MEDIO TCNICO EM INFORMTICA

AGRADECIMENTOS

Ao longo do perodo do curso, muitas pessoas passaram por nossas vidas, deixando marcas e lies para toda ela, proporcionando alegrias, conhecimento e crescimento pessoal. Neste momento gostaramos de agradec-las, pois, de alguma forma, contriburam para a concluso desta etapa. Entre estas pessoas, agradecemos aos professores do Externato Campista e aos amigos que encontramos em sala de aula. Um especial agradecimento aos colegas que batalham para realizarmos um sonho. Agradecemos a todos os professores, que alm de colegas e amigos, nos encorajou neste trabalho monogrfico, sendo orientador.

Campos Dos Goytacazes RJ Outubro - 2011

SUMRIO
Resumo.............................................................................................9 Introduo......................................................................................10 Captulo 1-Tecnologias utilizadas 1.1 PHP...................................................................................11 1.1.1 Como surgiu a linguagem PHP.............................11 1.1.2 O que pode ser feito com PHP.....................................12 1.2 JQUERY..........................................................................12 1.3 HTML................................................................................13 1.3.1 Histria........................13 1.4 CSS...................................................................................14 1.5 JAVA SCRIPT...................................................................16 1.5.1 Histria...........................16 1.5.2 Imperativa e Extrutura......................17 1.5.3 Dinmica........................18 1.5.4 Baseada em Prottipos.................................................18 1.5.5 Compatibilidade............................................................20 1.5.6 Segurana....................................................................22 Captulo 2-W3C 2.1 Formatos recomendados.................................................24 2.2 Padres W3C...................................................................24 Captulo 3-WWW 3.1 Histria............................................................................25 3.2 Funcionamento................................................................27 3.3 Webwriting.......................................................................27 3.4 Padres...........................................................................27

3.5 Tecnologias Relacionadas...................................................28 3.5.1 Navegador.........................................................................28 3.5.2 Plataforma Java.................................................................29 3.5.3 CGI....................................................................................29 3.5.6 Aspcto Profissional..........................................................29 Captulo 4 PHPMYADMIN 4.1 Histria.................................................................................30 Captulo 5-SQL 5.1 Linguagem de manipulao de dados.................................31 5.2 Linguagem de definio de dados......................................32 5.3 Linguagem decontrole de dados.........................................33 5.4 Linguagem de transao de dados.....................................34 5.5 Linguagem de consulta de dados.........................................34 5.6 Sist de DB que utilizam SQL.................................................34 Captulo 6-Funes do Site..........................................................36 6.1 Diagrama de caso de uso....................................................36 6.2 Login....................................................................................37 6.3 Cadastrar Notcias...............................................................38 6.4 Remover Notcias................................................................39 6.5 Upload de Arquivos.............................................................40 6.6 Remover os Arquivos includos...........................................41 6.7 Saindo da rea administrativa............................................42 6.8 Adicionar Comentrios........................................................43 6.9 Remover Comentrios........................................................44 Captulo 7-CONCLUSO..............................................................45 Captulo 8- BIBLIOGRAFIA.........................................................46 Captulo 9 ANEXOS..................................................................48

LISTA DE FIGURAS

FIGURA 1 Diagrama de Caso de Uso............................................36 FIGURA 2 Login..............................................................................37 FIGURA 3 Cadastrar Notcias.........................................................38 FIGURA 4 Remover Notcias..........................................................39 FIGURA 5 Upload de Arquivos.......................................................40 FIGURA 6 Remover os Arquivos includos.....................................41 FIGURA 7 Saindo da rea administrativa.......................................42 FIGURA 8 Adicionar Comentrios..................................................43 FIGURA 9 Remover Comentrios..................................................44

LISTA DE SIGLAS ANSI =American National Standards Institute CGI =Common Gateway Interface CSS =Cascading Style Sheets que em portugus foi traduzido para folhas de
estilo em cascata

CSRF =Cross-Site Request Forgery DOM =Document Object Model - Modelo de Objetos de Documentos uma
especificao da W3C

DNS =Domain Name System, uma espcie de sistema para a traduo de


endereos de IP para nomes de domnios.

DDL =Data Definition Language - Linguagem de Definio de Dados. DCL =Data Control Language - Linguagem de Controle de Dados DQL =DQL a parte da SQL mais utilizada. ECMA =linguagem de programao baseada em scripts, padronizada pela
Ecma International na especificao ECMA-262.

GNU =Projeto iniciado por Richard Stallman em 1984, com o objetivo de criar
um sistema operacional totalmente livre

HTML =Acrnimo para a expresso inglesa HyperText Markup Language, que


significa Linguagem de Marcao de Hipertexto) uma linguagem de marcao utilizada para produzir pginas na Web. Documentos HTML podem ser interpretados por navegadores.

HTTP =Protocolo de Transferncia de Hipertexto - um protocolo de


comunicao.

PDA =Personal Digital Assistant - Assistente Digital Pessoal. PNG =um formato de dados utilizado para imagens. RGBA =E a abreviatura do sistema de cores aditivas formado por Vermelho
(Red), Verde (Green) e Azul (Blue).

SQL = uma linguagem de pesquisa declarativa para banco de dados


relacional.

SGML = uma metalinguagem atravs da qual se pode definir linguagens de


marcao para documentos.

TCP-IP = um conjunto de protocolos de comunicao entre computadores


em rede

URL =Um URL (de Uniform Resource Locator), em portugus LocalizadorPadro de Recursos, o endereo de um recurso .

XHTML = uma reformulao da linguagem de marcao HTML. XSS =Cross-site scripting (XSS) um tipo de vulnerabilidade do sistema de
segurana de um computador, encontrado normalmente em aplicaes web que activam ataques maliciosos ao injectarem .

W3C = um consrcio internacional com cerca de 300 membros, que agrega


empresas, rgos governamentais e organizaes independentes, e que visa desenvolver padres para a criao e a interpretao de contedos para a Web.

WWW =World Wide Web, que em portugus significa, Rede de alcance


mundial, tambm conhecida como Web um sistema de documentos em hipermdia que so interligados e executados na Internet.

RESUMO

Este documento fala sobre o projeto elaborado ao longo da disciplina de projeto final, um site com a finalidade de auxiliar pessoas leigas e avanadas no ramo da informtica. Este site contm arquivos para downloads como softwares e tutoriais, tambm contem notcias atualizadas frequentemente. Um site criado com vrias linguagens de programao e que passou por vrias etapas visuais e estruturais at chegar a verso atual. Ao longo deste trabalho existem imagens ilustrativas do panorama do site e uma espcie de manual de navegao para que se tenha uma noo simples do que podem encontrar. Neste projeto por enquanto no existem muitas postagens porem vrias opinies sero arquivadas em projetos posteriores. Para o conforto dos nossos visitantes. Sero postadas video-aulas para promover o aprendizado de todos, e tambm o download dessas videoaulas, ou seja, o usurio ter a opo de efetuar o download para assistir a hora que bem desejar ou assistir diretamente online. Tambm existe a opo do usurio fazer comentrios em nossas postagens, expressando suas opinies, fazendo elogios e crticas, o usurio tambm poder efetuar um cadastro no site para se logar e fazer seus downloads, pois eles s podero ser efetuados por usurios cadastrados no sistema.

PALAVRAS CHAVE
Site, usurios, cadastro, logar, informtica, Downloads

ABSTRACT

This document talks about the project built here, a site in order to help lay people and advanced in the field of informatics. This site contains files for downloads such as software and tutorials, also contains frequently updated news, a site created using various programming languages and went through several stages until you get visual and structural Noqui you see today. Throughout this monograph there are visual images illustrating the site and a manual of navigation for you to have a simple notion doque can find this project so far there are not many posts but many ideas will be filed in future projects for the convenience of our guests .video-lectures will be posted to facilitate the learning of all these and also download and video-classes, ie, the User will have the option of downloading assisitir to the time that you please watch or directly online. There is also the option of the User to comment on our posts, expressing your opinions, making compliments and criticisms, the User can also make a register on the site to login and make your downloads, because they might be performed only by users logged into the site.

Key Words
Site , users, registry, log, computer, Downloads

12

INTRODUO

O site foi construindo com intuito de inovar no mercado de publicao de contedo para informtica em geral , observado que existia na web muitos problemas de contedo nesses sites, assim como arquivos corrompidos, notcias mal documentas dentre outros problemas. O paradigma de programao utilizada ser a estruturada. O termo programao estruturada ( ou programao procedimental) as vezes utilizado como sinnimo de programao imperativa(paradigma de programao que especifica os passos que um programa deve seguir para alcanar um estado desejado). A programao estruturada geralmente uma escolha melhor que programao seqencial e no estruturada em muitas situaes que envolvem uma complexidade mdia e requerem facilidade de manuteno. Ressaltaremos aqui que a base analtica usada pra o desenvolvimento do site foi exclusivamente focada para a utilizao dos internautas que procuram por notcia do mundo da informtica, tutoriais para a soluo de problemas e download de softwares para o uso no seu dia-a-dia e para solucionar alguns de seus problemas, foram realizadas vrias pesquisas em vrios sites e blogs analisando o que estava faltando e o que estava em excesso neles, selecionado o melhor contedo e acrescentado alguns detalhes para ser feito o melhor para o usurio.O nosso objetivo facilitar a vida dos usurios no seu dia-a-dia, oferecendo comodidade e praticidade.

13

Captulo 1-TECNOLOGIAS UTILIZADAS

1.1 PHP
PHP (um acrnimo recursivo para "PHP: Hypertext Preprocessor", originalmente Personal Home Page.) uma linguagem interpretada livre e utilizada para gerar contedo dinmico na World Wide Web. PHP uma linguagem que permite criar sites WEB dinmicos, possibilitando uma interao com o usurio atravs de formulrios, parmetros da URL e links Rasmus Lerdorf 1994 . A diferena de PHP com relao a linguagens semelhantes a Javascript que o cdigo PHP executado nos servidores, sendo enviado para o cliente apenas HTML puro. Desta maneira possvel interagir com bancos de dados e aplicaes existentes no servidor, com a vantagem de no expor o cdigo fonte para o cliente. Isso pode ser til quando o programa est lidando com senhas ou qualquer tipo de informao confidencial. O que diferencia PHP de um script CGI escrito em C ou Perl que o cdigo PHP fica embutido no prprio HTML, enquanto no outro caso necessrio que o script CGI gere todo o cdigo HTML, ou leia de outro arquivo.

1.1.1-Como surgiu a linguagem PHP?


A linguagem PHP foi concebida durante o outono de 1994 por Rasmus Lerdorf. As primeiras verses no foram disponibilizadas, tendo sido utilizadas em seu home - Page apenas para que ele pudesse ter informaes sobre as visitas que estavam sendo feitas. A primeira verso utilizada por outras pessoas foi disponibilizada em 1995, e ficou conhecida como Personal Home Page Tools (ferramentas para pgina pessoal). Era composta por um sistema bastante simples que interpretava alguns macros e alguns utilitrios que rodavam por trs das home-pages: um livro de visitas, um contador e algumas outras coisas. Em meados de 1995 o interpretador foi reescrito, e ganhou o nome de PHP/FI, o FI veio de outro pacote escrito por Rasmus que interpretava dados de formulrios HTML (FormInterpreter). Ele combinou os scripts do pacote Personal Home Page Tools com o FI e adicionou suporte a

14

MYsql, nascendo assim o PHP/FI, que cresceu bastante, e as pessoas passaram a contribuir com o projeto Estima-se que em 1996 PHP/FI estava sendo usado por cerca de 15.000 sites pelo mundo, e em meados de 1997 esse nmero subiu para mais de 50.000. Nessa poca houve uma mudana no desenvolvimento do PHP.

1.1.2-O que pode ser feito com o PHP


Basicamente, qualquer coisa que pode ser feita por algum programa CGI pode ser feita tambm com PHP, como coletar dados de um formulrio, gerar pginas dinamicamente ou enviar e receber cookies. PHP tambm tem como uma das caractersticas mais importantes o suporte a um grande nmero de bancos de dados, como dBase, Interbase, mSQL, mySQL, Oracle, Sybase, PostgreSQL e vrios outros. Construir uma pgina baseada em um banco de dados torna-se uma tarefa extremamente simples com PHP. Alm disso, PHP tem suporte a outros servios atravs de protocolos como IMAP, SNMP, NNTP, POP3 e, logicamente, HTTP. Ainda possvel abrir sockets e interagir com outros protocolos.

1.2 JQUERY

jQuery uma biblioteca JavaScriptcross-browser desenvolvida para simplificar os scriptsclient side que interagem com o HTML. Ela foi lanada em janeiro de 2006 no BarCamp de Nova York por John Resig. Usada por cerca de 41% dos 10 mil sites mais visitados do mundo, jQuery a mais popular das bibliotecas JavaScript.jQuery uma biblioteca de cdigo aberto e possui licena dual, fazendo uso da Licena MIT ou da GNU General Public License verso 2. A sintaxe do jQuery foi desenvolvida para tornar mais simples a navegao do documento HTML, a seleo de elementos DOM, criar animaes, manipular eventos e desenvolver aplicaes AJAX. A biblioteca tambm oferece a possibilidade de criao de plugins sobre ela. Fazendo uso de tais facilidades, os desenvolvedores podem criar camadas de abstrao

15

para interaes de mais baixo nvel, simplificando o desenvolvimento de aplicaes web dinmicas de grande complexidade.A Microsoft e a Nokia anunciaram planos de incluir o jQuery em suas plataformas,a Microsoft adotando-a inicialmente no Visual Studio para uso com o framework AJAX do ASP.NET, e a Nokia na sua plataforma Web Run-Time de widgets.A biblioteca jQuery tambm tem sido usada no MediaWiki desde a verso 1.16.

1.3 HTML
HTML (acrnimo para a expresso inglesa HyperText Markup Language, que significa Linguagem de Marcao de Hipertexto) uma linguagem de marcao utilizada para produzir pginas na Web. Documentos HTML podem ser interpretados por navegadores. A tecnologia fruto do "casamento" dos padres HyTime e SGML.HyTime um padro para a representao estruturada de hipermdia e contedo baseado em tempo. Um documento visto como um conjunto de eventos concorrentes dependentes de tempo (como udio, vdeo, etc.), conectados por hiper-ligaes. O padro independente de outros padres de processamento de texto em geral.SGML um padro de formatao de textos. No foi desenvolvido para hipertexto, mas tornou-se conveniente para transformar documentos em hiper-objetos e para descrever as ligaes.

1.3.1-Histria
Tim Berners-Lee criou o HTML original (e outros protocolos associados como o HTTP) em uma estao NeXTcube usando o ambiente de desenvolvimento NeXTSTEP. Na poca a linguagem no era uma especificao, mas uma coleo de ferramentas para resolver um problema de Tim: a comunicao e disseminao das pesquisas entre ele e seu grupo de colegas. Sua soluo, combinada com a ento emergente internet pblica (que tornaria-se a Internet) ganhou ateno mundial.As primeiras verses do HTML foram definidas com regras sintticas flexveis, o que ajudou aqueles sem familiaridade com a publicao na Web. Atualmente a sintaxe do HTML muito mais rgida, permitindo um cdigo mais preciso. Atravs do tempo, a utilizao

16

de ferramentas para autoria de HTML aumentou, assim como a tendncia em tornar a sintaxe cada vez mais rgida. Apesar disso, por questes histricas (retrocompatibilidade), os navegadores ainda hoje conseguem interpretar pginas web que esto longe de ser um cdigo HTML vlido. A linguagem foi definida em especificaes formais na dcada de 1990, inspiradas nas propostas originais de Tim Berners-Lee em criar uma linguagem baseada em SGML para a Internet. A primeira publicao foi esboada por Berners-Lee e Dan Connolly, e publicada em 1993 na IETF como uma aplicao formal para o SGML (com uma DTD em SGML definindo a gramtica). A IETF criou um grupo de trabalho para o HTML no ano seguinte, e publicou o HTML 2.0 em 1995. Desde 1996, as especificaes HTML vm sendo mantidas, com o auxlio de fabricantes de software, pela World Wide Web Consortium (W3C). Apesar disso, em 2000 a linguagem tornou-se tambm uma norma internacional (ISO/IEC 15445:2000). A ltima especificao HTML lanada pela W3C foi a recomendao HTML 4.01, publicada no final de 1999. Uma errata ainda foi lanada em 2001. Desde a publicao do HTML 3.5 no final de 1997, o grupo de trabalho da W3C tem cada vez mais e de 2002 a 2006, de forma exclusiva focado no desenvolvimento do XHTML, uma especificao HTML baseada em XML que considerada pela W3C como um sucessor do HTML. O XHTML faz uso de uma sintaxe mais rigorosa e menos ambgua para tornar o HTML mais simples de ser processado e estendido.

1.4 CSS
Cascading Style Sheets (ou simplesmente CSS) uma linguagem de estilo utilizada para definir a apresentao de documentos escritos em uma linguagem de marcao, como HTML ou XML. Seu principal benefcio prover a separao entre o formato e o contedo de um documento.Ao invs de colocar a formatao dentro do documento, o desenvolvedor cria um link (ligao) para uma pgina que contm os estilos, procedendo de forma idntica para todas as pginas de um portal.Kassio Romulo Quando quiser alterar a aparncia do portal basta portanto modificar apenas um arquivo.Com a variao de atualizaes dos navegadores (browsers) como Internet Explorer

17

que ficou sem nova verso de 2001 a 2006, o suporte ao CSS pode variar. O Internet Explorer 6, por exemplo, tem suporte total a CSS1 e praticamente nulo a CSS2. Navegadores mais modernos como Opera, Internet Explorer 7 e Mozilla Firefox tem suporte maior, inclusive at a CSS 3, ainda em desenvolvimento. A interpretao dos browsers pode ser avaliada com o teste Acid2, que se tornou uma forma base de revelar quo eficiente o suporte de CSS, fazendo com que a nova verso em desenvolvimento do Firefox seja totalmente compatvel a ele assim como o Opera j .CSS tem uma sintaxe simples e utiliza uma srie de palavras em ingls para especificar os nomes de diferentes estilos de propriedade de uma pgina.Uma folha de estilo consiste de uma lista de regras. Cada regra ou conjunto de regras consiste de um ou mais seletores e um bloco de declarao. Um declarao de bloco composta por uma lista de declaraes entre chaves. Cada declarao em si uma propriedade, dois pontos (:), um valor, ento um ponto e vrgula (;). Em CSS, seletores so usados para declarar a quais elementos de marcao um estilo se aplica, uma espcie de expresso correspondente. Os seletores podem ser aplicados a todos os elementos de um tipo especfico, ou apenas aqueles elementos que correspondam a um determinado atributo; elementos podem ser combinados, dependendo de como eles so colocados em relao uns aos outros no cdigo de marcao, ou como eles esto aninhados dentro do objeto de documento modelo.Pseudo-classe outra forma de especificao usada em CSS para identificar os elementos de marcao, e, em alguns casos, aes especficas de usurio para o qual um bloco de declarao especial se aplica. Um exemplo freqentemente utilizada o :hover pseudo-classe que se aplica um estilo apenas quando o usurio 'aponta para' o elemento visvel, normalmente, mantendo o cursor do mouse sobre ele. Isto anexado a um seletor como em a:hoverou #elementid:hover. Outras pseudoclasses e pseudo-elementos so, por exemplo, :first-line, :visited or :before. Uma pseudo-classe especial :lang(c), "c".Uma pseudo-classe seleciona elementos inteiros, tais como :link ou :visited, considerando que um pseudo-elemento faz uma seleo que pode ser constituda por elementos parciais, tais como :firstline ou :first-letter.Seletores podem ser combinados de outras formas tambm, especialmente em CSS 2.1, para alcanar uma maior especificidade e flexibilidade.

18

Costuma-se definir a fonte padro arial , caso no exista substitui por Verdana, caso no exista define qualquer fonte sans-serif. Define tambm a cor de fundo do corpo da pgina.Sua necessidade adveio do fato de o HTML (Hyper Text Markup Language) aos poucos ter deixado de ser usado apenas para criao de contedo na web, e portanto havia uma mistura de formatao e contedo textual dentro do cdigo de uma mesma pgina. Contudo, na criao de um grande portal, fica quase impossvel manter uma identidade visual, bem como a produtividade do desenvolvedor. nesse ponto que entra o CSS. As especificaes do CSS podem ser obtidas no site da W3C "World Wide Web Consortium", um consrcio de diversas empresas que buscam estabelecer padres para a Internet. importante notar que nenhum browser suporta igualmente as definies do CSS. Desta forma, o webdesigner deve sempre testar suas folhas de estilo em browsers de vrios fabricantes, e preferencialmente em mais de uma verso, para se certificar de que o que foi codificado realmente seja apresentado da forma desejada.

1.5 JAVASCRIPT
JavaScript uma linguagem de programao baseada na linguagem de programao ECMAScript padronizada pela Ecma international nas especificaes ECMA-262 e ISO/IEC 16262 e atualmente a principal linguagem para programao client-side em navegadores web. Foi concebida para ser uma linguagem script com orientao a objetos baseada em prottipos, tipagem fraca e dinmica e funes de primeira classe. Possui suporte programao funcional e apresenta recursos como fechamentos e funes de alta ordem comumente indisponveis em linguagens populares como Java e C++.O uso de JavaScript em pginas XHTML, pelo padro W3C,

1.5.1-Histria
JavaScript foi originalmente desenvolvido por Brendan Eich da Netscape sob o nome de Mocha, posteriormente teve seu nome mudado para LiveScript e por fim JavaScript. LiveScript foi o nome oficial da linguagem quando foi lanada pela primeira vez na verso beta do navegador Netscape 2.0 em setembro de 1995, mas teve seu nome mudado em um anncio conjunto com a

19

Sun Microsystems em dezembro de 1995 quando foi implementado no navegador Netscape verso 2.0B3.A mudana de nome de LiveScript para JavaScript coincidiu com a poca em que a Netscape adicionou suporte tecnologia Java em seu navegador. A escolha final do nome causou confuso dando a impresso de que a linguagem foi baseada em java, sendo que tal escolha foi caracterizada por muitos como uma estratgia de marketing da Netscape para aproveitar a popularidade do Java que desfrutava de grande popularidade devido ao seu recente lanamento.JavaScript rapidamente adquiriu ampla aceitao como linguagem de script client-side de pginas web. Como consequncia, a Microsoft desenvolveu um dialeto compatvel com a linguagem de nome JScript para evitar problemas de trademark. JScript adicionou novos mtodos para consertar mtodos do Javascript relacionados a data que apresentavam problemas. JScript foi includo no Internet Explorer 3.0, liberado em Agosto de 1996. Javascript e Jscript so to similares que os dois termos so comumente usados de forma intercambivel. A Microsoft entretanto declara muitas caractersticas nas quais JScript no conforma com a especificao ECMA.Em novembro de 1996 a Netscape anunciou que tinha submetido JavaScript para Ecma internacional como candidato a padro industrial e o trabalho subsequente resultou na verso padronizada chamada ECMAScript.JavaScript tem se transformado na linguagem de programao mais popular da web. Inicialmente, no entanto, muitos profissionais denegriram a linguagem pois a mesma tinha como alvo principal o pblico alvo leigo. Com o advento do Ajax, Java Script teve sua popularidade de volta e recebeu mais ateno profissional. O resultado foi a proliferao de frameworks e bibliotecas, prticas de programao melhoradas e o aumento no uso do Java Script fora do ambiente de navegadores bem como o uso de plataformas de JavaScript server-side. Em janeiro de 2009 o projeto Common JS foi fundado com o objetivo de especificar uma biblioteca padro para desenvolvimento JavaScript fora do navegador.

20

1.5.2-Imperativa e Estruturada
Java Script suporta os elementos de sintaxe de programao estruturada da linguagem C (por exemplo, if, while, switch). Uma exceo a questo do escopo: o escopo em blocos ao estilo do C no suportado, em seu lugar Java Script utiliza escopo a nvel de funo. Java Script 1.7, entretanto, suporta escopo a nvel de bloco atravs do comando let. Como C, Java Script faz distino entre expresses e comandos. Uma diferena sinttica do C que a quebra de linha termina automaticamente o comando, sendo o ponto-e-vrgula opcional ao fim do comando.

1.5.3-Dinmica
Como na maioria das linguages de script, tipos so associados com valores, no com variveis. Por exemplo, a varivel x poderia ser associada a um nmero e mais tarde associada a uma string. JavaScript suporta vrias formas de testar o tipo de um objeto, incluindo ducktyping.

1.5.3.1-Baseada em objetos
JavaScript quase inteiramente baseada em objetos. Objetos JavaScript so arrays associativos, aumentados com prottipos. Os nomes da propriedade de um objeto so strings: obj.x = 10 e obj["x"] = 10 so equivalentes, o ponto neste exemplo apenas acar sinttico. Propriedades e seus valores podem ser adicionadas, mudadas, ou deletadas em tempo de execuo. A maioria das propriedades de um objeto (e aqueles em sua cadeia de herana via prottipo) pode ser enumerada usando-se uma estrutura de repetio for.in. Javascript possui um pequeno nmero de objetos padro da linguagem como Function e Date.

1.5.3.2-Avaliao em tempo de execuo


JavaScript inclui a funo eval que consegue executar em tempo de execuo comandos da linguagem que estejam escritos em uma string.

21

1.5.4-Baseada em Prottipos 1.5.4.1-Prottipos


JavaScript usa prottipos em vez de classes para o mecanismo herana. possvel simular muitas caractersticas de orientao a objetos baseada em classes com prottipos.

1.5.4.2-Funes e mtodos
Diferente de muitas linguagens orientadas a objetos, no h distino entre a definio de uma funo e a definio de um mtodo no JavaScript. A distino ocorre durante a chamada da funo; a funo pode ser chamada como um mtodo. Quando uma funo chamada como mtodo de um objeto, a keyword this da funo associada quele objeto via tal invocao.

Uso em pginas Web


O uso primrio de JavaScript escrever funes que so embarcadas ou includas em pginas HTML e que interagem com o Document Object Model(DOM) da pgina. Alguns exemplos deste uso so:

Abrir uma nova janela com controle programtico sobre seu tamanho, posio e atributos; Validar valores de um formulrio para garantir que so aceitveis antes de serem enviados ao servidor; Mudar imagens medida que o mouse se movimenta sob elas.

Pelo fato do cdigo JavaScript rodar localmente no navegador do usurio, e no em um servidor remoto, o navegador pode responder a tais aes rapidamente, fazendo uma aplicao mais responsiva. Alm disso, o cdigo JavaScript pode detectar aes de usurio que o HTML sozinho no pode, tais como teclas pressionadas individualmente. Aplicaes como Gmail tomam vantagem disso: muito da lgica da interface do usurio escrita em

22

JavaScript, e o JavaScript envia requisies de informao, tais como o contedo de um correio eletrnico, para o servidor. A tendncia mais ampla de programao em Ajax explora de maneira similar este ponto forte. Uma JavaScript engine (tambm conhecida como interpretador JavaScript ou uma implementao JavaScript) interpreta cdigo fonte JavaScript e o executa de forma adequada. A primeira implementao JavaScript foi criada por Brendan Eich na Netscape Communications Corporation, para o Navegador Netscape. A implementao, nomeada Spider Monkey, implementada em C e vem sendo atualizada para conformar com a edio 3 do ECMA-262. A implementao Rhino, criada primariamente por Norris Boyd(ex-empregado da Netscape; agora no Google) uma implementao de JavaScript em Java. Rhino, como Spider Moneky, conformante com a terceira edio do ECMA262.Por ser o JavaScript a nica linguagem que a maioria dos navegadores populares suportam, tem se tornado uma linguagem alvo para muitos frameworks em outras linguagens, a despeito do fato de no ter sido planejado para tal. No obstante as limitaes de desempenho inerente sua natureza dinmica, a crescente velocidade das implementaes JavaScript tem feito da mesma uma prtica linguagem intermediria.

1.5.5-Compatibilidade
J que JavaScript roda em ambientes variveis, uma parte importante do teste e depurao de seu cdigo consiste na verificao de compatibilidade entre navegadores.As interfaces DOM para a manipulao de pginas web no so parte do padro ECMA, ou do prprio JavaScript. Oficialmente, so definidas por um esforo de padronizao da W3C; na prtica, implementaes de navegadores diferem do padro de uma para as outras, e nem todos navegadores executam JavaScript.Para lidar com essas diferenas, programadores JavaSCript com frequncia tentam escrever cdigos que conformam com o padro comum a maioria dos navegadores; no sendo possvel isso, tentam escrever de maneira ad-hoc um cdigo que verifique a presena de certos recursos e que se comporte de maneira adequada caso tais recursos no estejam disponveis. Em alguns casos, dois navegadores podem ambos implementarem uma funcionalidade com comportamentos diferentes, e

23

programadores podem achar prtico detectar qual navegador est rodando e mudar o comportamento de seus scripts para se adequar a isso. Programadores podem tambm usar bibliotecas ou ferramentas que abstraem tais diferenas entre navegadores. Alm disso, scripts podem no funcionar para alguns usurios. Por exemplo, um usurio pode:

Usar um navegador antigo ou raro com suporte DOM incompleto ou incomum. Usar um navegador de um PDA ou telefone mvel que no est apto a executar JavaScript. Ter a execuo do JavaScript desabilitada por normas de segurana.

Para suportar tais usurios, programadores web tentam criar pginas que sejam robustas a agentes que no suportem o JavaScript da pgina. Em particular, uma pgina deve funcionar a despeito das funcionalidades extras que um JavaScript prov. Uma abordagem alternativa que muitos acham prefervel a pgina se desenvolvida por primeiro a partir de tecnologias bsicas que funcionem em todos os navegadores, e ento aprimor-la para os usurios que possuam JavaScript.

1.5.6-Acessibilidade
Assumindo que o usurio no tenha desabilitado sua execuo, pode-se utilizar JavasScript do lado cliente para melhorar a experincia de um usurio como deficincia fsica ou visual.Leitores de tela utilizados por pessoas cegas ou com viso parcial podem detectar a presena de JavaScript e dessa forma acessar e ler o DOM da pgina depois que seus scripts foram executados. Nestes casos recomenda-se que o HTML seja o mais conciso, navegvel e rico semanticamente possvel, tendo a pgina scripts ou no. No se recomenda que o cdigo JavaScript de uma pgina seja totalmente dependente do eventos provenientes do mouse j que usurios que no conseguem ou optam por no usar o mouse no estaro aptos a colher os benefcios de tal cdigo. Da mesma forma, embora hyperlinks e webforms possam ser navegados e operados do teclado, JavaScript voltado para acessibilidade no deve requerer um teclado para acessar tais eventos. JavaScript conta com eventos

24

independentes do dispositivo de usurio tais como onfocus e onchange que so mais recomendados na maioria dos casos. No se recomenda utilizar JavaScript de um jeito que seja confuso ou desorientador para qualquer usurio da internet. Por exemplo, usar JavaScript para alterar ou desabilitar a funcionalidade normal de um navegador, tal como mudar a forma com que o boto direito ou o evento de atualizao funcionam, deve ser evitado. Da mesma forma, eventos de interrupo que o usurio pode no estar ciente reduz a sensao de controle do usurio assim como scripts inesperados que mudam o contedo da pgina.Frequentemente o processo de fazer pginas web complexas to acessveis quanto possvel se transforma em um problema no trivial onde certas decises se transformam em assunto de debate e opinio. Entretanto, tecnologias assistivas esto constantemente evoluindo e novos recomendaes e informaes relevantes vem sendo continuamente publicadas na web.

1.5.7-Segurana
JavaScript e o DOM representam uma potencialidade para

programadores maliciosos escreverem scripts para rodarem em um cliente via web. Navegadores so projetados para conter este risco de duas maneiras. A primeira que scripts so rodados em uma sandbox na qual s podem executar aes relacionadas internet, no tarefas de programao de propsito geral como criar arquivos. A segunda que scripts so limitados pela regra da mesma origem: scripts de um web site no tm acesso a informaes como nomes de usurio, senhas ou cookies enviados de outro site. A maioria dos bugs em JavaScript relacionados segurana so brechas de uma das regras.Um problema comum relacionado segurana a escrita de scripts inter-sites, ou XSS, uma violao da regra da mesma origem. Tais vulnerabilidades ocorrem quando um atacante est apto a causar em um site alvo, como um site de banco, a incluso de um script malicioso na pgina web apresentada vtima. O script neste exemplo pode ento acessar a aplicao do banco com privilgios da vtima, potencialmente revelando informaes secretas ou transferindo dinheiro sem a autorizao da vtima. Alguns navegadores incluem proteo parcial

25

contra ataques XSS refletidos, no qual o atacante fornece uma URL incluindo o script malicioso. No entanto, mesmo usurios destes sites esto vulnerveis a outros ataques XSS, como aqueles onde o cdigo malicioso guardado em um banco de dados. Apenas o correto desenho de aplicaes web no servidor pode prevenir inteiramente ataques XSS. Vulnerabilidades XSS tambm podem ocorrer por causa de erros de implementao por parte de programadores de navegadores. Outra vulnerabilidade inter-sites a falsificao de requisio inter-sites ou CSRF. No CSRF, o cdigo no site de um atacante faz com que o navegador da vtima tome aes no desejadas pelo usurio em um site alvo (como transferncia de dinheiro em um banco). Ela funciona porque, se o site alvo conta apenas com cookies para autenticar requisies, ento requisies iniciadas pelo cdigo no site do atacante levaro as mesmas credenciais legtimas de login que as requisies iniciadas pelo usurio. Em geral a soluo para CSRF requerer um valor de autenticao em um campo webform escondido, e no somente nos cookies, para autenticar qualquer requisio que possa ter efeitos duradouros.
<script>

Verificar

cabealho

do

HTTP

Referrer

tambm

pode

ajudar."Sequestro JavaScript" um tipo de ataque CSRF no qual uma tag no site do atacante explora uma pgina no lado da vtima que retorna informao privada tal como JSON ou JavaScript. Solues possveis incluem requerer um token de autenticao nos parmetros POST e GET para qualquer resposta que retorne um JSON privado (mesmo que no tenha efeitos colaterais); utilizar POST e nunca GET para requisies que retornem um JSON privado; e modificar a resposta de forma que no possa ser usada via uma tag <script> (atravs, por exemplo, de um wrapping de um JSON em um comentrio JavaScript).

Captulo 2-W3C

O World Wide Web Consortium (W3C) um consrcio internacional com cerca de 300 membros, que agrega empresas, rgos governamentais e organizaes independentes, e que visa desenvolver padres para a criao e a interpretao de contedos para a Web.

26

Foi fundado por Tim Berners-Lee em 1994 para levar a Web ao seu potencial mximo, por meio do desenvolvimento de protocolos comuns e fruns abertos que promovam a sua evoluo e assegurem a sua interoperabilidade. Sites desenvolvidos segundo esses padres podem ser acessados e visualizados por qualquer pessoa ou tecnologia, independente dos hardware ou software utilizados, como celulares (em Portugal, telemveis) e PDAs, de maneira rpida e compatvel com os novos padres e tecnologias que possam surgir com a evoluo da internet. Para alcanar seus objetivos, o W3C possui diversos comits que estudam as tecnologias existentes para a apresentao de contedo na Internet e criam padres de recomendao para utilizar essas tecnologias. Com a padronizao, os programas conseguem acessar facilmente os cdigos e entender onde deve ser aplicado cada conhecimento expresso no documento. Padres seus como HTML, XHTML e CSS so muito populares, contudo, em muitos casos so usados de forma errnea devido ao desconhecimento da especificao. um dever de todo o desenvolvedor Web respeitar e seguir os padres de acessibilidade do W3C, pois de outro modo poder impor barreiras tecnolgicas a diversas pessoas, desestimulando e at mesmo impedindo o acesso a suas pginas.

2.1-Formatos Recomendados
Os formatos comuns aprovados pela W3C so: SVG (desenho vetorial), PNG, HTML, XHTML, XML etc. O PNG usa RGBA, ou seja: Vermelho, Verde, Azul e Alpha, e no tem perda de qualidade como o JPG, que usa RGB e no suporta transparncia.

2.2-Padres W3C

Cascading Style Sheets (CSS) Common Gateway Interface Document Object Model Resource Description Framework Scalable Vector Graphics

27

SKOS Simple Object Access Protocol Synchronized Multimedia Integration Language Web Services Description Language eXtensible Hypertext Markup Language eXtensible Markup Language (XML) XML Information Set XPath XQuery eXtensibleStylesheet Language for Transformation (XSLT) Web Ontology Language (OWL)

Captulo 3-WWW

A World Wide Web (que em portugus significa, "Rede de alcance mundial"; tambm conhecida como Web e WWW) um sistema de documentos em hipermdia que so interligados e executados na Internet.Os documentos podem estar na forma de vdeos, sons, hipertextos e figuras. Para visualizar a informao, pode-se usar um programa de computador chamado navegador para descarregar informaes (chamadas "documentos" ou "pginas") de servidores web (ou "stios") e mostr-los na tela do usurio. O usurio pode ento seguir as hiperligaes na pgina para outros documentos ou mesmo enviar informaes de volta para o servidor para interagir com ele. O ato de seguir hiperligaes , comumente, chamado de "navegar" ou "surfar" na Web.

3.1-Histria
As ideias por trs da Web podem ser identificadas ainda em 1980, no CERN- Organizao Europeia para a Investigao Nuclear (Sua), quando Tim Berners-Lee construiu o ENQUIRE. Ainda que diferente da Web atualmente, o projeto continha algumas das mesmas ideias primordiais, e tambm algumas ideias da web semntica. Seu intento original do sistema foi tornar mais fcil o compartilhamento de documentos de pesquisas entre os

28

colegas.Em maro de 1989, Tim Berners-Lee escreveu uma proposta de gerenciamento de informao, que referenciava o ENQUIRE e descrevia um sistema de informao mais elaborado. Com a ajuda de Robert Cailliau, ele publicou uma proposta mais formal para a World Wide Web no final de 1990.O primeiro servidor web, um NeXTcube usado por Berners-Lee no CERN Um computador NeXTcube foi usado por Berners-Lee com primeiro servidor web e tambm para escrever o primeiro navegador, o WorldWideWeb, em 1990. No final do mesmo ano, Berners-Lee j havia construdo todas as ferramentas necessrias para o sistema: o navegador, o servidor e as primeiras pginas web, que descreviam o prprio projeto. Em 6 de agosto de 1991, ele postou um resumo no grupo de notciasalt.hypertext. Essa data marca a estreia da Web como um servio publicado na Internet.O conceito crucial do hipertexto originou-se em projetos da dcada de 1960, como o projeto Xanadu e o NLS. A ideia revolucionria de Tim foi unir o hipertexto e a Internet. Em seu livro Weaving The Web, ele explica que sugeriu repetidamente o casamento das tecnologias para membros de ambas as comunidades de desenvolvedores. Como ningum implementou sua ideia, ele decidiu implementar o projeto por conta prpria. No processo, ele desenvolveu um sistema de identificao global e nico de recursos, o Uniform Resource Identifier (URI). Sistemas anteriores se diferenciavam da Web em alguns aspectos. na Web uma hiperligao unidirecional enquanto trabalhos anteriores somente tratavam ligaes bidirecionais. Isso tornou possvel criar uma hiperligao sem qualquer ao do autor do documento sendo ligado, reduzindo significativamente a dificuldade em implementar um servidor Web e um navegador. Por outro lado, o sistema unidirecional responsvel por o que atualmente chama-se hiperligao quebrada, isto , uma hiperligao que aponta para uma pgina no disponvel devido evoluo contnua dos recursos da Internet com o tempo. Diferente de sistemas anteriores como o Hyper Card, a World Wide Web no era software proprietrio, tornando possvel a criao de outros sistemas e extenses sem a preocupao de licenciamento. Em 30 de abril de 1993, a CERN anunciou que a World Wide Web seria livre para todos, sem custo. Nos dois meses aps o anncio que o gopher j no era mais livre, produziu-se uma mudana para a Web. Um antigo navegador popular era o Viola WWW, que era baseado no HyperCard.Considera-se que a grande virada da WWW

29

comeou com a introduo do Mosaic em 1993, um navegador grfico desenvolvido por um time de desenvolvedores universitrios. Antes de seu lanamento, os grficos no eram frequentemente misturados com texto em pginas web.

3.2-Funcionamento

Visualizar uma pgina web ou outro recurso disponibilizado normalmente inicia ou ao digitar uma URL no navegador ou seguindo (acessando) uma hiperligao. Primeiramente, a parte da URL referente ao servidor web separada e transformada em um endereo IP, por um banco de dados da Internet chamado Domain name system (DNS). O navegador estabelece ento uma conexo TCP-IP com o servidor web localizado no endereo IP retornado. O prximo passo o navegador enviar uma requisio HTTP ao servidor para obter o recurso indicado pela parte restante da URL (retirando-se a parte do servidor). No caso de uma pgina web tpica, o texto HTML recebido e interpretado pelo navegador, que realiza ento requisies adicionais para figuras, arquivos de formatao, arquivos de script e outros recursos que fazem parte da pgina. O navegador ento renderiza a pgina na tela do usurio, assim como descrita pelos arquivos que a compe.

3.3-Webwriting
Pode-se pensar que webwriting apenas uma tcnica para escrever em contedos digitais, mas o conceito bem mais amplo, mas diretamente relacionado ao mundo WWW. As tcnicas que facilitam a insero de interpretao de um contedo em ambientes digitais engloba o conceito de webwriting. A reproduo de uma foto, um texto mais sintetizado e mais objetivo, as cores a serem usadas nas pginas web, o posicionamento dos links e os formatos de navegao so algumas das preocupaes trabalhadas dentro do webwriting.

30

3.4-Padres
A funcionalidade da Web baseada em trs padres:

URI, um sistema que especifica como cada pgina de informao recebe um "endereo" nico onde pode ser encontrada. Esse padro definido em RFC 1738 (URL, em dezembro de 1994) e RFC 3986 (URI, em janeiro de 2005).

HTTP, um protocolo que especifica como o navegador e servidor web comunicam entre si. Esse padro definido em RFC 1945 (HTTP/1.0, maio de 1996), RFC 2616 (HTTP/1.1, junho de 1999) e RFC 2617 (autenticao HTTP).

HTML, uma linguagem de marcao para codificar a informao de modo que possa ser exibida em uma grande quantidade de dispositivos. Esse padro definido em HTML 1], RFC 1866 (HTML 2.0), HTML 3.2, HTML 4.01 e XHTML.

3.5-Tecnologias relacionadas 3.5.1-Navegador


O navegador um programa de computador usado para visualizar recursos da WWW, como pginas web, imagens e vdeos. Com ele tambm possvel por comunicar-se com o servidor web a fim de receber ou enviar informaes. O primeiro navegador desenvolvido no CERN foi o World Wide Web, pelo prprio Tim Berners-Lee, para plataforma NeXTSTEP em 1990. Mas mais adiante surgiram outros navegadores como o Viola, da Pei Wei (1992). Marc Andreessen, da NCSA lanou um navegador chamado "Mosaic para X" em 1993 que causou um tremendo aumento na popularidade da Web entre usurios novos. Andreesen fundou a Mosaic Communication Corporation (hoje Netscape Communications). Caractersticas adicionais como contedo dinmico, msica e animao podem ser encontrados em navegadores modernos. Frequentemente, as capacidades tcnicas de navegadores e servidores avanam muito mais rpido que os padres conseguem se ajustar, por isso no incomum que essas caractersticas no funcionem propriamente em todos os computadores. A necessidade de encontrar exatamente a

31

informao desejada surgiu com a WWW: desta constatao vieram os primeiros motores de busca.

3.5.2-Plataforma Java
Um avano significativo da Web foi a plataforma Java, desenvolvida pela Sun Microsystems. Ela permite que pginas web incrustem pequenos programas (chamados applets) diretamente dentro da informao enviada que ser rodada no computador do usurio. Esses applets so executados na prpria mquina cliente, fornecendo uma experincia mais rica para o usurio. Essa tecnologia nunca ganhou a popularidade que a Sun esperava, por uma variedade de razes, incluindo falta de integrao com outros contedos e o fato de que a JVM (mquina virtual necessria para a execuo do contedo) ter que ser instalada antes do uso. Atualmente o Adobe Flash realiza vrias das funes originalmente visadas aos applets Java, como apresentao de vdeo, animao e interfaces grficas ricas.

3.5.3-CGI
Consiste em uma tecnologia que permite que programas interpretados gerem pginas web dinmicas , permitindo a um navegador passar parmetros para o servidor web para ento receber o resultado do processamento. uma especificao independente de linguagem de programao.

3.6-Aspecto profissional
O surgimento da Web representou uma nova fronteira profissional para diversos setores. poca do seu "estouro" comercial, jornalistas, publicitrios, designers, escritores, redatores, fotgrafos, alm claro de programadores, e webmasters e demais especialistas afluram ao mercado, criando e desenvolvendo empresas com os mais variados objetivos .Com o tempo, o capital de risco, utilizado para fundar e fazer operar as primeiras empresas

32

afastou-se, levando-as falncia. Foi a chamada "bolha". Hoje o cenrio mostra-se diverso, com investidores cautelosos, grandes corporaes investindo com bastante cuidado e uma imensa legio de profissionais freelancers atendendo seus clientes diretamente.

Captulo 4-PHPMYADMIN

PhpMyAdmin um programa de computador desenvolvido em PHP para administrao do MySQL pela Internet. A partir deste sistema possvel criar e remover bases de dados, criar, remover e alterar tabelas, inserir, remover e editar campos, executar cdigos SQL e manipular campos chaves. O phpMyAdmin muito utilizado por programadores web que muitas vezes necessitam manipular bases de dados. Normalmente, o phpMyAdmin tratado como uma ferramenta obrigatria em quase todas as hospedagens da web, alm de pacotes off-line, como o WAMPServer, XAMPP, EasyPHP e PHP Triad.

4.1-Histria
Tobias Ratschiller, um consultor de TI e mais tarde fundador da empresa de software Maguma, comeou a trabalhar em uma web baseada em PHPfront-end para o MySQL, em 1998, inspirado por Peter Kuppelwieser Webadmin do MySQL. Ele desistiu do projeto (e phpAdsNew, do qual ele tambm foi o autor original) em 2000, devido falta de tempo.Por esse tempo, phpMyAdmin j tinha se tornado uma das aplicaes mais populares do PHP e de ferramentas de administrao do MySQL, com uma grande comunidade de usurios e colaboradores. A fim de coordenar o crescente nmero de caminhos, um grupo de trs promotores, Olivier Mller, Marc Delisle e Loc Chapeaux, registaram o projeto phpMyAdmin em SourceForge e assumiu o desenvolvimento em 2001.

33

Captulo 5- SQL
Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL, uma linguagem de pesquisa declarativa para banco de dados relacional (base de dados relacional). Muitas das caractersticas originais do SQL foram inspiradas na lgebra relacional.O SQL foi desenvolvido originalmente no incio dos anos 70 nos laboratrios da IBM em San Jose, dentro do projeto System R, que tinha por objetivo demonstrar a viabilidade da implementao do modelo relacional proposto por E. F. Codd. O nome original da linguagem era SEQUEL, acrnimo para "Structured English Query Language" (Linguagem de Consulta Estruturada, em Ingls) ], vindo da o facto de, at hoje, a sigla, em ingls, ser comumente pronunciada "squel" ao invs de "s-ki-l", letra a letra. No entanto, em portugus, a pronncia mais corrente a letra a letra: "sse-qu-le".A linguagem SQL um grande padro de banco de dados. Isto decorre da sua simplicidade e facilidade de uso. Ela se diferencia de outras linguagens de consulta a banco de dados no sentido em que uma consulta SQL especifica a forma do resultado e no o caminho para chegar a ele. Ela uma linguagem declarativa em oposio a outras linguagens procedurais. Isto reduz o ciclo de aprendizado daqueles que se iniciam na linguagem.Embora o SQL tenha sido originalmente criado pela IBM, rapidamente surgiram vrios "dialectos" desenvolvidos por outros produtores. Essa expanso levou necessidade de ser criado e adaptado um padro para a linguagem. Esta tarefa foi realizada pela American National Standards Institute (ANSI) em 1986 e ISO em 1987. O SQL foi revisto em 1992 e a esta verso foi dado o nome de SQL-92. Foi revisto novamente em 1999 e 2003 para se tornar SQL:1999 (SQL3) e SQL:2003, respectivamente. O SQL:1999 usa expresses regulares de emparelhamento, queries recursivas e gatilhos (triggers). Tambm foi feita uma adio controversa de tipos no-escalados e algumas caractersticas de orientao a objeto. O SQL:2003 introduz caractersticas relacionadas ao XML, sequncias padronizadas e colunas com valores de auto-generalizao (inclusive colunas-identidade).

34

Tal como dito anteriormente, o SQL, embora padronizado pela ANSI e ISO, possui muitas variaes e extenses produzidos pelos diferentes fabricantes de sistemas gerenciadores de bases de dados. Tipicamente a linguagem pode ser migrada de plataforma para plataforma sem mudanas estruturais principais. Outra aproximao permitir para cdigo de idioma Estruturado ser embutido e interagir com o banco de dados. Por exemplo, o Oracle e outros incluem Java na base de dados, enquanto o PostgreSQL permite que funes sejam escritas em Perl, Tcl, ou C, entre outras linguagens. Exemplo A pesquisa SELECT * FROM T ter como resultado todos os elementos de todas as linhas da tabela chamada T. Partindo da mesma tabela T, a pesquisa
SELECT C1 FROM T

ter como resultado todos os elementos da coluna C1 da

tabela T. O resultado da pesquisa SELECT * FROM T WHERE C1=1 ser todos os elementos de todas as linhas onde o valor de coluna C1 '1'.

5.1-Linguagem de Manipulao de Dados


O primeiro grupo a DML (Data Manipulation Language - Linguagem de manipulao de dados). DML um subconjunto da linguagem da SQL que utilizado para realizar incluses, consultas, excluses e alteraes de dados presentes em registros. Estas tarefas podem ser executadas em vrios registros de diversas tabelas ao mesmo tempo, os commandos que realizam as funes acima referidas so Insert, Select, Update e Delete .
INSERT

usada para inserir um registro (formalmente uma tupla) a uma

tabela existente. Ex: Insert into Pessoa (id, nome, sexo) value;
SELECT

O Select o principal comando usado em SQL para realizar para mudar os valores de dados em uma ou mais linhas da permite remover linhas existentes de uma tabela.

consultas a dados pertencentes a uma tabela.


UPDATE

tabela existente.
DELETE

35

possvel inserir dados na tabela AREA usando o INSERT INTO:


Insert into AREA (arecod, aredes) values (100, "Informtica"), (200, "Turismo"), (300, "Higiene e Beleza");*

5.2-Linguagem de Definio de Dados


O segundo grupo a DDL (Data Definition Language - Linguagem de Definio de Dados). Uma DDL permite ao utilizador definir tabelas novas e elementos associados. A maioria dos bancos de dados de SQL comerciais tem extenses proprietrias no DDL. Os comandos bsicos da DDL so poucos:
CREATE:

cria um objeto (uma Tabela, por exemplo) dentro da base de

dados.
DROP:

apaga um objeto do banco de dados.

Alguns sistemas de banco de dados usam o comando ALTER, que permite ao usurio alterar um objeto, por exemplo, adicionando uma coluna a uma tabela existente. Outros comandos DDL:
ALTER TABLE CREATE INDEX ALTER INDEX DROP INDEX CREATE VIEW DROP VIEW

5.3- Linguagem de Controle de Dados


O terceiro grupo o DCL (Data Control Language - Linguagem de Controle de Dados). DCL controla os aspectos de autorizao de dados e licenas de usurios para controlar quem tem acesso para ver ou manipular dados dentro do banco de dados. Duas palavras-chaves da DCL:

36
GRANT

- autoriza ao usurio executar ou setar operaes. - remove ou restringe a capacidade de um usurio de executar

REVOKE

operaes. outros comandos DCL:


ALTER PASSWORD CREATE SYNONYM

5.4- Linguagem de Transao de Dados

BEGIN WORK (ou START TRANSACTION, dependendo do dialeto SQL) pode ser usado para marcar o comeo de uma transao de banco de dados que pode ser completada ou no.

COMMIT envia todos os dados das mudanas permanentemente. ROLLBACK faz com que as mudanas nos dados existentes desde o ltimo COMMIT ou ROLLBACK sejam descartadas.

COMMIT e ROLLBACK interagem com reas de controle como transao e locao. Ambos terminam qualquer transao aberta e liberam qualquer cadeado ligado a dados. Na ausncia de um BEGIN WORK ou uma declarao semelhante, a semntica de SQL dependente da implementao.

5.5- Linguagem de Consulta de Dados


Embora tenha apenas um comando, a DQL a parte da SQL mais utilizada. O comando SELECT permite ao usurio especificar uma consulta ("query") como uma descrio do resultado desejado. Esse comando composto de vrias clusulas e opes, possibilitando elaborar consultas das mais simples s mais elaboradas.

5.6-Sistemas de Banco de Dados que usam SQL


Apache Derby Cach

37

DB2 Firebird HSQLDB (banco de dados implementado em Java) IDMS (banco de dados hierrquico) IMS (banco de dados hierrquico) Informix Ingres InterBase Microsoft Access Microsoft SQL Server Oracle PointBase Micro (banco de dados relacional implementado em Java) PostgreSQL SQLite LiteBase Mobile (dedicado plataformas mveis como: Palm OS, Pocket PC, WinCE, Symbian)

Captulo 6- Funes do Site


Figura 1-Diagrama de caso de uso

6.1-Funes do site Login

38

Para fazer login na rea administrativa necessrio primeiramente ter o login e a senha de acesso. Os campos para serem preenchidos podem ser observados assim que voc acessa a pgina pelo link azul chamado de login na parte superior do site pelo lado direito.

Figura 2- login

Preencha os dois campos e clique no boto login, se algum dado estiver incorreto ou apresentar algum erro no servidor o sistema exibir uma mensagem avisando o erro. Caso o login seja efetuado com sucesso ser carregada para usurio uma pgina com as opes de gerenciamento do site.

6.2-Funes do site Cadastrar Notcias

39

Ao concluir o login do administrador possvel ter acesso ao menu notcias onde existe a possibilidade de adicionar e excluir as notcias do site.

Figura 3- Cadastrar Notcias

Para adicionar uma notcia primeiramente deve-se informar o ttulo da notcia, logo aps o usurio dever escolher o tema da notcia que ser responsvel pela forma que a mesma ser disponibilizada no menu . E por ltimo o usurio ir colocar o corpo da notcia que voc deseja postar. Clicando no boto Enviar o usurio estar adicionando essa notcia no site..

6.3-Funes do site Remover notcias


Para remover uma notcia o usurio administrativo deve clicar em cima

40

do link da notcia que voc deseja excluir do lado direito da tela na pgina onde se cadastra notcias.

Figura 4- Remover Notcias

Para adicionar um arquivo para download no site o usurio administrativo deve acessar o menu UPLOAD DE ARQUIVO no menu superior da rea administrativa, nesse menu ser possvel visualizar um campo para incluso do arquivo que se deseja adicionar, clicando no boto Enviar arquivo o arquivo ser incluso para download na pgina downloads para os usurios.

6.4-Funes do site Upload de Arquivos


Para adicionar um arquivo para download no site o usurio administrativo deve acessar o menu UPLOAD DE ARQUIVO no menu superior da rea administrativa, nesse menu ser possvel visualizar um campo

41

para incluso do arquivo que se deseja adicionar, clicando no boto Enviar arquivo o arquivo ser incluso para download na pgina downloads para os usurios.

Figura 5-Upload de Arquivos

6.5-Funes do site Remover Arquivos Includos

42

Para remover um arquivo basta clicar no link com o nome do arquivo que se deseja deletar do lado direito da janela.

Figura 6- Remover os arquivos includos

6.6-Funes do site Saindo da rea administrativa

43

Para sair do sistema basta clicar no link azul com o nome de sair do sistema .

i Figura 7- Saindo da rea administrativa

6.7-Funes do site Adicionar Comentrios

44

Para adicionar um comentrio o usurio dever informar o seu nome, email e logo aps a mensagem que ir compor o comentrio. Clicando em enviar comentrio a pgina ser atualizada e ser mostrada o comentrio postado.

Figura 8- Adicionar comentrios

6.8-Funes do site Remover Comentrios

45

Para remover um comentrio o administrador deve se dirigir ao menu "gerenciar comentrios".Logo abaixo do menu ir aparecer os comentrios j realizados pelos usurios, clicando em cima dos links em azul voc poder delet-los.

Figura 9- Remover comentrios

Captulo 7-CONCLUSO

46

possvel concluir que o desenvolvimento de aplicaes web fundamental e est em constante evoluo. possvel que um grande grupo de usurios acessem uma s ferramenta que pode ser atualizada sem interferncia de verses e de atraso de tempo. Percebemos tambm como pode ser poderosa uma aplicao que est ligada a rede e que possua uma interface mais amigvel com o usurio. possvel perceber ainda que somando outras tcnicas como WEB 2.0, padres W3C, usabilidade para deficientes visuais, conseguimos unir facilidade, usabilidade e acessibilidade da maioria dos usurios existentes na WWW. O objetivo do nosso projeto ,foi demonstrar a importncia das aplicaes web no dia-a-dia de usurios, a importncia das linguagens de programao, e como funciona uma estrutura bsica de um site.Explicar de uma forma simples e objetiva os procedimentos de criao de uma pgina web, para que seja compreensivo a usurios bsicos e avanados,mostrando um site de forma mais tcnica.

47

Captulo 8-Referncias Bibliogrficas


SICA, Carlos. PHP COM TUDO. 1 ed. Rio de Janeiro - RJ: Cincia Moderna, 2011. 552 p. 1 vol. vol. 1. ISBN 978-85-399-0002-2 SICA, Carlos. PHP Orientado a Objetos: Fale a Linguagem da Internet. 1 ed. Rio de Janeiro - RJ: Cincia Moderna, 2006. 216 p. 1 vol. vol. 1. ISBN 978-85-7393-553-0SICA, Carlos. Programao Segura Utilizando PHP: Fale a Linguagem da Internet. 1 ed. Rio de Janeiro - RJ: Cincia Moderna, Fonte : http://pt.wikipedia.org/wiki/Php_5 Fonte : http://pt.wikipedia.org/wiki/JQuery jQuery (em ingls). MediaWiki (1-2-2011) Fonte : http://pt.wikipedia.org/wiki/Html Fonte : http://pt.wikipedia.org/wiki/Cascading_Style_Sheets http://doi.acm.org/10.1145/358769.358784 Fonte: http://pt.wikipedia.org/wiki/Sql Fonte: http://pt.wikipedia.org/wiki/W3c http://www.w3.org/History/19921103-hypertext/hypertext/WWW/TheProject.html Fonte : http://pt.wikipedia.org/wiki/Www http://www.adminer.org/en/ http://www.phpmyadmin.net/home_page/index.php http://www.phpmyadmin.net/documentation/translators.html

48

Captulo 9-ANEXOS

index.php
<?php session_start(); $login = $_SESSION['login']; $senha = $_SESSION['senha']; ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd" > <html lang="pt-br"> <head> <title>Projeto final</title> <link rel="stylesheet" type="text/css" href="css/interface.css"/> </head> <body> <div id="geral"> <div align="center"> <object type="application/x-shockwave-flash" wmode="transparent" data="img/banner.swf" id="player" name="player" width="728" height="90"> <param name="pluginurl" value="http://www.macromedia.com/go/getflashplayer"> <param name="movie" value="img/banner.swf"> <param name="flashVars" value=""> </object> </div> <div id="topo"> <h1><img src="img/logo.jpg" alt="tectudo" title="tectudo"></h1> <ul> <?php # se login e senha NO estiverem vazios ou seja o usuario esteja logado if(!empty($login) && !empty($senha)){ echo ' <li><a href="php/logoff.php">Sair do sistema</a></li> <li><a href="?paginas=gerenciar-noticias">Gerenciar Noticias</a></li> <li><a href="?paginas=gerenciar-comentarios">Gerenciar comentrios</a></li> <li><a href="?paginas=upload-arquivo">Upload de arquivo</a></li> '; } else { echo ' <li><a href="?paginas=login">login</a></li> '; } ?> </ul> </div> <ul id="menu"> <li><a href="?paginas=artigos&url=windows">WINDOWS</a></li> <li><a href="?paginas=artigos&url=apple">APPLE</a></li>

49
<li><a href="?paginas=artigos&url=linux">LINUX</a></li> <li><a href="?paginas=artigos&url=software">SOFTWARE</a></li> <li><a href="?paginas=artigos&url=hardware">HARDWARE</a></li> <li><a href="?paginas=arquivos">DOWNLOADS</a></li> </ul> <!-- menu --> <div id="conteudo"> <?php require_once("php/functions/queryString.php"); QueryString("paginas/",$_GET['paginas'],'artigos'); ?> </div> <!-- conteudo --> </div> <!-- geral --> </body> </html>

upload.php
<?php require_once("includes/banco.php"); $arquivo = $_FILES['arquivo']; if(empty($arquivo['name'])){ echo '<script>alert("Escolha o arquivo antes de enviar.")</script>'; echo '<script>history.back()</script>'; exit; } if(move_uploaded_file($arquivo['tmp_name'],'../arquivos/'.$arquivo['name'])){ $dir = '../arquivos/'.$arquivo['name']; if(mysql_query("INSERT INTO arquivos (arquivo)VALUES('$dir')")){ echo '<script>alert("Arquivo concludo com sucesso")</script>'; echo '<script>history.back()</script>'; exit; } else { echo '<script>alert("Falha ao enviar o arquivo")</script>'; echo '<script>history.back()</script>'; exit; } }else { echo '<script>alert("Falha ao enviar o arquivo")</script>'; echo '<script>history.back()</script>'; exit; } ?>

logoff.php
<?php session_start(); $login = $_SESSION['login']; $senha = $_SESSION['senha']; # destroi a variavel unset($login);

50
unset($senha); # destroi a sesso if(session_destroy()){ header("Location:../?paginas=login"); } ?>

login_adm.php
<?php require_once("includes/banco.php"); # recupera os dados do formulrio $login = $_POST['login']; $senha = $_POST['senha']; # verifica se algum campo do formulrio ficou vazio if(empty($login)){ echo '<script>alert("O campo LOGIN no foi preenchido")</script>'; echo '<script>history.back()</script>'; exit; } if(empty($senha)){ echo '<script>alert("O campo SENHA no foi preenchido")</script>'; echo '<script>history.back()</script>'; exit; } // ----------------------------------------------------------------------------# retira tags html e php das variaveis $login = strip_tags($login); $senha = strip_tags($senha); # transforma em caixa baixa $login = strtolower($login); $senha = strtolower($senha); # retira espao em branco $login = str_replace(' ','',$login); $senha = str_replace(' ','',$senha); # trata contra sql injection $login = mysql_escape_string($login); $senha = mysql_escape_string($senha); # criptografa os dados $login = md5($login); $senha = md5($senha); # verifica na tabela se existe um registro com os dados passados $sql = mysql_query("SELECT * FROM adm WHERE login = '$login' AND senha = '$senha'"); if($sql){ if(mysql_num_rows($sql) == 1){ # inicia a sesso session_start(); # passa os dados do formulrio para sesso

51
$_SESSION['login'] = $login; $_SESSION['senha'] = $senha; # redireciona para a pagina inicial da rea admistrativa header("Location:../index.php?paginas=gerenciar-noticias"); }else { echo '<script>alert("No existe usurio com esse login ou senha")</script>'; echo '<script>history.back()</script>'; exit; } }else { echo '<script>alert("Falha ao acessar o banco de dados, por favor tente novamente")</script>'; echo '<script>history.back()</script>'; exit; } ?>

deletar_noticias.php
<?php require_once("includes/banco.php"); # recupera o dado passado via URL $id = $_GET['id']; # verifica se inteiro e se est vazio if(!filter_var($id, FILTER_VALIDATE_INT) || empty($id)){ echo '<script>alert("Dado corrompido")</script>'; echo '<script>history.back()</script>'; exit; } # retira tag html e php $id = strip_tags($id); # transforma em caixa baixa $id = strtolower($id); # retira espao em branco $id = str_replace(' ','',$id); // ----------------------------------------------------------------------------# deleta o arquivo do banco $sql = mysql_query("DELETE FROM noticias WHERE id = '$id'"); if($sql == false){ echo '<script>alert("Falha ao deletar notcia do banco")</script>'; echo '<script>history.back()</script>'; exit; } else { echo '<script>alert("Notcia deletada com sucesso!")</script>'; echo '<script>history.back()</script>'; exit; } ?>

52

deletar_comentarios.php
<?php require_once("includes/banco.php"); # recupera o dado passado via URL $id = $_GET['id']; # verifica se inteiro e se est vazio if(!filter_var($id, FILTER_VALIDATE_INT) || empty($id)){ echo '<script>alert("Dado corrompido")</script>'; echo '<script>history.back()</script>'; exit; } # retira tag html e php $id = strip_tags($id); # transforma em caixa baixa $id = strtolower($id); # retira espao em branco $id = str_replace(' ','',$id); // ----------------------------------------------------------------------------# deleta o arquivo do banco $sql = mysql_query("DELETE FROM comentarios WHERE id = '$id'"); if($sql == false){ echo '<script>alert("Falha ao deletar notcia do banco")</script>'; echo '<script>history.back()</script>'; exit; } else { echo '<script>alert("Notcia deletada com sucesso!")</script>'; echo '<script>history.back()</script>'; exit; } ?>

deletar_arquivo.php
<?php require_once("includes/banco.php"); $id = $_GET['id']; $dir = $_GET['dir']; // ---------------------------------------------------------------------------# verifica id vazio if(empty($id) || empty($dir)){ echo '<script>alert("Dado corrompido!, por favor atualize sua pgina e tente novamente.")</script>'; echo '<script>history.back()</script>'; exit; } # retira tag html e php

53
$id = strip_tags($id); # trata contra sql injection $id = mysql_escape_string($id); // ---------------------------------------------------------------------------if(file_exists(base64_decode($dir))){ $sql = mysql_query("DELETE FROM arquivos WHERE id = '$id'"); if($sql && unlink(base64_decode($dir))){ echo '<script>alert("Processo concludo com sucesso.")</script>'; echo '<script>history.back()</script>'; exit; } else { echo '<script>alert("Falha ao deletar arquivo, por favor tente novamente.")</script>'; echo '<script>history.back()</script>'; exit; } }

?>

cadastrar_noticia.php
<?php require_once("functions/validarLogin.php"); require_once("includes/banco.php"); # inicia a sesso session_start(); # verifica se o usurio est logado validarLogin($_SESSION['login'],$_SESSION['senha'],"?paginas=login"); // ----------------------------------------------------------------------------# recupera os dados do formulrio $titulo = $_POST['titulo']; $tema = $_POST['tema']; $msg = $_POST['msg']; // ----------------------------------------------------------------------------# verifica se os campos foram preenchidos if(empty($titulo)){ echo '<script>alert("O campo TTULO no foi preenchido")</script>'; echo '<script>history.back()</script>'; exit; } if(empty($tema)){ echo '<script>alert("Escolha um tema antes de cadastrar essa notcia")</script>'; echo '<script>history.back()</script>'; exit; }

54
if(empty($msg)){ echo '<script>alert("O campo MENSAGEM no foi preenchido")</script>'; echo '<script>history.back()</script>'; exit; } // ----------------------------------------------------------------------------# retira tag html e php $titulo = strip_tags($titulo); $tema = strip_tags($tema); $msg = strip_tags($msg); // ----------------------------------------------------------------------------# trata contra sql injection $titulo = mysql_escape_string($titulo); $tema = mysql_escape_string($tema); $ms1g = mysql_escape_string($msg); // ----------------------------------------------------------------------------# coloca tag "br" nos espaos vazios $msg = nl2br($msg); // ----------------------------------------------------------------------------# atribui o valor de titulo a variavel "url" $url = $titulo; # coloca underline no espao em branco $url = str_replace(' ','_',$url); # trata contra acentos $url = str_replace('','a',$url); $url = str_replace('','a',$url); $url = str_replace('','a',$url); $url = str_replace('','a',$url); $url = str_replace('','e',$url); $url = str_replace('','e',$url); $url = str_replace('','e',$url); $url = str_replace('','i',$url); $url = str_replace('','i',$url); $url = str_replace('','i',$url); $url = str_replace('','o',$url); $url = str_replace('','o',$url); $url = str_replace('','o',$url); $url = str_replace('','u',$url); $url = str_replace('','u',$url); $url = str_replace('','u',$url); $url = str_replace('','c',$url); // ----------------------------------------------------------------------------# verifica a existencia de uma noticia repetida $sqlValidar = mysql_query("SELECT url FROM noticias WHERE url = $url"); if(mysql_num_rows($sqlValidar) != 0){ echo '<script>alert("J existe uma notcia com esse ttulo, por favor altere.")</script>'; echo '<script>history.back()</script>'; exit; }else {

55
$sqlInserir = mysql_query("INSERT noticias(tema,titulo,url,msg)VALUES('$tema','$titulo','$url','$msg')"); if($sqlInserir == false){ echo '<script>alert("Ocorreu um erro ao gravar dados no banco, por favor tente novamente.")</script>'; echo '<script>history.back()</script>'; exit; } else { header("Location:../index.php?paginas=artigos&url=$tema"); } } ?>

cadastrar_comentario.php
<?php require_once("includes/banco.php"); $nome = $_POST['nome']; $email = $_POST['email']; $url = $_POST['url']; $msg = $_POST['msg']; // ---------------------------------------------------------------------------# retira tag html e php $nome = strip_tags($nome); $email = strip_tags($email); $url = strip_tags($url); $msg = strip_tags($msg); # trata contra sql injection $nome = mysql_escape_string($nome); $email = mysql_escape_string($email); $url = mysql_escape_string($url); $msg = mysql_escape_string($msg); # transforma em caixa baixa $email = strtolower($email); $url = strtolower($url); # retira espao em branco $email = str_replace(' ','',$email); $url = str_replace(' ','',$url); # coloca tag br nos espaos vazios $msg = nl2br($msg); # verifica se est vazio if(empty($nome)){ echo '<script>alert("O campo NOME est vazio")</script>'; echo '<script>history.back()</script>'; exit; } if(empty($email)){ echo '<script>alert("O campo E-MAIL est vazio")</script>'; echo '<script>history.back()</script>'; exit; }

56

if(empty($url)){ echo '<script>alert("Dado corrompido, por favor tente novamente.")</script>'; echo '<script>history.back()</script>'; exit; } if(empty($msg)){ echo '<script>alert("O campo MENSAGEM est vazio")</script>'; echo '<script>history.back()</script>'; exit; } # verifica se o e-mail vlido if(!filter_var($email,FILTER_VALIDATE_EMAIL)){ echo '<script>alert("Digite um e-mail vlido")</script>'; echo '<script>history.back()</script>'; exit; } // ---------------------------------------------------------------------------$sql = mysql_query("INSERT INTO comentarios(url,nome,email,msg)VALUES('$url','$nome','$email','$msg')"); if($sql){ echo '<script>alert("Comentrio realizado com sucesso")</script>'; echo '<script>history.back()</script>'; exit; } else { echo '<script>alert("Falha ao fazer comentrio, por favor tente novamente.")</script>'; echo '<script>history.back()</script>'; exit; } ?>

cadastrar_adm.php
<?php require_once("includes/banco.php"); # define os dados cadastrais do usurio adm $login = "adm"; $senha = "123"; # criptografa os dados $login = md5($login); $senha = md5($senha); # insere os dados no banco mysql_query("INSERT INTO adm (login,senha)VALUES('$login','$senha')"); ?>

banco.php
<?php $usuario = "speedysolucoes1"; $senha = "jesusteama"; $dbname = "speedysolucoes1"; if(!($id = mysql_connect("mysql02.speedysolucoes.com.br",$usuario,$senha))) {

57
echo "No foi possvel estabelecer uma conexo com o gerenciador MySQL. Favor Contactar o Administrador."; exit; } if(!($con=mysql_select_db($dbname,$id))) { echo "No foi possvel estabelecer uma conexo com o gerenciador MySQL. Favor Contactar o Administrador."; exit; } ?>

validar_login.php
<?php function validarLogin($login,$senha,$url){ if(!isset($login) && !isset($senha) || empty($login) && empty($senha)){ header("Location:$url"); }else { session_regenerate_id(); return true; } } ?>

querystring.php
<?php /* * pasta : diretorio aonde sero buscadas as imagens * get : $_GET (forma de recuperar os dados via URL index.php?paginas=formulario-decontato) * padro : pagina padro que ser exibida quando no existe o arquivo requerido */ function QueryString($pasta,$get,$padrao){ # previne contra ataque javascript ( retira tags html e php) $get = strip_tags($get); # transforma em caixa baixa $get = strtolower($get); # retira espao vazio $get = str_replace(' ','',$get); # verifica se a variavel est vazia ou se o arquivo no existe if(empty($get) || !file_exists($pasta.$get.".php")){ # inclui o arquivo padro require_once($pasta.$padrao.".php"); }else { require_once($pasta.$get.".php"); } } ?>

interface.css
body { margin:0 auto; background:#F1F1F1; font-family:arial;

58
} p,label { font-size:12px; } label { display:block; } /* div geral ( div que controla todo o site) */ #geral { margin:0 auto; } /* estilo dos formularios */ #text,#textarea,#file { padding:5px; border:1px solid #DFDFDF; display:block; width:95%; } #textarea { height:150px; } #submit,#reset { background-image:url("../img/bg_menu.jpg"); border:1px solid #CCC; font-size:12px; padding:8px; cursor:pointer; } #submit:hover { border:1px solid #CCC; } #formLogin { margin:0 auto; width:300px; background:#fff; border:1px solid #dfdfdf; padding:20px; } /* estilos que se repetem */ #formLogin,#text { -moz-border-radius:5px; -webkit-border-radius:5px; } /* topo da pagina */ #topo { height:100px; padding-left:30px; padding-right:30px; padding-top:1px; }

59

#topo h1 { float:left; color:#fff; } /* menu do topo */ #topo ul { list-style:none; } #topo ul li { display:inline; float:right; padding-right:30px; padding-top:20px; } #topo ul li a:link,#topo ul li a:visited { text-decoration:none; font-size:14px; font-weight:bold; color:#1591b5; } #topo ul li a:hover { color:#000; } /* menu principal */ #menu { background-image:url("../img/bg_menu.jpg"); border-top:1px solid #DFDFDF; border-bottom:1px solid #CCC; list-style:none; padding:8px; padding-left:30px; margin-top:1px; } #menu li { display:inline; } #menu li a:link,#menu li a:visited { text-decoration:none; font-size:12px; font-weight:bold; padding-right:15px; color:#666; } #menu li a:hover { color:#1c8bb0; } /* conteudo */ #conteudo { padding-left:30px; padding-right:30px; }

60
#conteudo h2 { font-size:20px; font-weight:normal; } #conteudo p { font-size:12px; letter-spacing:1px; color:#333; } #esq{ float:left; width:45%; background:#fff; padding:15px; } #dir{ float:right; width:45%; } /* post da noticia */ #post_new { padding:20px; margin:5px; background:#fff; border:1px solid #DFDFDF; float:left; width:60%; } #coments { float:right; width:30%; } #coments h3 { font-size:14px; } /* box da rea principal da pagina administrativa */ #boxAdm { padding:20px; background:#fff; border:1px solid #DFDFDF; float:left; width:28%; margin:5px; } #boxAdm a:link,#boxAdm a:visited { text-decoration:none; font-size:20px; color:#000; } #boxAdm a:hover { color:#0080ff; }

61

/* box aonde contm as noticias cadastradas */ #box-noticias-cadastradas { padding:10px; background:#fff; margin:2px; } #box-noticias-cadastradas a:link,#box-noticias-cadastradas a:visited { text-decoration:none; font-size:12px; color:#1162bb; } #box-noticias-cadastradas a:hover { color:#666; } /* lista de arquivos do sistema */ #arquivos { padding:5px; background:#fff; margin-bottom:2px; } #arquivos a:link,#arquivos a:visited { text-decoration:none; color:#0080c0; font-size:12px; } #arquivos a:hover { color:#333; }

upload_arquivos.php
<?php //session_start(); require_once("php/functions/validarLogin.php"); validarLogin($_SESSION['login'],$_SESSION['senha'],"?paginas=login"); require_once("php/includes/banco.php"); ?> <div id="esq"> <form method="post" action="php/upload.php" enctype="multipart/form-data"> <h2>Upload de arquivos para os usurios.</h2> <label>Escolha o arquivo</label> <input type="file" name="arquivo" id="text"> <br> <input type="submit" value="Enviar arquivo" id="submit"> </form> </div> <div id="dir"> <?php $sql = mysql_query("SELECT * FROM arquivos"); if(mysql_num_rows($sql) != 0){ while($exibir = mysql_fetch_array($sql)){ echo '<div id="arquivos">';

62
echo '<a href="php/deletar_arquivo.php?id='. $exibir['id'].'&dir='.base64_encode($exibir['arquivo']).'">'.$exibir['arquivo'].'</p>'; echo '</div>'; } } else { echo '<p>Nenhum arquivo foi incluso at o momento.</p>'; } ?> </div>

quemsomos.php
<h2>Quem somos</h2> <p>Cras nec tortor sagittis nulla bibendum venenatis. Quisque faucibus semper ante, in pharetra nulla dignissim eu. Ut elementum elit eget sapien congue viverra. Nam et mauris id elit blandit consectetur sit amet id ipsum. Sed vel mauris et justo venenatis consequat et id sapien. Nunc urna lorem, posu ere in aliquet malesuada, suscipit quis magna. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Proin cursus tincidunt mi eget bibendum. Ut felis felis, eleifend in tristique et, dapibus in velit. In aliquet diam lacus. Fusce et dui velit. Ut mi sapien, bibendum sed gravida et, mattis a augue. </p>

login.php
<br><br> <form method="post" action="php/login_adm.php" id="formLogin"> <h2>Faa seu login</h2> <label>Login</label> <input type="text" name="login" id="text"> <label>Senha</label> <input type="password" name="senha" id="text"> <br> <input type="submit" value="Login" id="submit"> </form>

home.php
<h2>Phasellus adipiscing accumsan odio, feugiat sodales</h2> <p>Cras nec tortor sagittis nulla bibendum venenatis. Quisque faucibus semper ante, in pharetra nulla dignissim eu. Ut elementum elit eget sapien congue viverra. Nam et mauris id elit blandit consectetur sit amet id ipsum. Sed vel mauris et justo venenatis consequat et id sapien. Nunc urna lorem, posu ere in aliquet malesuada, suscipit quis magna. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Proin cursus tincidunt mi eget bibendum. Ut felis felis, eleifend in tristique et, dapibus in velit. In aliquet diam lacus. Fusce et dui velit. Ut mi sapien, bibendum sed gravida et, mattis a augue. </p> <p> ligula convallis nec. Nam neque arcu, vestibulum id iaculis eu, auctor in lacus. Etiam convallis elit quis ante fringilla imperdiet. Sed ultricies sollicitudin

63
turpis quis bibendum. Quisque laoreet justo a sapien ultricies nec tincidunt orci egestas. Morbi gravida urna et ipsum vehicula vel rutrum elit condimentum. Aliquam erat volutpat.</p>

arquivos.php
<?php require_once("php/includes/banco.php"); ?> <div id="esq"> <h2>Lista de arquivos para download</h2> <?php $sql = mysql_query("SELECT * FROM arquivos"); if(mysql_num_rows($sql) != 0){ while($exibir = mysql_fetch_array($sql)){ echo '<div id="arquivos">'; echo '<a href="projeto_3/'.$exibir['arquivo'].'">'.$exibir['arquivo'].'</a>'; echo '</div>'; } } else { echo '<p>Nenhum arquivo foi incluso at o momento.</p>'; } ?> </div>

artigos.php
<?php require_once("php/includes/banco.php"); // ---------------------------------------------------------------------------$url = $_GET['url']; // ---------------------------------------------------------------------------$url = strip_tags($url); // ---------------------------------------------------------------------------$url = strtolower($url); // ---------------------------------------------------------------------------$url = mysql_escape_string($url); // ---------------------------------------------------------------------------$url = str_replace(' ','',$url); $sqlArtigo = mysql_query("SELECT * FROM noticias WHERE tema = '$url'"); if(mysql_num_rows($sqlArtigo) == 0){ echo '<h2>Nenhuma notcia foi cadastrada nesse tema</h2>'; } echo '<div id="post_new">'; if(mysql_num_rows($sqlArtigo) == 0){ echo '<p>Nenhuma notcia foi postada.</p>'; } while($exibirPost = mysql_fetch_array($sqlArtigo)){ echo '<h3>'.$exibirPost['titulo'].'</h3>'; echo '<p>'.$exibirPost['msg'].'</p>'; echo '<br>';

64

echo '<h2>Faa seu comentrio</h2>'; echo '<form method="post" action="php/cadastrar_comentario.php">'; echo '<input type="hidden" name="url" value="'.$_GET['url'].'">'; echo '<label>Nome</label>'; echo '<input type="text" name="nome" id="text">'; echo '<label>E-mail</label>'; echo '<input type="text" name="email" id="text">'; echo '<label>Mensagem</label>'; echo '<textarea name="msg" id="textarea"></textarea>'; echo '<br>'; echo '<input type="submit" value="Enviar comentrio">'; echo '</form>'; } echo '</div>'; // ----------------------------------------------------------------------echo '<div id="coments">'; echo '<h2>Comentrios</h2>'; $sqlComentario = mysql_query("SELECT * FROM comentarios WHERE url = '$url'"); if(mysql_num_rows($sqlComentario) == 0){ echo '<p>Nenhum comentrio foi postado.</p>'; } while($exibirComentario = mysql_fetch_array($sqlComentario)){ echo '<h3>'.$exibirComentario['nome'].'</h3>'; echo '<p>E-mail: '.$exibirComentario['email'].'</p>'; echo '<p>'.$exibirComentario['msg'].'</p>'; echo '<hr>'; } echo '</div>'; ?>

gerenciar_noticias.php
<?php require_once("php/functions/validarLogin.php"); validarLogin($_SESSION['login'],$_SESSION['senha'],"?paginas=login"); ?> <div id="esq"> <h2>Cadastrar notcias</h2> <form method="post" action="php/cadastrar_noticia.php"> <label for="titulo">Ttulo</label> <input type="text" name="titulo" id="text"> <br> <label>Escolher tema</label> <select name="tema"> <option value="windows">Windows</option>

65
<option value="apple">Apple</option> <option value="linux">linux</option> <option value="software">software</option> <option value="hardware">hardware</option> </select> <br><br> <label for="texto">Texto</label> <textarea name="msg" id="textarea"></textarea> <br> <input type="submit" value="Enviar" id="submit"> <input type="reset" value="Apagar dados" id="reset"> </form> </div> <div id="dir"> <h2>Excluir notcias</h2> <?php # conecta ao banco de dados require_once("php/includes/banco.php"); # faz conslta $sql = mysql_query("SELECT id,titulo FROM noticias"); if(mysql_num_rows($sql) != 0){ # exibe os dados while($exibir = mysql_fetch_array($sql)){ echo '<div id="box-noticias-cadastradas">'; echo '<a href="php/deletar_noticias.php?id='.$exibir['id'].'" title="Clique para excluir">'.$exibir['titulo'].' <b>(clique para excluir)</b></a>'; echo '</div>'; } } ?> </div>

Anda mungkin juga menyukai