Home

relatório da monografia

image

Contents

1. oseooeeeeeesessssssssseoetrreresssssssssseeererressssssss 69 Ilustra o 32 tipo de visualiza o de uma resposta com privil gios de administra o e eessesessssssseeoeeerssssssss 70 Ilustra o 33 Listagem dos itens dentro de uma categorla ssssgg ggg zzssssss ee t ee ee ee e t s T2 Ilustra o 34 Exemplo de como mostrado um item de uma categoria Neste caso uma hiperliga o 13 Ilustra o 35 Representa o de todas as componentes administrativas da gest o dos quatro m dulos 74 Ilustra o 36 Op es gerais do sistema de sondagens ssssssssssssoeeeersesssssssssssoetrrressssssssssseeeterreessssssssseeeereeeessssssss 76 Ilustra o 37 Exemplo da administra o de sondagens Com o primeiro passo da cria o de uma nova sondagem 77 Ilustra o 38 Exemplo de pesquisa efectuada unicamente nas not cias com a palavra PHPMyCommunity 78 Ilustra o 39 Exemplo de apresenta o dos contactos ssssseseeeeeeresssssssssssscettrressssssssssseeetereresssssssssseeeteeeesssssss 19 Ilustra o 40 Exemplo de aplica o do PHPMyCommunity a um caso real www airsoftportugal com 93 Ilustra o 41 Segundo exemplo de aplica o do PHPMy Community a um caso real www airsoftportugal com 94 P gina 8 ISMAI O 2003 1 INTRODU
2. PRIMARY KEY E KEY dad Cias FULLTEXT KEY nome grupo nome grupo TYPE MyISAM COMMENT id grupo id que diz respeito a regiao Extraindo dados da tabela grupos De ESSES BA EB AECE E CE BE EY CEE E E OE E EE CEEE E E CEED EEE E Estrutura da tabela log DROP TABLE IF EXISTS log CREATE TABLE log rowid int 10 unsigned NOT NULL auto_increment ip char 15 NOT NULL default host char 100 NOT NULL default browser char 100 NOT NULL default language char 5 NOT NULL default referrer char 100 NOT NULL default page char 100 NOT NULL default tstamp int 10 NOT NULL default 0 PRIMARY KEY rowid TYPE MyISAM Extraindo dados da tabela log E AEE NE D ASS RE EE E E AEE E AZ E E EE A E Estrutura da tabela login DROP TABLE IF EXISTS login CREATE TABLE login id int 32 NOT NULL auto_increment nome varchar 250 NOT NULL default username varchar 250 NOT NULL default password varchar 250 NOT NULL default email varchar 250 NOT NULL default hobbies varchar 250 NOT NULL default P gina 88 ISMAI O 2003 icg varchar 250 NOT NULL default msn varchar 250 NOT NULL default avatar varchar 250 NOT NULL default O utilizador n o enviou nenhum avatar data dia warchar 10 NOT NULL default data hora varchar 10 NOT NULL defau
3. tipo varchar 10 NOT NULL default dl cat int 32 NOT NULL default 0 data dia varchar 20 NOT NULL default data_hora varchar 10 NOT NULL default PRIMARY KEY Caid TYPE MyISAM COMMENT tabela com todos os links e downloads Extraindo dados da tabela dl t Estratara da tabela dl cat DROP TABLE IF EXISTS dl cat CREATE TABLE dl cat id int 32 NOT NULL auto_increment nome varchar 255 NOT NULL default descricao varchar 255 NOT NULL default tipo varchar 10 NOT NULL default PRIMARY KEY id TYPE MyISAM COMMENT dl gt downloads links tabela das categorias Extraindo dados da tabela dl cat E UR Ee Bet E SE PESTE VE e ESPERE E ES Ec RESETE E Esz ESSES FESS RE ES E PES PRESSA SS GSE PS PEA E EN DE TES PS ER PES S T N P gina 86 ISMAI O 2003 Estrutura da tabela dl_comentarios DROP TABLE IF EXISTS dl_comentarios CREATE TABLE dl comentarios id int 32 NOT NULL auto_increment id_referer int 32 NOT NULL default 0 corpo blob NOT NULL enviado por varchar 255 NOT NULL default data dia varchar 20 NOT NULL default data_hora varchar 10 NOT NULL default PRIMARY KEY Bad TYPE MyISAM COMMENT Tabela dos comentarios id referer o ID da tabela dl Extraindo dados da tabela dl comentarios O E MA RM O E DO AA O N T N E E MA EN A T S AO T RM TA RO MO
4. A gest o destes m dulos efectuada directamente pelo documento e pela p gina de administra o Todos os coment rios podem ser removidos do objecto pelo respons vel do m dulo em quest o directamente na zona de coment rios tal como vis vel na ilustra o 35 O resto do documento e das categorias s o administr veis da mesma forma que o resto das componentes da p gina As categorias e os itens podem ser editados removidos ou adicionados a partir da p gina designada para cada um dos m dulos Como s o apenas necess rios dois ficheiros respons veis pela cria o do HTML para a sua gest o igualmente preciso dois ficheiros a ap php e a dl php A semelhan a do c digo poder parecer injustificada mas relembrando um dos objectivos do PHPMyCommunity ou seja ser facilmente editado por terceiros uma forma de escrever bastante valiosa para quem deseja efectuar melhorias ao programa Assim o uso de dois ficheiros poder diminuir o tempo de pesquisa de quem tenta entender o c digo Apesar de serem parecidos existem algumas diferen as visto que os artigos e os produtos requerem o upload de imagem para o servidor que por sua vez os downloads e os links n o proporcionam P gina 73 Relat rio do projecto PHPMyCommunity Categoria Cilindros aj Descri o Nan orbigat rio CODE prego Browse Listagem de todas as categorias Cilindros Polini Malossi Hebo Top Perform
5. Carp view news include include noticias php elseif GET p noticia include include noticias php elseit 5 Gari login Cincinde o Vainelude lLoginsphovpa elseif 8 Ger Logout fimel del Inel de loginsphp else include include home php 4 5 Seguran a Tudo fal vel nada seguro e o PHPMyCommunity n o escapa a esta regra Mas partindo do princ pio que tudo pode ser quebrado n o se pode deixar a seguran a num segundo plano Por isso chegando conclus o que a plataforma tem que ser o menos insegura poss vel tentando impedir ao m ximo qualquer tipo de acesso n o permitido Na tentativa de programar um c digo seguro foi investigado um vasto leque de p gina tratando da seguran a inform tica p ginas de ajuda a programadores PHP mailling lists e tudo que pudesse dar o seu contributo Encontrou se dois tipos principais de problemas ligados a seguran a C S S cross site scripting e sql Injection O primeiro a inser o de c digo directamente na p gina O segundo consiste em ter acesso a Informa es da base de dados atrav s de pedidos especiais mesma juntando por vezes a Inser o de c digo na p gina 4 5 1 V rias escalas de pirataria com C S S Um dos princ pios base de um site seguro n o permitir de qualquer forma a inser o de c digo seja ele HTML JavaScript e claro PHP Ao dar este tipo de possibilidade um utiliz
6. calculate start coordinates Simage center y Simage height 2 Sfont height 2 74 weite String ImageString Sim 3 Simage center x Simage center y Snome cat Swhite output to browser ImagePNG Sim Depois da imagem criada inserida no HTML e enviada para o cliente Caso o GD esteja desactivado o processo muito mais simples porque um simples c digo HTML com uma vari vel proveniente do PHP O pr ximo c digo uma amostra do ficheiro menu php onde se pode observar por um lado a cria o atrav s da biblioteca GD e por outro o m todo cl ssico Com a bibliogeca grarica ED ou sem if Smenu gd true Sdin menu lt table width 1121 border WoA cellspacing N 0ON cellpacgdinao A ONCE ces td vidth N PANE imo sre Nors quacros toc LEE Gal 1E 4 4 wLotnN Nine Ton SA Mas ed cd vide y TOS background N include button php nome cat nome cat gt lt img Sne Nro quadros space r qa di NUNO hetonhe NDT ecc WI Ens NNE came nc gi quadros top right qui wicdtn 244 heigat 2 gt lt r0 gt lt tr gt lt table gt else Schin m nu lt table wictn YI I2A border Von celispacing N DA cellpaccding O0 gt lt tr gt lt to wiotn 2A colspan 2 gt lt img Ssce or quadros too lerr gL wiokthn Y2 nY height CZE Eds td width 108 background gfx menu menu_title gif gt lt span class tabela titulo gt lt center gt lt b gt SnG cat lt b gt lt center gt lt span g
7. index php p downloads 1 9 produtos index php p produtos 1 5 10 1 contactos index php p contactos 1 11 1 artigos index php p artigos 1 6 HAHA 3 1 noticias index php p news 1 2 log in index php p login 1 12 13 1 forum index php p forum 9 4 1 sondagens index php p sondagens 1 7 238 5 contactos index php p admin amp auth a_contactos 26 5 conf base index php p admin amp auth a_site 20 16 5 pessoal index php p admin amp auth a_pessoal 2 membros index php p admin amp auth a_membros 10 237 91 noticias index php p admin amp auth a_noticias 19 5 my Group index php p admin amp auth a_mygroup 2 20 5 links index php p admingauth a links 128 8 21 5 downloads index php p admingauth a downloads produtos index php p admingauth a produtos forum index php p admin amp auth a forum 8 0 sondagens index php p admingauth a poll 16 artigos index php p admingauth a artigos 4 233 1 pesquisa index php p search 1 8 MN N UNA TU UU D Ba 235 90 cat forum index php p admin amp auth a_catforum 236 91 cat news index php p admin amp auth a_catnews 239 5 stats index php p admin amp auth a_stats 1024 Estrutura da tabe
8. pedidos grupos DROP TABLE IF EXISTS pedidos grupos CREATE TABLE pedidos grupos id pedido int 100 NOT NULL auto_increment id user pedido int 100 NOT NULL default 0 id grupo pedido int 100 NOT NULL default 0 data pedido varchar 200 NOT NULL default PRIMARY KEY id pedido TYPE MyISAM COMMENT Pedidos dos utilizadores em pertencer a um grupo Extraindo dados da tabela pedidos grupos OE E S S E N RE DD SEE SEN E SD SN SE SD SEE EN TED SEE TEN SD SEEN SE SD SEEM SE E SEE SE O E VS SEA Estrutura da tabela poll_comentarios DROP TABLE IF EXISTS poll comentarios CREATE TABLE poll comentarios id int 32 NOT NULL auto_increment id pergunta int 32 NOT NULL default 0 corpo text NOT NULL owner varchar 255 NOT NULL default data dia varchar 20 NOT NULL default data hora varchar 10 NOT NULL default PRIMARY KEY id TYPE MyISAM COMMENT Tabela dos comentarios das sondagens Extraindo dados da tabela poll_comentarios EE aE sar E EE N OREN a E DD o PSD E N E N E DG O SD N E GD N VD a SA E E E E E O 2 Estrutura da tabela poll_perguntas DROP TABLE IF EXISTS poll perguntas CREATE TABLE poll perguntas id int 32 NOT NULL auto_increment pergunta varchar 255 NOT NULL default voters int 32 NOT NULL default 0 data dia varchar 20 NOT NULL default data hora varchar 10 NOT NULL
9. Descri o do inicio da guerra fonte wma rtp pt 11 03 2003 gade girl Um estudo realizado pela comunidade internacional baga Hgy 13122 z indica que o nivel de inteligencia do povo Americano superior do seu Lider George W Bush Categoria de noticias Noticias PHP data autor Escrever uma noticia Ilustra o 17 Administra o das noticias A t cnica usada para apenas mostrar o conte do de cada um dos administradores de not cia simples fez se o uso dos privil gios comparando os com a base de dados tal como est escrito no ficheiro a noticias php tal como se pode visualizar no seguinte excerto if Snivel user 4095 1 sql ver noticias select campo nome campo email data dia data hora id id cat news news resumo from news where id cat news Sid order by id else Ssgl ver noticias select campo nome campo email data dia data hora id id cat news news resumo from news where id cat news Sid and campo nome Susername order by id Pouco tempo depois de ter sido lan ado a primeira vers o de testes da plataforma foi descoberto um erro que permitia a um administrador de not cias apagar ou editar o conte do de um outro administrador Foi ent o implementado uma pequena verifica o que corrige este bug verificando se o id presente na sess o o mesmo que id do autor da not cia O c digo PHP a seguir ilustra como foi realizado este acr scimo de seguran a P gina
10. O 1 1 Descri o do projecto Este documento representa o relat rio do trabalho de fim do curso de Tecnologias de Comunica o Multim dia do Instituto Superior da Maia ISMAL O projecto PHPMyCommunity uma resposta a uma procura por parte de algumas comunidades na medida em que todas as plataformas existentes n o se adaptavam s suas necessidades O principal problema encontra se na designa o dos produtos onde em muitos dos casos eram gestores de conte do n o existindo gestores de comunidades At agora o nico meio de comunica o era atrav s de f runs ou mesmo pelas plataformas j existentes Foi ent o desenvolvido um sistema pensado nas necessidades de uma pequena ou m dia comunidade com a ajuda de alguns respons veis das mesmas O resultado deste desenvolvimento a cria o de uma ferramenta de comunica o atrav s de uma p gina criada medida das procuras destas comunidades O PHPMyCommunity assume se como uma pequena plataforma de gest o e interac o de comunidades sem grandes perspectivas constru da apenas no mbito acad mico Apesar de se afirmar como um produto gratuito todo o seu uso necessita de um requisito por parte do propriet rio Este relat rio um documento explicativo das principais fun es do PHPMyCommunity resumindo as potencialidades deste sistema e explorando as suas componentes te rico pr ticas 1 2 Objectivos Os objectivos do PHPMyCommunity s o diversos mas o mai
11. Confirmar Password Email Idade ICQ Msn Pagina pessoal Passatempos Grupo associado gt M o estou em nenhum destes grupos astra ta PO hI E amo descer E IS qe EE mo Ilustra o 19 Formul rio de registo Todos os campos obrigat rios est o assinalados com Foram igualmente inseridas duas p ginas que permitem esclarecer o utilizador sobre v rios pontos tais como Vantagens em registar se e Condi es gerais de acesso Processada no ficheiro login php a identifica o do utilizador realizada com um pedido especial base de dados como foi abordado no cap tulo sobre a seguran a da plataforma Proporcionando assim a sua devida autoriza o como utilizador registado alterando as vari veis de sess o e actualizando a base de dados com o ltimo IP do utilizador Extra do do login php o segumte c digo permite esclarecer como funciona a altera o da sess o caso o pedido SQL retorne um resultado positivo P gina 53 Relat rio do projecto PHPMyCommunity TE Sresultado Sregisto mysql fetch array Sresultado LE Sregisto ent 11 Sid username Sregisto id writeloged username SESSION identificacao Erue S SESSIONI session username Susername S SESSIONI session id username Sid username actualizar o ltimo IP da pessoa que se identificou Slo utilizacor _ SERVER REMOTE ADDR Ssgl update last ip u
12. OLUDOS ee a E E Ei 25 H NOME DOT irian E E 41 MIJCCSS PAR A EATA 20 HTML 8 12 19 21 33 36 37 38 39 41 42 43 45 46 47 49 55 66 72 74 80 82 95 96 MUDA CONT oir T a 15 Hypertext Preprocessor eee 12 I DS EEEE E EAT AE AT 13 33 DORA sortido SZEKSZ ras a RR RE 16 EGES Geno apena GR RR a ERRO SUR shy lb n 12 Internet Explore ardiena 22 MEANE menna a 12 ISMA Doeane 5 10 39 J Jaleo DANTES Cos a lk aa 17 DANA Silk ak pap 13 Java SCRIpe us a sai o a 37 43 45 54 JAVASCTD US a a 37 Jay Green OM Arira dose lekasz lt 14 SD recusa a ninar a dra sra el on Sea 14 15 L Lin a 4 13 14 18 83 95 96 O aena N 31 login 19 24 38 39 41 46 47 53 54 56 57 60 83 89 90 91 EOSen READ OD 17 24 47 53 P gina 97 Relat rio do projecto PHPMyCommunity LOS OLOD OB ue insano aa Ed EE ER NEEE 18 IO SOU uai arcano SS a SES EK 46 53 54 M Macromedia Flash 19 47 58 MDI ESEN SA RR IDO KESEN 53 membros ONE as egy 25 90 Mensapem Privadas sao saias as 47 PCN EEEE E A E E T 30 MOZZI i onian 14 T EEE EE EAE E 26 po CU DSR Rae RTP RR PR RE 64 MSO ERR ED o AE 13 MySDT KEREM 11 16 N Netera oer atos ssa as haras a Isaias 13 NEISCADO capa sia bt E 22 newsFlash 6 7 8 21 26 43 O Can REA eerus oi tunas idade nina tada 13 DCE estan ai paula Siad 13 16 P p cinas EST TICAS cias us etnia 33 pedidos SUPO S e k s
13. Sresultado lt span class N textoN gt ERRO n o pode apagar esta categoria porque ainda existem categorias associadas lt span gt lt br gt P gina 66 ISMAI O 2003 5 5 2 Listagem do conte do de um f rum A visualiza o dos t picos feita atrav s desta p gina onde realizada uma listagem dos t picos mais recentes at aos mais antigos Cada um possui o t tulo autor n mero de respostas leituras e data da ltima resposta com o nome da pessoa que a enviou junto com um cone criando a hiperliga o entre a listagem desta ltima Um utilizador identificado encontrar um cone indicando que pode inserir um novo t pico de conversa Caso a identifica o n o seja verificada n o ser poss vel faz lo No fim da p gina existe um limitador de t picos dividindo os em p ginas Este limite configur vel no ficheiro config php HOVO TOFICO gt Este forum so serve de testes Hoje az 02 03 Es Hoje az 02 03 E E o P Per aade por gade por gade P ginalst 12 Ilustra o 30 Listagem dos t picos reduzida a quatro elementos A listagem dos t picos realizada por v rios pedidos SQL como exemplifica o seguinte c digo PHP do ficheiro f view forum php importante referir a exist ncia de duas vari veis inicio e fim respons veis pela visualiza o do conte do em v rias p ginas Pedido SQL para termos os dados todos relativos as thread topicos Ssql list thread sel
14. mostra as not cias clic veis Ao pressionar numa delas mostra unicamente a p gina pretendida Caso o visitante pretenda visualizar a p gina das not cias com todas as categorias basta clicar no Ver not cias 3 1 8 Stats Com o objectivo de criar uma maior interliga o entre os utentes da IN PAM stats comunidade desenvolveu se um sistema de estat sticas chamado stats que Ultimo Membro permite ao utilizador ter acesso a uma grande quantidade de informa o til Apesar de n o serem segredos estes dados n o s o vis veis para um visitante n o identificado porque a informa o publicada s diz respeito ao esfor o fornecido pela comunidade inser o de artigos produtos hiperliga es etc Mesmo proporcionando a evolu o do grupo revelando o n mero de utilizadores registados sem Internet grupos de utilizadores e o ltimo utilizador inscrito na comunidade as estat sticas funcionam como uma mais valia para dd On Line Off Line Esta funcionalidade independente do resto da p gina n o possui ETT quem se regista na p gina administra o e apenas efectua algumas contas na base de dados Grupos Noticias Artigos Produtos Links Downloads Forum T P I mi u kr Posts Ilustra o 6 Resultado HTML das stats P gina 20 ISMAI O 2003 3 2 Outras componentes gr ficas 3 2 1 T tulo 2 Tal como o resto da plataforma o t tulo completamente
15. na tabela de resumo de sondagens aparece o n mero total de votos para cada uma das perguntas O resultado afixado n o calculado simplesmente retirado da base de dados Caso os dois valores n o sejam coincidentes pode se concluir que houve falsifica o nas vota es Esta frase aparece na seguinte p gina http nomedoservidor index php p sondagens P gina 75 Relat rio do projecto PHPMyCommunity Inserida dia 13 11 2003 as 20 06 Mu mero total de pessoas que votaram nesta sondagem 1 E sim mus 100 2 n o O vatal S Escrever coment rio corpo do coment rio Enviar Titulo da sondagem Data ual a sua marca de computador preferida 186 10 2003 O que acha do sistema de sondagens 20 10 2003 O PFHPhiy Community uma boa plataforma 13 11 2003 Ilustra o 36 Op es gerais do sistema de sondagens A administra o das sondagens permite n o s criar mas tamb m ver editar e apag las perfeitamente poss vel editar as perguntas e as respostas de uma sondagem apesar de n o se poder reduzir o n mero de respostas poss veis A edi o permite unicamente alterar caso haja um erro ortogr fico ou algo menos previs vel Sendo rigoroso com os utilizadores n o permitindo o duplo voto a administra o tamb m n o autorizada a alterar o n mero de votos totais Qualquer administrador de sondagens ter todas as permiss es no que diz respeito s sondagens inclusive ap
16. o se identificou Ap s ter feito o login julgou se desnecess rio esta informa o tendo em linha de conta que j foi lida e que poupa largura de banda ao cliente e servidor Sregisto mysql fetch array Sresultado sql writedesc Swelcome Sregisto welcome Swelcome msg Sregisto welcome msg Swelcome ass Sregisto welcome ass writedesc S welcome Swelcome msg Swelcome ass A configura o destes dados s pode ser feita pelo administrador editar titulo do site 1 alterar msg de entrada 1 alterar ass webmaster alterar Htulo janela da p inicial m ximo root na p gina de administra o preenchendo um Se quiser alterar a mensagem de boas O que ser entrar numa loja vindas basta alterar este campo e n o ser capaz de identificar imediatamente que tipo de loja e que tipo formul rio bastante simples 2 E o nico campo em que o Pode inserir c digo HTML de produto vendem lt p gt lt p dgora este aspecto utilizador pode inserir HTML sem A al n szal elb p gina de entrada de qualquer restri es site seja ele comercial ou alterar P gina 40 ISMAI O 2003 5 1 2 Not cias Como j foi referido anteriormente as not cias s o o motor de funcionamento de qualquer comunidade Foi por isso que se deu um grande destaque s not cias tendo o cuidado de as apresentar por categorias mas apenas mostrando o resumo da ltima categoria inserida dando ao vi
17. s catia lina dzs sss af vrr banda 26 1 5 CA A RR E A T A A T TZEK MEN S 13 Personal Home Page Tools 12 PRGTOS Doene EEA 18 95 PE GARD DE ne O CARA a RR ZENERE PR RT 12 PIRES DO nero ndo ico ESEK T 12 PHPMyCommunity 10 17 41 PEP NUK agira do Sana danca ti bc aantas 59 Pol COMENTARIOS arraia pb ga AI a 21 poll_perguntas ooesoeooooeeeeessssssssssssseeeeeeee 27 POIL VOEU sede ria id Dad ad A sets 28 POSTGRESQL usassem insira oiii a asd 13 POSTANURO unicas baddo dadas iai 59 P gina 98 PROCESSAMENTO ue nanoanaiia Cesare a ande intao eat nas 12 pseudo TaMmesS ssssssss ss s s z s t es 36 NA O aa EE 13 PY NOT aaa RR ON a A E PR 14 R Rasmus Ledo agn A 12 Ee o E ARDOR E MS E N E 26 TOO E E ANT 40 41 56 83 90 S DO A E A AO 53 DOBD a oa A 53 79 Sonda ENS ef E 20 DO a 16 SOL Ineco iais 7 38 39 53 ES ES RD RS NR S EE 8 21 91 DV DASE actas dose san A E A E 16 U O dE sen DR RR UR DD 20 95 96 USTOM NE sto iai R 2a V Vbulletin BOATA sis a a RE 66 W webmaster 18 20 22 39 41 43 44 45 48 51 52 56 86 X DOME EE E t se taibe isa date 13 XM Eee a E NEE 13 Y VANNOO do casi a stat t kebi 36 Z ZEN D neiaie RR RR k 13 ISMAI O 2003 C LOFON Este documento foi editado electronicamente em Microsoft Word XP no sistema operativo Microsoft Windows XP SP2 CORPORATE EDITION O
18. ser apresentada uma s rie de op es cones permitindo ver o perfil do utilizador enviar lhe uma mensagem privada ou ver a sua p gina pessoal se Inserida nos seus dados A partir destes tipos de privil gios tamb m poss vel inserir um novo t pico ou simplesmente responder A ltima possibilidade quando o t pico est a ser visto por um administrador de f rum onde ter a op o de apagar a resposta e ver o IP da pessoa que colocou a mensagem Parab ns Eu sei que este thread para criticas e sugest es mas achei que tamb m era a local indicado para isto Quero dar os mais sinceros parab ns aos respons veis pelo portal est MUITO bom tanto a nivel gr fico como a nivel funcional Espero que o airsoftportugal com se torne o site de refer ncia da comunidade alrsofter portuquesa Merece E j agora obrigado por me terem convidado para fazer beta test Desire is Irrelevanto I AM a machine D 21 10 2003 ma H P 01 13 ip 194 65 14 753 Ilustra o 32 tipo de visualiza o de uma resposta com privil gios de administra o A administra o dos t picos dos poucos m dulos que n o possui uma administra o separada tudo realizado na pr pria p gina Pode se ver nas ilustra es 30 e 32 a presen a de um cone que P gina 70 ISMAI O 2003 permite apagar o t pico ou simplesmente a resposta No primeiro caso sempre pedida a confirma o antes de apagar o t pico
19. vel no menu da margem esquerda url item p gina para a qual o item remete nivel valor decimal dos privil gios necess rio para que ele seja vis vel ao visitante ordem valor da ordem na qual o item ir aparecer na sua categoria categorias menu sendo necess rio organizar o itens do menu por categorias esta tabela armazena todas as categorias do menu id chave prim ria identificador da categoria do menu nico e auto incrementado nivel valor decimal dos privil gios necess rios para que seja vis vel ao visitante posicao valor pela qual ira ser definida a ordem da apresenta o do menu nome cat nome da categoria contactos tabela respons vel pelo armazenamento da informa o de contactos Inserida na base de dados Esta tabela possui uma linha de dados 1d chave prim ria identificador da categoria do contacto titulo janela titulo da janela dos contactos conteudo informa o sobre a comunidade empresa associa o etc legenda gfx Caso inserido uma imagem avatar mapa etc pode colocar uma legenda a imagem Este campo respons vel por retornar o texto relativo a imagem gfx caminho completo da raiz da p gina at a imagem em quest o counter tabela que guarda o n mero de visitas totais do site Est interligada com a tabela log que permitem o funcionamento das estat sticas do site atrav s da p gina de administra o somente para administrador de membros e dono da plataforma row
20. A ic Sn morteras ta write noticias das categorias k Jelse echo lt br gt lt br gt lt b gt Problemas com a apresenta o deste conte do eventuais problemas lt b gt lt br gt lt br gt 1 N o existem categorias lt br gt 2 Problemas com os dados inseridos pelo webmaster admin das categorias lt br gt 3 Problemas com a base de dados lt br gt 4 N o existem categorias com esta ID lt br gt 5 utilizador malrcioso t F b elseif S GET p noticia tl as VECH T gt writenews Sid else write noticias por categorias P gina 49 Relat rio do projecto PHPMyCommunity A administra o das not cias realizada atrav s de uma p gina espec fica acess vel pelo dono do portal ou pelos elementos por ele escolhido proporcionando a publica o da informa o Cada redactor respons vel pelo seu conte do e assim ele o nico e o webmaster que pode editar ou apagar as suas not cias O estilo gr fico da administra o foi simplificado ao m ximo possibilitando uma leitura do seu conte do da forma mais correcta sendo vis vel no in cio e no fim do documento a op o para inserir not cia No centro est a listagem dos textos escritos pelo autor data resumo e dois cones editar e apagar Escrever uma noticia Categoria de noticias comunidade data autor resumo 20 03 2003 gade girl 20 Mar o 2003 2h33 In cio da 20 Guerra Eq 12157 Mundial
21. A primeira ser uma comunidade de utilizadores de scooters em Portugal PTscooter e a segunda ser a comunidade de alunos de um centro de explica es Ra z Quadrada A n vel t cnico existem outras metas uma dais quais ser a melhoria do tamanho geral da p gina gerada com vista a um maior cuidado para os utilizadores equipados com modems 56K Na programa o de p ginas HTML uma tag simplesmente a formata o do texto Por exemplo um texto em negrito ter que ter a seguinte tag lt b gt texto em negrito lt b gt P gina 81 Relat rio do projecto PHPMyCommunity A AP NDICE MANUAL DE INSTALAC O Ap s obten o da plataforma em formato zip Windows ou tgz Linux o utilizador ter que extrair os ficheiros numa directoria vis vel ao servidor web Tomando por exemplo o dom nio 66 b 29 z 66 29 Ed he 88 www omeusite com onde ter a conta account sendo o endere o da sua p gina www omeusite com account A instala o sup e que o utilizador j instalou a base de dados usando ficheiro phpmycommunity sgl Se n o estiver familiarizado com estas manipula es baseie se no texto explicativo sobre o PHPMyAdmin logo ap s o modo de instala o em Linux em Windows O seguinte modo de instala o especifico para o sistema operativo Linux e semelhantes efectuando estes comandos localmente ou por SSH sendo o telnet pouco seguro Partindo do pressuposto que a coloca o do ficheiro p
22. C digo PHP e MySQL foram todos realizados no mesmo computador ASUS L8400 com um processador Pentium 3 Mobile a 850 MHZ e 256 MB de RAM A vers o do PHP usada foi PHP 4 2 0 a vers o do MySQL 3 23 49 max nt usando o phpMyAdmin 2 2 6 a vers o da biblioteca GB a 1 6 2 usando o Apache 1 3 24 Este conjunto de software foi descarregado da Internet num pacote chamado EasyPHP www easyphp org A vers o Instalada neste sistema a 1 6 Os gr ficos modifica es gr ficas e capturas de ecr foram realizadas no Adobe Photoshop 7 0 Adobe Illustrator 10 Macromedia Freehand 10 A ajuda na cria o do c digo HTML foi realizada no Dreamweaver 4 P gina 99 Relat rio do projecto PHPMyCommunity P gina 100
23. Inserir uma palavra para procurar Em vez de escrever ol iria escrever lt b gt ol lt b gt Se a p gina retornar a palavra ol em negrito quer dizer que se acabou de inserir um c digo n o desejado ou seja de uma certa forma estamos a dar a volta ao que foi inicialmente programado A p gina http www jsbach org o perfeito exemplo de p gina mal constru da na medida em que se consegue inserir o c digo HTML dentro do motor de pesquisa Ao colocar lt b gt lt u gt ola lt u gt lt b gt a p gina retorna a palavra ol em negrito sublinhado P gina 37 Relat rio do projecto PHPMyCommunity Este pequeno exemplo mostra Previously featured recordings como alterar o resultado de uma pesquisa Um utilizador mal intencionado poderia em E alguns casos recuperar dados vitais da base de dados Casos destes existem com mais frequ ncia do que possamos pensar Este tipo de altera es n o causar nenhum dano ao dono da p gina mas quando bem J o Bach Home E age constru do o SQL Injection pode destruir um site Tou searched for ala search agan Como medida de seguran a o O 56 Partita No 3 for Unaccompanied Ukulele and Other B PHPMyCommunity foi programado para d J S Bach Fartita Ho 3 for Unaccompamed Ik ignorar por completo o c digo dos formul rios de pesquisa ou de qualquer outro campo inser o de mensagens no f rum coment rios etc Elimina
24. JA OO AO RO OO ILN I A OO RM A ARO A O MAD TSN O S A Estrutura da tabela forum DROP TABLE IF EXISTS forum CREATE TABLE forum id_forum int 100 NOT NULL auto_increment nome forum varchar 100 NOT NULL default desc forum varchar 255 NOT NULL default status varchar 10 NOT NULL default true id admin forum int 100 NOT NULL default 0 id forum cat int 100 NOT NULL default 0 nivel forum int 100 NOT NULL default 0 num thread varchar 255 NOT NULL default num posts varchar 255 NOT NULL default posicao int 32 NOT NULL default 1 PRIMARY KEY Cid forum TYPE MyISAM COMMENT tabela para armazenar os foruns de discussao Extraindo dados da tabela forum ERR ES A E E E E SR TE E S AE N E m AE EE A A E E AO EEN O E AE E AE A SS E O SE SS A E PI ES SE N E E E ENE Estrutura da tabela forum cat DROP TABLE IF EXISTS forum cat CREATE TABLE forum cat 1d forum cat int 32 NOT NULL auto_increment nome forum cat varchar 100 NOT NULL default desc_forum_cat varchar 255 NOT NULL default PRIMARY KEY id forum cat TYPE MyISAM COMMENT categorias dos foruns de conversa Extraindo dados da tabela forum cat E EE E OE L antenada EE E gasosa ao dr E L E OE AA N antena a NE IE LE A do AE A do pata ads E IA no do AS T A D Estrutura da tabela forum_posts DROP TABLE IF EXISTS forum_posts CREATE
25. O PHPMyCommunity uma simples plataforma de base que integra uma quantidade limitada de m dulos todos eles escritos de forma em fornecer uma variedade de op es que permitem uma elevada taxa de interac o com o utilizador Um m dulo n o mais do que uma funcionalidade acrescentada que ir interagir com o visitante e assim criar toda a din mica do site 5 1 P gina de entrada A p gina de entrada ou home page a mais importante de todas as p ginas porque ela que vai ter que cativar a aten o do visitante Em poucos segundos ele tem que entender qual o objectivo do site os servi os e a informa o que lhe pode proporcionar Apresenta se com uma quantidade de recortes do site mostrando tudo o que houver de mais recente colocado na p gina Todas as funcionalidades deste m dulo s o geridas por v rios ficheiros todos encaminhados pelo home php 5 1 1 Mensagem de boas vindas A primeira informa o que vai ser lida a mensagem de boas vindas ao utilizador com uma descri o da p gina criada pelo webmaster da plataforma Baseando se no conceito de uma p gina pessoal era imperativo ter esta funcionalidade para explicar de imediato ao visitante o objectivo da p gina Esta mensagem simplesmente gerada com um pedido base de dados seguido de uma fun o PHP que ser respons vel por adaptar o HTML consoante as vari veis enviadas na fun o A mensagem s vista enquanto o utilizador n
26. TABLE forum posts 1d int 32 NOT NULL auto_increment titulo varchar 100 NOT NULL default msg blob NOT NULL anexo varchar 255 NOT NULL default data post varchar 10 NOT NULL default hora post varchar 10 NOT NULL default count varchar 255 NOT NULL default id forum int 32 NOT NULL default 0 P gina 87 Relat rio do projecto PHPMyCommunity id user int 32 NOT NULL default DM id topic int 32 NOT NULL default 0 thread int 32 NOT NULL default 0 ip poster varchar 30 NOT NULL default mstime varchar 255 NOT NULL default PRIMARY KEY id TYPE MyISAM COMMENT tabela para armazenar as mensagens enviadas em cada forum Extraindo dados da tabela forum posts E E E E E ns do E O do E o do E os or E E E E EE E E S E N E E E E E E E E E 6 aos Estrutura da tabela grupos DROP TABLE IF EXISTS grupos CREATE TABLE grupos id int 32 NOT NULL auto_increment id grupo int 32 NOT NULL default 0 id_admin_grupo int 100 NOT NULL default 0 nome grupo varchar 255 NOT NULL default local grupo varchar 255 NOT NULL default data dia char 2 NOT NULL default data mes char 2 NOT NULL default data ano varchar 4 NOT NULL default website varchar 255 NOT NULL default descricao text NOT NULL contactos varchar 255 NOT NULL default Gts mvarchar 255 NOT NULL default
27. conceito do Jakob Nielsen para que o utilizador final possa ter um maior cuidado ao redigir o texto final Excerto da p gina 51 da tradu o Francesa do livro Home Page Usability 50 websites descontructed Jakob Nielsen e Marie Tahir ver bibliografia para mais informa es sobre o livro P gina 22 ISMAI O 2003 O que ser entrar numa loja e n o ser capaz de identificar imediatamente que tipo de loja e que tipo de produto vende Agora este aspecto aplica se igualmente p gina de entrada de qualquer site seja ele comercial ou n o identifica o dos objectivos primordial os visitantes t m que entender em muito pouco tempo o tipo de p gina que est a ver e os servi os que disp e Se este pormenor n o for respeitado a site ser um fracasso porque ningu m perder mais tempo em visualizar outras p ginas sem ter a minima ideia do que elas poder o oferecer lhe Jacob Wielsen Ilustra o 10 Janela de apresenta o do site com a mensagem do Jakob Nielsen 3 3 Base de dados Em qualquer projecto de aplica o web a base de dados uma das partes fundamentais na elabora o do site Da sua projec o depende a rapidez e optimiza o do c digo A grande dificuldade foi criar antecipadamente toda a base de dados 3 3 1 Entidades O PHPMyCommunity comunica apenas com uma base de dados usando 28 tabelas tendo o nome definido pelo utilizador quando executar o script de instala
28. de base de dados como o phpMyAdmin encontrado na sua p gina oficial http www phpmyadmin net O modo de instala o deste ultimo poder ser lido em http www phpmyadmin net documentation P gina 82 ISMAI O 2003 Ap s a Instala o diriga se para a p gina de administra o da sua base de dados seguindo o exemplo anterior http www omeusite com account phpMy Admin x x x php Ter que criar uma base de dados usando a ferramenta phpMy Admin Seleccion la e encontrar a op o que diz Localiza o do arquivo de texto pressionar o bot o browse e apontar para o ficheiro phpmycommunity sql A seguir pode clicar no bot o executar Este processo ir Instalar as tabelas e os campos do PHPMyCommuntty Configura o p s instala o 1 Para personaliza o da sua p gina ter que alterar as imagens do topo Existem duas imagens para este efeito logotipo gif e background jpg ambos na directoria gfx menu onde ter que editar estas Imagens ao seu gosto e em rela o a imagem que pretende comunicar aos seus visitantes Poder encontrar Os ficheiros originais em formato PSD na pasta phpMyCommunity v 1 0 help imagens do topo Foi inclu do um sistema de estat sticas denominado phphits que permite ter mais informa es sobre as visitas que foram efectuadas A aplica o foi alterada de tal forma em poder ser inclu da no pacote PHPMyCommunity No entanto ela foi pr con
29. default PRIMARY KEY ad TYPE MyISAM COMMENT Tabela com as perguntas para as sondagens Extraindo dados da tabela poll_perguntas Een o A SR DO E A E E DOR E FO o DOS PS O EP SS DO FO A PO SO PR MELEG T O DO PA Estrutura da tabela poll_respostas DROP TABLE IF EXISTS poll respostas CREATE TABLE poll respostas id int 32 NOT NULL auto_increment id pergunta int 32 NOT NULL default 0 resposta varchar 255 NOT NULL default votes int 32 NOT NULL default 0 PRIMARY KEY 1d TYPE MyISAM COMMENT Tabela com as respostas possiveis as diferentes sondagens Extraindo dados da tabela poll respostas P gina 91 Relat rio do projecto PHPMyCommunity Estrutura da tabela poll voted DROP TABLE IF EXISTS poll voted CREATE TABLE poll voted id int 32 NOT NULL auto_increment id pergunta int 32 NOT NULL default 0 1d user int 32 NOT NULL default 0 PRIMARY KEY adr TYPE MyISAM COMMENT Tabela com os ID s das perguntas Extraindo dados da tabela poll voted OE E S S ES SE SD SEE SE SEDE SEN SE S EE ES SEE E E N OE SIDES SE E Estrutura da tabela regiao DROP TABLE IF EXISTS regiao CREATE TABLE regiao 1d int 100 NOT NULL auto_increment regiao varchar 255 NOT NULL default PRIMARY KEY Ld TYPE MyISAM COMMENT Esta tabela vai servir para guardar todas as Extrai
30. din mico dando a informa o necess ria ao utilizador O t tulo dividido em tr s partes A primeira constitui o nome do site vai buscar a informa o base de dados A segunda a data do servidor que permite ao navegador Internet Explorer Netscape etc guardar as p ginas no disco e se o visitante pretender ver o seu hist rico O cliente web mostra lhe as p ginas com a data do momento em que foi vista a p gina A terceira e a ltima parte o nome da sec o que esta a ser lida Tal como a segunda componente o seu objectivo foi a navega o pelo hist rico mas tamb m d a possibilidade ao utilizador de ver qual a sec o que est a ser visualizada em qualquer altura PHPMyCommunity 21 10 2003 sondagens Ilustra o 7 Titulo no navegador 3 2 2 Caixas de visualiza o bS Para dar relevo p gina criou se uma fun o que desenha automaticamente as caixas de visualiza o do conte do Estas caixas permitir o ao utilizador ter uma informa o muito resumida sobre o conte do que elas apresentam e claro o conte do em si Tem quatro tipos de informa o a primeira o cone da caixa diferente em todos os v rios m dulos da plataforma a segunda informa o o t tulo da caixa o nome do que se est a ver a terceira o estado ou informa o extra Pretende se informar o visitante com um pequeno resumo ou com os passos a seguir basicamente uma pequena ajuda E finalment
31. directa atrav s do mp4all e email4all exploradas a seguir Os administradores do site s podem ser definidos pelo dono da plataforma ou pelo respons vel dos membros onde tem uma tabela com todos os privil gios poss veis e todos os respons veis Esta listagem possibilita ter uma vis o clara sobre quais s o os colaboradores O seguinte c digo PHP exemplifica como poss vel buscar este tipo de dados ao MySQL e retornar unicamente os utilizadores com os privil gios certos sgl all users select id username nivel from login where nivel amp nivel and nivel 4095 Sresultado all users mysql db query MYSQL_server_bd sgl all users Saffected mysql affected rows if Saffected gt 1 while Sregisto all users mysql fetch array Sresultado all users Susername Sregisto all users username Snivel Sregisto all users nivel echo lt tr pacolor V FERERERNO gt lt td widen N 778N gt Sunsername lt td gt lt td width 238 gt nivel lt td gt RO prai Dj jelse echo lt Er bgcolor LEPERERO lt td colspan N 2N gt lt center gt N o existem administradores neste posto lt center gt lt td gt o pas o P gina 68 Relat rio do projecto PHPMyCommunity A listagem permite ao gestor de utilizadores efectuar altera es sobre eles clicando em editar privil gios bastando lhe seleccionar o que pretende modificar para que o sistema lhe fa a um resumo dos direitos de administ
32. e o dia em que foi inserida o n mero de visitas e o total de respostas Um detalhe muito importante no FlashForum na sua amostra de t picos porque verificado o n vel do utilizador para apenas mostrar o que o seu privil gio lhe permite aceder Sobre a modera o no forum 20 visitas Criticas e Sugest es moebios 2 11 2003 as 16 19 4 respostas Parab ns 26 visitas Criticas e Sugest es gade 2 2 11 2003 as 01 39 3 respostas Aten o Cores 28 visitas Criticas e Sugest es gade 2 11 2003 as 15 28 respostas Ilustra o 12 Amostra de resultado gerado pelo PHP A n vel de c digo a recupera o da informa o da base de dados n o muito diferente dos outros tipos de pedidos de referir a complexidade do pedido SQL Nota a vari vel nivel user representa o c digo decimal dos privil gios do utilizador e o SflashForum o que vai limitar o n mero de f runs para recuperar Ssql last x select fpos f nivel forum f nome forum from forum f forum posts fpos where nivel forum amp Snivel user and f id forum fpos id forum and thread 1 order by fpos mstime desc limit SflashForum Sresultado last x mysgl db query SMYSOL server bd Ssgl last x if Sresultado last x 21 0 while Sregisto last x mysql fetch array resultado_last_x 5 1 4 newsFlash Directamente ligado ao sistema de not cia o newsFlash um m dulo complementar que permite ao visitante ver a
33. e o seu conte do o que n o acontece com o segundo Este tipo de resultado em HTML criado a partir do ficheiro f view thread php onde extra do o seguinte c digo PHP que representa como s o feitos os dois principais pedidos base de dados Ssgql list thread select from forum posts where id topic id thread bd order by mstime limit Sinicio range Sresultado list thread mysql db query SMYSQL server bd Segl list thread at resultcaco liest chreach while Sregisto list thread mysqgl fetch array Sresultado list thread Sto Sreqreto lise thread ras ST user registo ligit conrea ic user Sdata post Sregisto list thread data post Shora post cregqireto list thread hora post Sr ropic Smecasto list thread ic copie E t iculosgregisto list chresa escultor SCOCOO POSTS registo list Ehread msq Sanexo Sregisto list thread anexo l Haja sStSEsSregisto list chreat ip poster Pedido SOL para termos toda a informac o necess ria sobre o utilizador Ssql nome user select id username icg msn avatar data dia site assinatura localidade from login where id Sid user Sresultado nome user mysql db query SMYSQL server bd Ssql nome user if Sresultado nome user Sregisto nome user mysqgl fetch array Sresultado nome user Sid user Sregisto nome user id Susername Sregisto nome user username Sicg Sregisto nome user icg Smsn Sregisto nome user msn Savatar Sregisto
34. int 32 NOT NULL auto_increment id_regiao_membros_offline int 32 NOT NULL default 0 id_grupo_membros_offline int 32 NOT NULL default 0 nickname varchar 255 NOT NULL default nome membros offline varchar 255 NOT NULL default idade membros offline tinyint 100 NOT NULL default 0 localidade membros offline varchar 255 NOT NULL default hobbies membros offline varchar 255 NOT NULL default data dia membros offline varchar 20 NOT NULL default 0 data hora membros offline varchar 20 NOT NULL default 0 PRIMARY KEY id TYPE MyISAM COMMENT Membros que pertecem a grupos mas que nao tem internet Extraindo dados da tabela membros_offline E Aa DM nn E E EE Rn EE E S E PA E E E E N a E Md Estrutura da tabela menu DROP TABLE IF EXISTS menu CREATE TABLE menu id int 32 NOT NULL auto_increment posicao int 32 NOT NULL default 0 nome item varchar 10 NOT NULL default url item varchar 250 NOT NULL default nivel int 32 NOT NULL default 1 ordem int 16 NOT NULL default 0 PRIMARY KEY id TYPE MyISAM Extraindo dados da tabela menu P gina 89 Relat rio do projecto PHPMyCommunity INSERT INTO menu id posicao nome item url item A home index php p index 1 1 links index php p links 1 10 membros index php p members 1 3 downloads
35. maior sentido de responsabilidade por parte do gestores Caso o pedido seja rejeitado o administrador poder ou n o enviar uma mensagem privada ao utilizador explicando as raz es que o levou a sua nega o na sua inser o P gina 61 Relat rio do projecto PHPMyCommunity CAM ptjedy Utilizador em lista de espera 1 ver o pedido H mero de utilizadores 0 sem membros HM umero de utilizadores sem internet O sem membros Data de funda o 1 1 2003 Localiza o Maia Website idem Descri o poe isso direito Contactos poe isst Imagem associada ao seu grupo ver pedidos adicionar membro offline alterar dados do grupo gest o dos membros Ilustra o 26 Exemplo de resultado com um grupo tendo 1 pedido de inser o A gest o dos membros poder remover os mesmos no seio de um grupo n o s porque como Ed respons vel de um grupo de utilizador importante comunicar directamente e de forma privada Desenvolveu se um sistema que proporcionasse o envio de mensagens privadas a todos os membros do grupo no entanto possibilitando um maior controlo da actividade dos grupos o administrador da plataforma receber uma c pia destas mensagens precisando este facto no formul rio de envio O pr ximo c digo PHP evidencia como realizado o envio das mensagens sql selected users select id id grupo from login where id grupo Sg Sresultado selected users mysql
36. menu esquerda sistema de busca omnipresente acesso r pido a itens da plataforma e claro uma boa visibilidade dos itens Ao n vel do texto teve se o cuidado de real ar a import ncia das hiperliga es com o texto a negrito ou sublinhado Jakob N amp Marie T L art de la page d accueil Eyrolles 2002 Tradu o Francesa do livro Homepage Usability 50 websites deconstructed P gina 16 ISMAI O 2003 A escolha da coloca o dos itens foi devidamente pensada de tal forma a equilibrar as zonas mortas vazias mas que ajudem a percep o dos conte dos e simplifica a leitura com as zonas de conte do de informa o e itens de navega o de tal forma a poder n o sobrecarregar as p ginas tornando a leitura mais agrad vel e menos cansativa 3 1 2 Log tipo e imagem de topo O mais dif cil na cria o de uma plataforma web com perspectivas t o generalistas como a do PHPMyCommunity dar a possibilidade ao utilizador final webmaster de personificar o seu portal da maneira mais simples Foi neste ponto de vista que foi desenvolvido uma componente facilmente adapt vel ao utilizador bastando apenas alterar as duas imagens do topo substituindo dois ficheiros na pasta gfx menu logotopo gif e background jpg As cores da p gina cinzento e amarelo foram escolhidas para poderem coincidir com qualquer tipo de logotipo menos aqueles que possuem cores muito garridas tais como vermelho cor de rosa e
37. o das tabelas ver anexos sobre a Instala o da plataforma Cada uma destas tabelas possui v rios campos Nesta parte do relat rio iremos ver que tipo de dados s o armazenados em cada uma das tabelas e em cada um dos seus campos permitindo assim entender melhor o funcionamento da base de dados Login tabela suportando toda a informa o relativa ao utilizador registado Possui 22 campos que possibilitam todas as funcionalidades como inser o de novo utilizador recupera o da palavra chave visualiza o da informa o do membro defini o dos seus privil gios etc 1d chave prim ria identificador do utilizador cada ID diferente e auto incrementado nome referente ao apelido do utilizador username o nome usado para identificar se escrever no f rum etc login password palavra chave do utilizador N o se tem um acesso directo a ela Est codificada email endere o de correio electr nico do utilizador hobbies passatempos actividades principais do membro 1cg caso tenha o programa de comunica o ICQ poder colocar o seu n mero msn caso esteja registado no msn com poder deixar o contacto avatar caminho completo da raiz da p gina at ao ficheiro que representa o avatar do membro P gina 23 Relat rio do projecto PHPMyCommunity data dia data em que o utilizador fez o registo data hora hora em que o registo foi efectuado Idade tal como o seu nome indica representa a ida
38. pergunta mysgl db query SMYSQL server bd sql del pergunta if Sresultado del pergunta S del all true Para simplificar a cria o de uma nova sondagem todo o processo efectuado em dois passos O primeiro consiste em escrever a pergunta e designar o n mero de respostas que o administrador deseja Inserir O segundo e ltimo passo a coloca o das perguntas para depois validar o formul rio e assim criar uma nova sondagem H mero de respostas possiveis 2 continuar Pergunta E Titulo da sondagem Data Votos Dp o ual amp a sua marca de computador preferida 16 10 2003 7 apagar O que acha do sistema de sondagens 20 10 2003 apagar O PEHPhiy Community uma boa plataforma 13 11 2003 apagar Ilustra o 37 Exemplo da administra o de sondagens Com o primeiro passo da cria o de uma nova sondagem P gina 77 Relat rio do projecto PHPMyCommunity 5 4 Motor de pesquisa Este motor de busca tem uma caracter stica espec fica ou seja a pesquisa a ser efectuada unicamente interna Assim toda a informa o retornada ser executada de acordo com o conte do da plataforma O motor de pesquisa utiliza a base de dados inerente plataforma A sua utiliza o bastante acess vel uma vez que atrav s de uma ou v rias palavras o motor consegue aceder ao SGBD e assim executar a pesquisa A palavra inserida tem que ter obrigatoriamente mais de 3 caracteres Caso contr rio a pro
39. rio a apar ncia final do menu seria alterada A n vel de c digo a execu o din mica deste objecto levou ao uso de v rios ficheiros O primeiro o ficheiro de configura o config php onde temos Ed ter sempre em aten o que o car cter 1 um coment rio e n o processado pelo PHP Smenu gd true put true if you want to use a Menu bluid in GD tSmenu gd false can build you menu with a background image with simple text P gina 44 ISMAI O 2003 Basta escolher true ou false para activar ou desactivar o menu em GD Caso esteva activado o menu ser dinamicamente criado usando a referida biblioteca o ficheiro button php ser chamado 66 99 ESP AD A 2 2 e A pelo menu php que lhe transmitir a vari vel necess ria para a cria o da imagem em tempo real O c digo posterior um excerto do ficheiro button php Entende se como a imagem criada atrav s de t cnicas de computa o gr fica 2D S nome cat GETI nome cati header Header Content Type image png Sim ImageCreateFromJPEG top jpeg set up image and colours Sfont height ImageFontHeight 3 get font dimension Sfont width ImageFontWidth 3 Simage height ImageSY Sim get image dimension Simage width ImagesSX Sim stength gront width strlien Snome cat is gert srcring lengh Simage center x Simage width 2 Slength 2
40. select id from ap comentarios where id ap Sid tipo resultado test its mysal db query SMYSOL server bd Ssgl test it Saffected c mysql affected rows ess it affectecd c 1 1 echo comentario Y e if Saffected c51 ecno Saffected c coment rios P gina 72 ISMAI O 2003 No interior do item est dispon vel o conte do inserido pelo respons vel da rea que pode introduzir dados como t tulo conte do da mensagem selec o de uma categoria inser o de um pre o caso seja necess rio e imagem poss vel s nos artigos e nos produtos Este conte do poder ser acess vel por todos visitante inclusive mas unicamente os utilizadores identificados poder o inserir um coment rio Os downloads e os links usam o mesmo ficheiro porque ao inv s dos produtos e artigos o seu principal conte do encontra se fora da p gina Por Isso foi inserida uma hiperliga o para o documento em quest o Caso seja uma liga o directa para um ficheiro o download ser iniciado automaticamente php ressourceindex http iiphp ressourceindex com Mais de 6000 scripts aplica es tutoriais sobre PHP e MySQL Inserido por gade girl dia 01 10 2003 as 22 51 Coment rios Enviado por user dia 2 10 2003 as 12 30 0 Bom site por acaso conhe o e estou muito contente com ele 1 pi Ilustra o 34 Exemplo de como mostrado um item de uma categoria Neste caso uma hiperliga o
41. teve quando mesmo de f rias estava com o computador port til a trabalhar Ao Eng Joel Varanda pelo seu apoio ajuda e loucura por ter aceite ser orientador de um projecto t o vasto como este Dr Susana Pinto pela semana louca de ajuda Ao M rio Dominguez pela sua enorme ajuda nos gr ficos ideias coment rios opini es criticas tempo Enfim tudo mesmo Ao M rio Jo o S Morais pelas suas cr ticas construtivas Ao Tiago Evonet Carvalho pelos conselhos de constru o do f rum Aos meus colegas e amigos de TCM pelo seu apoio amizade e paci ncia Aos meus antigos Professores de TCM pelos seus conhecimentos em especial ao Eng Martins que teve que me aturar durante 4 anos um grande Um grande obrigado pela sua exig ncia E ao Eng Nuno Flores por me ter ajudado em tantos pontos ess ncias do meu projecto Renata Barbosa pelos seus conselhos metodol gicos e apoio Ao Milton Andrade aka Nito por me ter feito descobrir o Linux Ao Gon alo Gomes aka Lucipher por me ter ajudado no crescimento do interesse pela seguran a inform tica Ao Jos Veiga pela ced ncia de espa o no seu servidor Ao Domingos Fernandes do C bula pela sua simpatia pequenos almo os almo os e jantares sem falar na ced ncia de uma ficha el ctrica para que pudesse trabalhar no PHPEMyCommunity todas as tardes da semana durante nove meses P gina 5 Relat rio do projecto PHPMyCommunity III CONTE DO E SU
42. 50 ISMAI O 2003 4 Verificar se o Sid dono da not cia sql no cheat select count id as cnt from news where campo nome Susername and Lide Said group by da Sresultado no cheat mysql db query SMYSQL server bd Ssql no cheat If Sresultado no cheat S registo no cheat mysql fetch array Sresultado no cheat Sent Sregisto no cheat ent if Scnt 1 or Snivel user 4095 Como fol referido h pouco a gest o das categorias unicamente feita pelo dono do portal N o sendo necess rio nenhum sistema especial de privil gio na medida em que ele o nico podendo assim criar editar ou apagar No entanto este passo fundamental porque definido um respons vel Edi o da categoria de noticia Moticias PHP Nome Not cias PHE apenas 25 caracteres Descri o fns GD MySQL et Administrador Imagem actual Tamanho m simo 2dpr ZEpa Browse alterar categoria Ilustra o 18 Edi o da categoria de not cias Para simplificar a administra o do webmaster caso pretenda apagar uma categoria avisado que ser o removidas todas as not cias com ela relacionada Esta funcionalidade foi facilmente realizada como exemplifica este c digo PHP realizando dois DELETE consecutivos sql delete newsCat delete from categorias news where id cat news Sid Sresultado delete newsCat mysql db query SMYSQL server bd Ssql delete newsCat if Sresultado delete ne
43. A E AE E E A E A AE E a a E E A Rd z s een 19 3 1 7 news Flashear a e e a e E E e EO AEE EAK SEEN E Ke 20 3 1 8 STALS ea EEES E REESS E E R EEEE E A EEE R E E EE ETE E E E 20 32 OUTRAS COMPONENTES GR FICAS aus sss Sa DS A E A 21 3 2 1 TE EEE AA AE EAA E EA E E S E A E EAA E ETA AE E E co E E E EN 21 3 2 2 C ixas devisualiz t O nenen EUR EE E E E GU Ra E EO O E E KEKE 21 3 2 3 Titulo d Nndveg aGa0 esie are a E E EE E EEE 22 3 2 4 Janela de apresenta o do site RS ggg ES a t t ee ee t t e e ee etet s 22 3 3 BASE DE DADOS muaa a a Pos ER A gg sek Rg k t 23 3 3 1 N1001 AAE E A E a a e d sk tan 23 3 3 2 Esquema relacional ear se idina O nei E pd o RR ia NEE 31 4 ESTRUTURA DO PHPMYCOMMUNITY cuizacensinniciaiie inducaniessiidara dan bai ncdndda drdo iso d cabia cad ndo ni sz z sss ssessz s sss ses sss sszss s s se 32 4 1 INDEX PHP sszeesett o AR O a E A E ee etetett k t 32 4 2 MAN PER rs sc carai pa ED Sc a Sa a Sa 32 4 3 ORGANIGRAMA DA RELA O ENTRE OS FICHEIROS DO PHPMYCOMMUNITY 0 0 sssss sss ge eeeeeeeeeee e e e t t t t t t t teee 33 4 4 CONSTITUI O DA ESTRUTURA sz ns and ces a Una da papa Sud cu A da ape SR E RU A DAR RR a aaa 35 4 5 SEGURAN A isa namoro dO ad ee t ldasetk 36 4 5 1 V rias escalas de pirataria com C S Sossssssssssss s s s s s t ee t t ee ee ee
44. A ab A a 18 59 CONTACTOS ori a O E ONES e Se K ZE UK AS S BASE 79 6 CONCLUS O ias sa ppa pi dan ES a ARa 80 6 1 OBIECHNMOS ATINGIDOS sua ai SS DS KEKE DN A A a a 80 6 2 OBIECTIVOS FUTUROS sa asas a ad da a Dq a Da a ER a A 81 AA PENDICE MANUAL DE INSTALA O sua na Ds E Sa da 82 B APENDICE CODIGO SOL apanaias ss Rs Cad CU do ca 84 C APENDICE IMAGENS FINAIS aniran aa EE 93 REFER NCIAS BIBLIOGRAFICA ss esessssoossssscoossssoossssscoosssscosssscccossescossssecoessescossssscoossesoessssscoossssceosssscoessesceossssceessescssssssceesssscessss 95 GLOSSARI Osipa E E N aa 96 INDICE KEMIS SIVO minana EE E E AA 97 COLOFON a a A A cb talo 99 P gina 7 Relat rio do projecto PHPMyCommunity IV NDICE DE FIGURAS lustra o l Funcionamento do PP iate ar a RE a 11 Ilustra o 2 Partilha do mercado de servidores HTTP desde 09 95 at 09 03 eee e eeeeeeeeeeerereeea 14 Ilustra o 3 Menu da p gina criado com imagens din micas sssggg ggg esess ee ee es 19 Tustia o 4 Eistasem das sonda ens qua niitasace dita caio sarada cb as Ca iu EL a a O a Sae 19 Tusta o men DAS torsanas ande dt da A E EE EET 20 Tlustra o 6 Resultado HTML das Stats seori dela ii aa Da A E a Da a a 20 Ilustra o Titulo no navegador nana idea ca OD ua aa ed EE Da es aa a 21 Ilustra o 8 Caixa de mensagens privadas que ilustra perf
45. EE NEEE ls e a qe oa 40 Sesc AND PS sql campo sujeito like array i or campo msg like SsSarravISi 5s or news resumo Re Capo Esq order by did limit Simicio Srange group by ie e P gina 78 ISMAI O 2003 5 9 Contactos ltimo modulo do PHPMyCommunity essencial pelo seu conte do simples pela sua apar ncia A p gina dos contactos foi criada com o objectivo de informar o visitante sobre a forma de entrar em contacto com o administrador da p gina ou comunidade por ele representada Na rea de administra o o campo dos contactos possui tal como a caixa de apresenta o p gina inicial a possibilidade de inserir c digo HTML para a cria o de um resultado mais personalizado Foi inserida a possibilidade de inserir imagem pensando nos casos em que poder existir um mapa para situar geograficamente o contacto ou simplesmente a coloca o de um log tipo PHP Hy Community Rua do p o quente 245 Castelo da Maia PORTO portugal Qualquer problema ou informa o entrar em contacto com o webmaster por email gadednetcabo pt ou telemovel 44 440 73497 brevemente em www alrsoftportugal COM aten o e VEM dl AIRSOFT portugal Ilustra o 39 Exemplo de apresenta o dos contactos P gina 79 Relat rio do projecto PHPMyCommunity 6 CONCLUS O Um projecto como o PHPMyCommunity n o se pode concluir porque ter sempre melhorias e acabame
46. Evolution 50cm Ilustra o 33 Listagem dos itens dentro de uma categoria A listagem efectuada com a mesma fun o para todos os m dulos tendo alguma ligeira varia o entre os dois ficheiros como revela o c digo PHP extra do do ficheiro ap php mostrando como feita a selec o na base de dados de todas as categorias pedido SOL para ir buscar todas as categorias de Ctipo Lif tipo produtos Ssel all _cat s select from ap cat where tipo prod tos order by Ia Jelse sql all cat select from ap cat where tipo produtos order by id Sresultado all cat mysal db query SQMYSOL server ba Segl all cat Seguindo com uma selec o de todos os itens da categoria Pedido SOL para ir buscar todos os Stipo desta categoria LE Stripo produtos sql all tipo select id nome tipo ap cat from ap where tipo produtos and ap cat ic ceat order bar else sql all tipo select id nome tipo ap_cat resumo from ap where tCipol s procutos ano ap cat Sie cat order bag Sresultado all tipo mysal db query CMYSOL server pd Segl all tipo Tal como acontece nas not cias onde diferenciado o plural do singular Nestes m dulos foi elaborada uma pequena t cnica permitindo a diferencia o entre um e v rios coment rios O c digo transcrito exemplifica como realizado o pedido base de dados e a sua Interpreta o Saber qtos coment rios tem sql test it
47. Instituto Superior da Maia RELAT RIO DE SEMIN RIO DE PROJECTOS DE COMUNICA O PHPMy Community Cs Plataforma web orientada s comunidades Aluno Ruben Bernardo Alves 7832 Orientador Eng Joel Varanda ISMAI Ano lectivo de 2002 2003 WAY d E szal I El Los the free pinga about PPA Linux A MO Windows P gina 3 Relat rio do projecto PHPMyCommunity I SUM RIO Este documento tem por objectivo ser um relat rio do trabalho de fim de curso da licenciatura em Tecnologias de Comunica o Multim dia do Instituto Superior da Maia ISMAI O principal intuito deste trabalho foi desenvolver uma plataforma web orientada s comunidades permitindo assim aos seus membros comunicarem usando as novas tecnologias da comunica o Este relat rio tem como finalidade dar um pequeno resumo do trabalho efectuado contextualizando o em mat ria te rica Sendo muito extenso para impress o o c digo fonte est dispon vel no suporte digital f sico entregue juntamente com este documento P gina 4 ISMAI O 2003 II AGRADECIMENTOS Aos meus pais e ao meu irm o que sempre me ajudaram em todos os passos da minha vida at hoje e para sempre Um grande obrigado Ana Pinto pelo seu Amor que incondicionalmente sempre demonstrou pela motiva o que me proporcionou pelos testes de usabilidade pela sua compreens o nas minhas noites passadas em frente ao computador e claro pela paci ncia que
48. M RIO zrani aAA EENE a ERR 2 LE SUMARIO d ANO 3 TE SUM RIO mouie amaii a a DR RR E U RAR E O 4 I AGRADECIMENEOS E T E EEA EEE E E EE E 5 MTE CONTEDDO san T E E E TE OT O O TE 6 IV eINDICE DE FIGURA S ata onan a A a A a A NA 8 ic INTRODU O sata dp a let t sz Es a a da 9 1 1 DESCRICAO DO PROJECTO uai a eke E OD DO KEZET etre kele 9 1 2 OBIECTIVOS eea ea AAA a OR a a EAR N O E t N 9 1 3 REQUISITOS Hesse t telez E a 10 2 INTRODU O PHP aaa ondas cus SR CE SS da tdk sk 11 2 1 COUBE OPHP aii ADD a Pp OR RA E 11 22 PI TORA DOT I eaae ADO a a 11 2 3 MANTAGENS DO PER seas a ne E a s E E E E E 12 2 4 PHPMYCOMMUNITY PHP APACHE MYSQL POROU 000 s gg e ee s t t t t t t t t s 13 2 4 1 PADECE ara a ci EK RAS TEK S a RR a VN A CURE RA a a a a OLE LET 14 2 4 2 M SO nois ncia Sana o nO a a a a aa 15 Sd DESENHO iriiria aaaeaii aieiaa aaa CCC aaa dadas das ca dea aaa Saad a eat ee dek s sek kes anda pe ai pda 16 3 1 ASPECTO GRATICO tells s t t et s tott aa A ONES att 16 3AL MONZAN AT PETE O RP E N EAE EAT 16 3 1 2 Log tipo e imagem Cep Oss dede a ee ee ee t e ee t tet e t e ee tt ee 17 3 1 3 Linha mterm di n osaset E EE E E E E E 17 3 1 4 Identifica o e mensagens privadas brado pras bbb ni E ba cb ee ee ee t ee 18 3 1 5 MeO E Rd I8 3 1 6 DONE CM SE e N
49. MB de disco n o representa muito espa o Esta biblioteca est dispon vel para PHP C Perl e muito mais em http www boutell com gd P gina 18 ISMAI O 2003 webmaster ter um servidor com a biblioteca GD No mbito de simplificar o processo de cria o do menu resolu es de problemas p s instala o e configura o da plataforma existe a possibilidade ao dono da p gina de escolher o tipo de renderiza o do menu bastando editar o ficheiro config php e alterar uma vari vel menu gd Neste momento apenas poss vel atrav s do acesso directo base de dados a modifica o do menu Prev se a curto prazo a elabora o de uma componente administrativa com a finalidade de alterar este ltimo A configura o neste momento pela base de dados permite a altera o da ordem do menu modifica o dos privil gios e coloca o nos v rios itens do home noticias membros forum produtos menu Para simplificar ao m ximo a administra o da plataforma toda a componente encarregue de criar alterar e editar qualquer que seja a parte artigos sondagens pesquisa downloads link s contactos log in integrante no site artigos not cias f rum produtos e todo o resto realizada no pr prio menu Trata se de um menu din mico interagindo directamente com a base de dados onde vai buscar os privil gios de administra o do utilizador Ilustra o 3 Menu da p gina cr
50. S l Discurso cobro DOVOF E reibas lancamento Je PEA DUO NENE E por Sr mm Ilustra o 41 Segundo exemplo de aplica o do PHPMyCommunity a um caso real www airsoftportugal com P gina 94 REFER NCIAS BIBLIOGR FICAS Argerich L amp Choi W Et al Professional PHP Wrox Press 2002 Coelho P Cria o de p ginas na World Wide Web com HTML 4 amp JAVA FCA 1998 Damas L SOL Structured Query Language FCA 1999 Esser H G amp Wielsch M Et al Mandrake 8 Micro Application 2001 Evening M Adobe Photoshop 5 0 for photographers Focal Press 1998 Marques J amp Serr o C Programa o com PHP FCA 2000 Martini R Manual de seguran a em redes Linux Edi es Centro Atl ntico 2000 Medinets D PHP 5 Programming Browser Based applications McGraw Hill 2000 Nielsen J amp Tahir M L art de la page d acceuli Eyrolles 2002 Oliveira W T cnica para hackers e solu es para seguran a Edi es Centro Atl ntico 2000 Pereira J L Tecnologia de Base de Dados FCA 1998 Straznitskas M Photoshop 5 for the web Sybex 1996 Webster S Foundation PHP for flash Friendsof 2001 Nilsson M Session Management with PHP4 online Dispon vel na Internet via WWW URL http www phpbuilder com columns mattias20000105 php3 visto em 26 de Agosto 2002 Le Grand A Upload d un fichier vers un s
51. SID Ea inss que permite ao visitante dar a conhecer a sua prefer ncia entre um leque de 2 M dio 31 Mau Este pequeno sistema igual ao sistema de sondagens central s que n o Eps perguntas definidas pelo respons vel das sondagens l votou para e sondagem inclui uma op o para comentar ou mudar de sondagem s pode votar na sondagem corrente Todo o sistema de sondagem ser explicado num pr ximo cap tulo 5 1 6 Stats J referidas neste relat rio as estat sticas na margem direita permitem unicamente ao utilizador ter uma no o da progress o da p gina e da sua actividade Numero de grupos de utilizadores Ssgqlin grupos select count ic as cnt from grupos sresultadon grupos mysql db query SMYSOL server bd Ssgln grupos Sregiston grupos mysgl fetch array Sresultadon grupos Sn qrupos Sregiston grupos enc Numero de utilizadores sql n users select count id as cnt from login Sresultado m users mysql db query SMYSQL server bd Segl m users Sregisto n users mysgl fetch array Sresultado n users int Sn users Sregisto n users cnt Numero de utilizadores offline sql n usersOff select count id as cnt from membros offline Sresultado n usersOff mysql db query SMYSQL server bd Ssql n usersOff Sregisto n usersOff mysqgl fetch array Sresultado n usersOff um Sac users0Ori Sregisto n usersOti ent Utilizadores totais Stotal u
52. a o 4 Listagem das pr ximo capitulo vis vel directamente em todas as p ginas menos f rum permitindo ao utilizador identificado votar em qualquer altura e seguidamente sondagens Universal Ressource Locator Todo o endere o de Internet um URL por exemplo www dns com n o confundir com URI www dns com html doc html Funcionalidade do Apache que permite a coloca o de uma caixa de identifica o para aceder a determinadas directorias P gina 19 Relat rio do projecto PHPMyCommunity visualizar o desenvolvimento da sondagem em tempo real com um pequeno gr fico ilustrativo 3 1 7 newsFlash Por tr s deste nome b rbaro existe uma funcionalidade do PHPMyCommunity permitindo ao visitante ver quais foram as tr s ltimas newsFlash not cias enviadas para o sistema de not cias j w A partir da mes de Maio a Colocadas logo a seguir s sondagens dando lhe uma import ncia BESTER E Mensagens menos relevante no aspecto visual da p gina no entanto uma pe a ERRES funciol fundamental na apresenta o do site visto que as newsFlash conseguem mostrar Ver noticias ao utilizador as not cias mais recentes sem ver a p gina especificamente Ilustra o 5 dedicada s not cias newsF lash As not cias s o o motor de qualquer comunidade permitindo assim ao visitante estar a par da actividade da comunidade p gina ou simplesmente organiza o Com um deslizamento vertical
53. ador malicioso poderia perfeitamente inserir um c digo indesejado Dependendo do grau de conhecimento do pirata o ataque pode ser mais ou menos nefasto Um simples c digo HTML pode abrir janelas do navegador infinitamente que juntamente com o c digo Javascript pode abrir mensagens de alerta onde o utilizador ter que clicar no bot o s que ao fazer isso s o geradas mais dez janelas e assim sucessivamente o que se traduz nma p ssima experi ncia para o visitante Este facto insignificante com as possibilidades de um bom C S S caso o site use cookies poss vel a um atacante ter informa es sobre este Como do conhecimento geral ao contr rio do PHP o JavaScript executado pelo cliente que est a ver a p gina Tomando por exemplo o site que est a visitar permite a identifica o autom tica via cookies O roubo desta informa o poderia ser Mais informa es sobre inser o de c digo SQL neste FAQ http www sqlsecurity com fag 1nj asp P gina 36 ISMAI O 2003 simples bastando para 1sso a inser o de um c digo JavaScript Este ltimo criando uma hiperliga o a um script PHP que ir registar numa base de dados ou num ficheiro texto toda a informa o do cookie Foi por isso que o PHPMyCommunity n o permite a auto identifica o e n o usa cookies por simples medida de seguran a O c digo seguinte exemplifica como ao inserir em JavaScript consegue se enviar para uma p gina PHP o cookie qu
54. agar coment rios cuja funcionalidade realizada na pr pria p gina Quando removida uma sondagem a pergunta as respostas e os coment rios s o todos apagados da base de dados usando v rios pedidos SQL Como mostra o seguinte c digo PHP retirado do ficheiro a poll php P gina 76 ISMAI O 2003 Existe um id Vamos verificar se ele existe na base de dados sgl no cheat select count id as cnt from poll perguntas where id Sid poll group by id Sresultado no cheat mysql db query SMYSQL server bd sgl no cheat if Sresultado no cheat Sregisto no cheat mysgl fetch array Sresultado no cheat Scnt Sregisto no cheat cnt if Scnt 1 A vari vel existe e vamos come ar a apagar tudo Apagar os coment rios todos desta pergunta Ssql del coments delete from poll comentarios where id pergunta Sid poll S resultado del coments mysqgl db query SMYSQL server bd sgl del coments Apagar registo dos votos Ssql del registo delete from poll voted where id pergunta Sid poll S resultado del registo mysqgl db query SMYSQL server bd sgl del registo if Sresultado del registo Apagar respostas sql del respostas delete from poll respostas where LE pergunta Sie poll Sresultado del respostas mysql db query SMYSQL server bd sql del respostas if Sresultado del respostas Apagar a pergunta sql del pergunta delete from poll perguntas where id Sid poll Sresultado del
55. ances etc Dos melhores cilindros editar apagar para estrada 205 Melhores para c reuita Descri o c icar para editar Polini Evolution This iz Tha Polini Evolution escape que vai pro kit 7 cm k nao tem medo de ser o melhor 4 Polini Evolution This iz Tha Polini Evolution escape que vai pro kit 5 cm k nao tem medo de ser o melhor 206Cc vers o La chegou ele Agora tah mais tunning do que tunning nunca ba Ilustra o 35 Representa o de todas as componentes administrativas da gest o dos quatro m dulos 5 7 Sondagens As sondagens de um modo geral t m evolu do progressivamente de tal forma a que hoje em dia a maioria das p ginas com maior relev ncia possui um sistema de sondagens Estes inqu ritos t m um defeito em algumas p ginas porque n o permitem coment rios ou est o limitados ao n mero de respostas poss veis Como abordado h pouco quando se referia s sondagens da margem direita o PHPMyCommunity inclui um motor que permite o uso de v rias sondagens ao mesmo tempo com a possibilidade de usar uma infinidade de respostas poss veis por pergunta sendo igualmente poss vel a Inser o de in meros coment rios Proporcionando uma sensibilidade s reac es e opini es por parte dos membros Est inerente s sondagens um sistema de seguran a impedindo aos visitantes n o identificados em exprimir a sua opini o para evitar votos abusivos Este problema foi igualmente
56. ar da sua posi o na plataforma em rela o sec o onde ele se encontra O t tulo geralmente clic vel pois existem zonas na plataforma onde ele existe juntamente com um formul rio no qual a p gina que processada n o pode ser clic vel Ao contr rio do estilo usado por todas as hiperliga es preto negrito e sublinhado a barra de navega o est simplesmente a preto e a negrito ao n vel gr fico ter uma linha inteira sublinhada n o se enquadraria na linha gr fica da p gina Ilustra o 9 Barra de navega o 3 2 4 Janela de apresenta o do site Recorrendo ideia do livro L art de la page d accueil o que ser entrar numa loja e n o ser capaz de identificar imediatamente que tipo de loja e que tipo de produto vende Agora este aspecto aplica se igualmente p gina de entrada de qualquer site seja ele comercial ou n o A identifica o dos objectivos primordial os visitantes t m que entender em muito pouco tempo o tipo de p gina que est a ver e os servi os que disp e Se este pormenor n o for respeitado o site ser um fracasso porque ningu m perder mais tempo em visualizar outras p ginas sem ter a m nima ideia do que elas poder o oferecer lhe Tomando este aviso como uma funcionalidade ao mesmo n vel que as sondagens a mensagem de boas vindas tem a sua pr pria componente administrativa completamente configur vel Deixando para a vers o v 1 0 do PHPMyCommunity o
57. ara classificar as mensagens desenvolveu se um sistema permitindo a cria o de categorias de f runs dentro de cada um est o inseridos os t picos Proporcionando uma maior organiza o as categorias possibilitam uma variedade de assuntos definidos da descri o de cada uma Cada linha representa um f rum incluindo o n mero de mensagens enviadas t picos a data e a hora da ltima mensagem Esta listagem vari vel consoante os privil gios da pessoa Baseada na implementa o geral de seguran a da plataforma esta funcionalidade permite a Site oficial do f rum dispon vel em http www vbulletin com E Tradu o inglesa da palavra t pico por causa da n o tradu o e uso das palavras n o traduzidas que este termo cada vez mais usado na linguagem cibern tica portuguesa Mas querendo afirmar a posi o do PHPMyCommunity como sendo um produto nacional a palavra t pico foi preservada ao inv s da sua denomina o mais conhecida P gina 65 Relat rio do projecto PHPMyCommunity cria o de um f rum s para alguns elementos da p gina Por exemplo poss vel criar um f rum s para administradores de artigos produtos sondagens etc A sua apresenta o vari vel dependendo dos privil gios de quem visita Forum de apresenta o Forum de apresenta o da p gina as a Hoje as 04 14 Este forurn so serve de testes por gade Consoante a seu nivel poder ter acesso a
58. argem esquerda onde est o disponibilizadas op es de administra o Ed Uma das funcionalidades relevante a possibilidade de abrir ou fechar um f rum Estando inicialmente aberto pode se em qualquer momento fech lo por problemas imerentes ao mau comportamento dos seus utilizadores poupando o tempo aos administradores deixando de ter que apagar t pico a t pico O c digo seguinte comprova como imposs vel a um utilizador ver um f rum fechado Este exemplo foi retirado do ficheiro f view forum php Vamos agora verificar se este f rum activo ou n o E com o mesmo pedido vamos saber a descri o e o nome do f rum sal corum actives select 1C Corum Status nome Corum Qese Corum Lo COrun carc irom forum where dd forim S1d Lorum o0 Sresultado forum active mysql db query SMYSQOL server bd Ssql forum active 1f Sresultado forum active Sregisto forum active mysqgl fetch array Sresultado forum active Snome forum Sregisto forum active nome forum Sdesc forum Sregisto forum activel desc forum Ses rorun cat registo ortum active ae torun ceat l Separe Sregisto rorum active Status l it Satatusss true 1 PI Ent o mostra F rum Basa Outra funcionalidade importante o facto de poder atribuir direitos de visualiza o ao f rum Usando o sistema de seguran a da plataforma abordado anteriormente poss vel designar um f rum vis vel s para um tipo de utilizadores Sele
59. as sem a oportunidade de se ligar rede mundial Os membros offline s o percept veis nas p ginas de visualiza o de grupos A listagem dos membros registados limitada s fronteiras de Portugal aceitando no entanto membros estrangeiros na medida em que a plataforma orientada a um p blico nacional O PHPMyCommunity assume se como um sistema sem grandes pretens es em rela o s aplica es como o PHP Nuke ou POST Nuke No entanto poder no futuro ser adaptada a uma escala internacional mas no mbito acad mico este grau de complexidade n o se justifica Os membros podem ser listados de v rias formas PHP Nuke e POST Nuke s o plataformas web a serem desenvolvidas a v rios anos por centenas de utilizadores pela Internet Mais informa es em www php nuke org e www post nuke com P gina 58 ISMAI O 2003 Listagem alfab tica modo mais directo que permite ao visitante aceder base de dados dos membros escolhendo a primeira letra pela qual o username come a criando assim v rias tabelas com todos os utilizadores registados Todos os utilizadores podem ser listados de uma s vez pressionando a hiperliga o todos Todos os login iniciados em n meros ser o exibidos clicando em outros sem es polpa ope E a a lol lplalr alt ul u w y z outros todos Home user Hobbies Desporto cinemamusica Assinatura also a proud member of iNY FE 1 Ver detalhes sobra este
60. ase de dados Por um lado demora se mais tempo a entrar mas por outro sabe se que as pessoas que est o dentro est o autorizadas Este fen meno muito visto na parte da administra o tendo em conta que apenas uma pequena parte dos utilizadores ter acesso administra o De um modo geral os objectivos Iniciais e as expectativas foram superadas mas com a ajuda dos utilizadores reais do www airsoftportugal com j est o previstos muitos outros P gina 80 ISMAI O 2003 6 2 Objectivos futuros Apesar de ter finalizado o projecto PHPMyCommunity ainda n o foi lan ado oficialmente na Internet Pretende se desenvolver uma p gina oficial constru da a partir da plataforma e assim tentar desenvolver uma comunidade de ajuda e desenvolvimento ao PHPMyCommuntty Algumas melhorias ao n vel de optimiza o de c digo PHP est o previstas a curto prazo um sistema seguro de inser o de tags HTML tipo Microsoft Word que permitir dar maior relevo ao texto nomeadamente s not cias artigos e descri es dos links downloads etc Est tamb m prevista a integra o de uma galeria de fotografias calend rio de eventos uma sec o dedicada aos classificados e muitas novas melhorias ao f rum actual Para testar a plataforma existe uma comunidade nacional Comunidade de Airsoft Portugal que est a usar o sistema nos seus servidores www airsoftportugal com Dentro de pouco tempo ser lan ado mais duas p ginas web
61. assword password group by username Sresultado mysql db query SMYSQL server bd Ssa LE Sresultado Dre cd co es a MEL SES EE CAS re tlcacdolr if Sregistol cnt 1 1 EM else res cbr cdiv align center gt lt span class texto gt A sua senha e ou a sua password est o lt b gt erradas lt b gt Verifique estes dados lt br gt ou entra em contacto com o webmaster lt span gt lt div gt lt br gt writelogin res session destroy Poupando consideravelmente o tempo de execu o o SGBD sistema de gest o de base de dados que trabalha e n o o PHP que por natureza mais lento Esta fun o aumenta a seguran a na identifica o dos utilizadores pedido base de dados para verificar se os dois campos do formul rio coincidem com ela se for o caso ent o a vari vel cnt igual a 1 sendo assim poss vel a entrada no portal Caso contr rio executa a fun o writelogin res e como medida de seguran a apaga qualquer tipo de sess o que poder ter sido criada por erro de programa o ou do sistema Sempre na perspectiva de aumentar a seguran a todas as palavras chave dos utilizadores s o encriptadas em MDS alto n vel de codifica o em 128 bits e melhoradas com um salt sal em ingl s que soma as duas 2 palavras textos do nome do utilizador com o sal para aumentar mais uma vez a seguran a das palavras chave J5 Emceyotac a Passworc a cunca Crypt O Cc injectiva S0 Fun
62. ca Pinto da Costa Perafita Paredes Puerto Descri o Espa o reservado a descri o do grupo de utilizadores E aconselhado n o colocar outro tipo de assuntos Contactos ralues gt gademnetcabo pt Ilustra o 24 P gina pessoal do grupo Porto Utlizadores registados deste distrito ADe Localidade gade Porto gade girl Porto Ari guonet S Fedro Avioso E juormsS006 Maia regi o schweppes Forto grande po rto cuguinha porto User Porto SoundMan Matosinhos M o existem utilizadores sem internet neste distrito Ilustra o 25 Cada distrito possui uma imagem diferente P gina 60 ISMAI O 2003 5 4 4 Administra o dos grupos de membros Com a possibilidade de adicionar uma infinidade de grupos de membros o PHPMyCommunity proporciona ao administrador da plataforma v rias funcionalidades sobre estes N o podendo gerir todos os grupos esta tarefa realizada pelo respons vel do grupo possuindo permiss es de escrita no seio dos seus membros No entanto n o poder criar apagar ou editar outros grupos Ter que administrar a sua rea como se fosse a sua p gina pessoal inserida no contexto da plataforma Para esta gest o foram programadas funcionalidades aceitar recusar pedidos de jun o adi o remo o de membros offline alterar informa o sobre o grupo e gest o dos utilizadores Juntamente com v rias informa es teis como um resumo dos dados n mero de utilizadores com ou s
63. ccionando os privil gios os direitos de leitura escrita s o validados actualizando os privil gios necess rios O PHPMyCommunity atribui automaticamente os privil gios de utilizador b sico e visitante a qualquer administrador sendo assim poss vel seleccionar uma s caixa para colocar um f rum vis vel unicamente por utilizadores registados P gina 68 ISMAI O 2003 Edi o do forum Nome do forum Forum de apresenta Descri o do forum Este forum so serve d alali G Aberto Fechado Categoria E Apresenta o aj Posi o E 1 a Dar permiss es de Responsavel dos membros laitura escrita aos utilizadores Responsavel das noticias Responsavel das categorias de membros Responsavel dos links Responsavel dos downloads Responsavel dos produtos Responsavel das sondagens Responsavel dos Foruns Responsavel dos artigos Utilizador registado E E E E E a E a Quest O guest nunca tem Permiss es de escrita s de leitura alterar dados x Ilustra o 31 Edi o de um forum com as suas devidas permiss es Nota se que quando editado um f rum os privil gios do mesmo ficam sinalizados sabendo assim quais s o os utilizadores que t m acesso ao f rum Esta funcionalidade est escrita no ficheiro a_forum php onde efectuado um primeiro pedido SQL para retornar o n vel decimal do f rum em quest o ssal cat forum select id forum ic forum cat posicao nivel forum fr
64. chave prim ria identificador do voto Unico e auto incrementado id pergunta identificador da pergunta relaciona o coment rio a pergunta P gina 26 ISMAI O 2003 id user identificador do utilizador gue participou a sondagem forum posts tabela armazenando todos os t picos e respostas destes A informac o de cada mensagem est inserida 1d chave prim ria identificador da mensagem no f rum nico e auto incrementado titulo este campo armazena a informa o sobre o assunto da mensagem msg conte do do corpo da mensagem anexo caso existe um anexo este campo ira guarda o caminho at a imagem inclu da data post data de coloca o da mensagem hora post hora de inser o da mensagem count campo aplic vel ao t picos Faz a contagem as leituras que obteve id forum identificador do f rum a que pertence id user identificador do utilizador que escrever a mensagem id topic identificador de t pico thread boleana caso o valor esteja a 1 trata se de um t pico caso contr rio uma resposta 1p poster IP da pessoa que inseriu a mensagem mstime tempo em segundos desde 1 de Janeiro de 1970 forum tabela respons vel pelo armazenamento de todos os f runs da plataforma que ir listar os t picos id forum chave prim ria identificador do f rum nico e auto incrementado nome forum campo guardando o nome do f rum desc forum descri o do f rum status boleana que define se o f r
65. ciona nun SO sentido seguida de um Salt sal que permite codificar a palavra pass com o algarismo da LUSO ER PE v Sencrypt pass crypt campo pass gade 2003 Ap s a verifica o da autenticidade do utilizador s o registadas 3 vari veis de sess o id nome do utilizador e uma boleana que permite saber se o utilizador esta identificado ou n o que uma vez registadas s s o apagadas quando se faz o logout onde existe uma fun o que apaga a sess o do P gina 52 ISMAI O 2003 utilizador colocando as vari veis de sess o com o seu valor de defeito ou quando o visitante fecha o seu cliente web A fun o em quest o proveniente do PHP session destroy Como foi referido dentro do m dulo de login logout existem outros sub m dulos Com a mesma import ncia do que o anterior o m dulo de registo de utilizador tem como fun o a adi o de novos elementos na comunidade O ficheiro de recep o ao formul rio foi estruturado para que se possa verificar todos os campos necess rios e caso algum falhasse seja capaz de retornar ao utilizador qual o campo errado Completou se com uma fun o JavaScript est livremente dispon vel na p gina www nexen net que ao validar o pedido de inser o confirme se o endere o de correio electr nico est correcto ou seja se possui um nome antes de uma arroba seguindo de outro nome finalizado por uma extens o com org pt etc Usemame Nome Password
66. como pode ser realizada esta pequena funcionalidade quase sem recorrer ao PHP apenas usando a base de dados if Svisitas 1 echo Pcspanclass texto gt noticia lada sb gt Svisitass b gt vers span gt sbr gt else echo lt span class texto gt not cia lida lt b gt visitas lt b gt vezes lt span gt lt br gt sql update visitas update news set visitas visitas 1 where id Sid Sresultado update visitas mysql db query SMYSQL server bd Ssqgl update visitas Quando criada uma not cia o contador iniciado em 1 Assumindo que quando criada ela ainda n o foi lida e assim que o primeiro visitante ler a not cia pela primeira vez ter o contador colocado e 1 e de forma transparente ira incrementar para que a pr xima pessoa veja o n mero 2 Estas tr s p ginas s o geridas a partir do ficheiro noticias php que por sua vez permite a execu o das fun es programadas em func news php O excerto do c digo PHP comprova como efectuado o redireccionamento das fun es if GET p news write noticias por categorias Jelseif S GET p view news ssel n noticias select id cat news from categorias news group by id cat news resultaco n noticias mysql olo cuery SMYSOL server bo SsellL m moticias iz resultado n noticias while Sregisto n noticias mysql fetch array Sresultado n noticias sm noticias Pregrsto n noticias ad cat news SiS e a
67. cuperar informa o acerca de um produto ou armazenar a informa o de clientes num site web Infelizmente o MySQL n o se pode comparar a bases de dados tipo Informix Sybase ou at a gigante Oracle O MySQL n o ser a melhor escolha porque n o apresenta toda a robustez funcionalidade e seguran a que proporciona uma base de dados Oracle Mas no caso de aplica es web o MySQL mais do que suficiente Para um projecto acad mico n o compensava comprar uma licen a das extraordin rias bases de dados comerciais supracitadas P gina 15 Relat rio do projecto PHPMyCommunity 3 DESENHO Ed Em qualquer p gina da Internet o desenho um dos pontos fundamentais na cria o e no desenvolvimento pois s o as linhas gr ficas que v o impor ao programador as suas limita es O desenho da p gina ir determinar quais s o as funcionalidades e que lugares ter o na apresenta o final do projecto No caso do PHPMyCommunsty todos este processos foram realizados n o por uma equipa mas sim por uma nica pessoa tornando o eterno conflito designer programador um paradigma pessoal O grande inconveniente deste tipo de projectos que t m que correr em qualquer lado e de uma forma muito generalista ou seja t m que funcionar para todos os casos em que se aplica e agradar a uma maioria por esta raz o que todos os itens e p ginas foram pensados desenvolvidos com um objectivo bem preciso Nada foi deixado ao acaso o PHPM
68. cura n o ser efectuada O motor de busca do PHPMyCommunity permite ao utilizador seleccionar quais os principais m dulos not cias f rum produtos artigos a pesquisar Existe ainda uma op o que proporciona ao visitante a oportunidade de pesquisar em todos os campos FHE My Community Pesquisar em Membros 0 M ticias Produtos O Artigos O Downloads O Links O F rum O Todos Noticias Mm rner de ocorr ncias 1 P ginas sl 11 Mensagens Privadas a funcionar J partir do m s de Mala o sistema de Mensagens Privados esta a funcionar Tsa Ilustra o 38 Exemplo de pesquisa efectuada unicamente nas not cias com a palavra PHPMyCommunity O objectivo da realiza o de um motor de pesquisa Interno a apresenta o de conte do a partir de uma palavra N o se trata de um motor por robots que ir procurar em p ginas criando uma base de dados de informa o sobre este resultado No caso do PHPMyCommunsty o resultado instant neo procurando directamente nos campos pedidos criando v rias p ginas caso seja necess rio A apresenta o por p ginas configurada no ficheiro config php que permite definir o n mero de resultados por p gina O c digo seguinte um exemplo de uma pesquisa s not cias proveniente do ficheiro procura php Sarray explode Ssearch box Ssql select id campo sujeito campo msg news resumo from news where Tor 1i 0 i lt count Sarray Sa J
69. db query SMYSQL server bd Ssql selected users if Sresultado selected users while Sregisto selected users mysql fetch array Sresultado selected users Sid destinatario Sregisto selected users id l Sid grupo Sregisto selected users id grupo enviar mp para todos os membros send mp Sid session Sid destinatario campo assunto S campo mensagem b enviar mp para o administrador da plataforma sql diz info grupo select nome grupo from grupos where id Sg Sresultado ciz nio grupo m sal db query SMYSOE server ba gecl diz info oripo E send mp Sid session Sid admin campo assunto Scampo mensagem P gina 62 ISMAI O 2003 Listagem dos membros do seu grupo Membros Tipo membros Enviar mp Editar Fun o qade registado enviar m p excluir ptjedi registado enviar m p excluir Johny BeGooD sem internet editar apagar el Ranhoca sem internet editar apagar Pinto da Costa zem internet editar apagar Enviar mensagem privada a todos os membros do seu grupo Assunto Corpo da mensagem submit Para evitar abusos esta mensagem privada ser igualmente enviada ao administrador da plataforma Ilustra o 27 Listagem dos membros com as suas respectivas op es e formul rio para envio de mensagens privadas aos membros 5 4 5 Administra o dos membros A administra o dos membros possibilita toda a gest o dos privil gios dos utilizadores com funcionalidades de comunica o
70. de Cada ES cuca Dana dadas a a ae nen bancada 36 P gina 6 ISMAI O 2003 4 5 2 SOL ecos NEKES KE ELET NEK t SSE EL DER Rana Ea Gina nana dna 37 4 6 SISTEMAS BEPRIVIL GI S pia t tek AE AET e LO l seek A a es E L E Eeen s s 38 5S FUNCIONALIDADES ccsssisicosa casar e algas N GRE Das aA Oaa AEA NN Ci K ZL N a e KASS N NEK k LEK A a 40 5 1 PAGINA DE ENTRADA lei Sd a 40 Dead Mensagem de boas VINddaS sssssssssssssssssss ss s s s s t t ee CR R AR SUN DO AE ee ee e ee Ad Su 40 5 1 2 NONGA Se ae E A A O S ET NETRE kzt 41 5 1 3 Flash ONU sesinin renna E E A E GU E AL L ao 42 5 1 4 NEWSEla Shi noanean a id Rd dd 42 5 1 5 Sondagens da margem direlta sssssssss ssszs s s s t t ee etet t DA a ada 43 5 1 6 Slats ae e E A A EAE A RR RD A A 43 5 1 7 MEN eera aa da a 44 5 1 8 Login Mensagem PRIVADAS isa rasa ia t t ee a ee ee e t t e 46 DEZ SIS LEMASDE NOTICIAS assa a ia E DA NS RD A Da 46 Sida EOG LOGOUT cobaia Rai ta boda a ind Da DRA RO aaa hs tia So aaa oa a E 52 5 3 1 Inser o e identifica o de utilizadoresS ssssssss ssss s z s ss z r ee ee ez e ee ee t e ee ee CADA ee t ee etet t es 52 NSZ Altera o
71. de da pessoa que se registou site caso tenha uma p gina pessoal criado para receber esta informa o assinatura usado no f rum no fim de cada resposta aparece o conte do deste campo ultimo 1p armazenamento do ltimo ip do utilizador identifica o ou registo numero post valor representativo do n mero de respostas ou t picos escritos nivel valor em decimal dos privil gios do utilizador localidade tal como o seu nome o indica este campo acolhe o nome da localidade id regiao identificador do distrito do utilizador id grupo identificador do grupo em que pertence o utilizador recup questao pergunta usada para recuperar uma palavra chave recup resposta resposta necess ria a quest o para recuperar a palavra chave membros offline tabela com 10 campos suportando toda a informa o relativa a uma pessoa pertencendo a um grupo mas n o que n o possui Internet Este membro criado pelo administrador de um grupo 1d chave prim ria identificador do membro offline nico e auto incrementado id regiao membros offline identificador relativo ao distrito do membro id grupo membros offline identificador relativo ao grupo a que pertence nickname alcunha usada pela pessoa ou inventado pelo respons vel do grupo nome membros offline nome real do membro Idade membros offline idade do membro localidade membros offline dados armazenando a localidade do membro hobbies membros offline passatempos activ
72. de mensagens privadas funciona tal p DDT como uma caixa de correio electr nico indicando o n mero de novas mensagens n o lidas A sua coloca o essencial mas a sua visibilidade primordial Tendo a oportunidade de testar v rias disposi es na p gina TI 0 e f d ZKT constatou se em v rias pessoas que o s tio mais indicado Re eai realmente no canto superior direito Como todos sabemos o sentido de leitura no Homem ocidental em forma de Z onde a maior import ncia sempre dada TT NN rea na qual est colocado o nome do site e logotipo juntamente com o menu passando pela rea da descri o da p gina e acabando na zona das mensagens privadas Para o utilizador n o identificado esta zona est reservada para efectuarem a sua identifica o Para n o desfazer a p gina os formul rios de login e de pesquisa foram realizados em Macromedia Flash assim nunca s o deformados Por exemplo usando CSS vers o 2 consegue se um efeito semelhante mas que n o ser igual em todos os navegadores Esta diferen a que pode ser medida ao pixel poderia deformar as tabelas A escolha do Flash foi dif cil e controversa na medida em que era um requisito a realizar pelo cliente e n o pelo servidor Mas hoje em dia mais de 90 dos browsers actuais j t m a possibilidade de descarregar da Internet este plug in Menos de 1 Megabyte De qualquer forma todos os clientes que n o poder o ter o Flash
73. do PHP conseguimos incluir todos os ficheiros para a apresenta o do documento por isso que ao contr rio da programa o de p ginas est ticas unicamente em HTML o primeiro ficheiro do PHPMyCommunity relativamente pequeno A amostra de c digo exemplifica como funciona o primeiro ficheiro a ser processado pelo servidor web index php lt PONI eres eonig ND 27 Clone a lt head gt lt pie Lle gt lt 7pno echo SST nome cos caca lt head gt lt body bgcolor DBDBDB text 4666666 link EBEEBE T vlink FERFEE alink FFFFFF leftmargin 6 topmargin 6 marginwidth 0 marginheight 0 gt lt 7 inelucde Yincelucde main D mot E R TOONE e mem Num primeiro tempo chamado o ficheiro config php que vai definir a vari vel SITE_nome Depois existem algumas linhas para criar as defini es b sicas do site cor de fundo margens cor do texto e hiperliga es Para terminar com o motor principal da plataforma main php 4 2 Main php O ficheiro main php respons vel por chamar a estrutura e os outros ficheiros encarregues pelas v rias fun es e m dulos Este ficheiro o mais importante porque o primeiro passo para a estrutura gr fica e para a seguran a do site pois vai dividir o site em 5 partes topo lado esquerdo centro lado direito e base onde cada uma destas componentes ser respons vel por outras funcionalidades todas elas relacionadas
74. do o em lista de espera para a entrada no novo grupo Toda a programa o permitindo esta funcionalidade est inserida no ficheiro a pessoal php onde s o retiradas as principais linhas do c digo PHP P gina 54 ISMAI O 2003 Apagar gualguer outro pedido gue tenha sido feito antes sql del old pedidos delete from pedidos grupos where id user pedido Sid session Sresultado del old pedidos mysqgl db query SMYSQL server bd Ssal del old pedidos Pedido de transfer ncia de grupo bancar a pedido ce inserto no grupo S data pedido date 5 m Y Ssal mp admin insert into pedidos grupos id user pedido Vo grupo pedido data pedido JVATUES Sic session Scampo grp data pedido Sresultado mp admin mysql db query SMYSQL server bd Ssal mp admin 1f Sresultado mp admin i antes de enviar uma MP para o administrador do grupo em quest o vamos primeiro apagar os MP que possam ter sido enviados antes SO S sal del old mp delete from mp where mp assunto Pedido de transfer ncia para o grupo and id remetente Sid session Sresultado del old mp mysel db query SMYSQL server bd Ssal del old mp I Colocar uma mensagem privada na caixa de correio do respons vel deste grupo para avisar lhe de dar uma vista de olhos a sua sec o de administra o campo gripe e Sid admin gripe a send mp adminG Siol session Sid admin grupo 2Scampo grupo 5 3 3 Recupera o da palavra cha
75. dos dados pessoais do utilizador ssssssssssszsss sss s sss z e s t t t t t e t t t es 54 5 3 3 Recupera o da palavra Chave rasta Essas a SR SS t ee 55 5 4 SISTEMA DE MEMBROS oana sd O T N E KET ASLAN ele kOS SZA N 56 5 4 1 Sesuran a dos dados PESSOAIS se sela onrar a a a EN g l 57 5 4 2 P gina principal dos membros aaa tri co E pa DR id a EE 57 5 4 3 Listagem dos mem O OT E NA a a a RD a TaS 58 5 4 4 Administra o dos grupos dememDroS casaatas nessa A A in a 61 5 4 5 Administra o dos MEMDFOS ssssssssss s ss ss s t z t e ee t t ee ete RIA CATA ee ee ee t ee ee NAN asa sia 63 55 F RUM DE CONVERSAS ss asi E E E E A T tett lb s ei 65 5 5 1 Listagem das C L S TT S eszes k ses a a a E DR GERE 65 2 22 Listagem do conte do de um f rum sssssssssssssssssss s s ss s ee ES dA dd 67 5 5 3 Estac deun topicom senine a E SK dee aa 70 5 6 ARTIGOS PRODUTOS DOWNLOADS E LINKS ssssssesessessssssesttttrtriresssss tett tttttttt estres tett t teess Seet tete ee t t t etet t t t t t t t ee 71 Ih SONDAGENS asane er R a a a a a R R a 74 5 8 MOTOR DE PESQUISA ss ezzek estet a ee LEK a Se dd a ga Rc da ad a da N
76. e a ltima informa o o conte do em si Estas caixas est o presentes em todo o site por isso a fun o alter vel pelo webmaster onde lhe basta alterar o c digo para depois poder modificar todo o aspecto gr fico da p gina template a gfx icone mp gif echo Mensagens Privadas template b echo Sgreetings template c mostrar mp nivel user Sid template d Enviado por Data de envio gade 21 10 2003 User 27 09 2003 gade 20 09 2003 gade 3 08 2003 Ilustra o 8 Caixa de mensagens privadas que ilustra perfeitamente o uso de modelos gr ficos ou templates no PHPMyCommunit P gina 21 Relat rio do projecto PHPMyCommunity As cores usadas no PHPMyCommunity s o bastantes funcionais e recomendadas em todo o mundo nomeadamente pelo especialista acima referido Jakob Nielsen que aconselha usar texto preto com letras brancas Esta combina o de cores permite uma ptima legibilidade com um contraste m ximo As cores da caixa de texto cinza claro para o fundo e preto para o texto respeitando assim os conselhos dos autores Sur 72 des pages d accueil tudi es le texte s affiche en noir la plupart du temps sur un fond blanc cette combinaison procure un contraste maximal et une lisibilit optimale et rappelle les textes imprim s tradicionnels 3 2 3 T tulo de navega o Os t tulos de navega o permitem ao visitante estar a p
77. e cada utilizador possui um n vel criado a partir da transforma o bin ria para decimal Estes privil gios s o dados de duas maneiras diferentes pelo webmaster ou pela plataforma Por exemplo um visitante ter o n vel um automaticamente dado pelo sistema um utilizador registado I TERE e B a E a Como exemplo sugere se a visualiza o desta p gina que indica como este tipo de ataques podem se tornar prejudicais http www sitepoint com article 794 3 P gina 38 ISMAI O 2003 possui o n vel tr s igualmente definido pela plataforma Os restantes privil gios ser o definidos pelo webmaster directamente atrav s da gest o dos utilizadores O webmaster root tem o n vel m ximo nico e inalter vel de 4095 Entre esses valores existem uma grande quantia de n veis definindo assim as permiss es e os acessos dos administradores nas suas respectivas categorias Defimiu se ent o o seguinte mapa de bits onde cada bit representa um privil gio 000000000001 Visitante 000000000011 Utilizador registado 000000000111 Respons vel dos artigos 000000001011 Respons vel do f rum 000000010011 Respons vel das sondagens 000000100011 Respons vel dos produtos 000001000011 Respons vel dos downloads 000010000011 Respons vel dos links 000100000011 Respons vel dos membros 001000000011 Respons vel das noticias 010000000011 Respons vel dos membros 111111111111 Administrador do siste
78. e dois elementos ap comentarios dl comentarios estas duas tabelas tem exactamente a mesma fun o armazenar todos os coment rios A primeira guarda os artigos e os produtos a segunda os downloads e as hiperliga es Apesar de serem iguais os nomes de alguns campos poder o variar 1d chave prim ria identificador do coment rio nico e auto incrementado id ap e 1d referer identificador referente ao id do item da tabela ap ou dl corpo conte do do coment rio owner enviado por nome por extenso da pessoa que colocou o coment rio data dia data em que foi inserido o coment rio data hora hora em que foi inserido o coment rio P gina 28 ISMAI O 2003 Ed config como o seu nome indica esta tabela respons vel por alguns par metros da plataforma O utilizador final poder alterar este dados directamente pela sua rea de administra o Esta tabela s possui uma linha de dados nome do site chave prim ria este campo armazena o nome da p gina welcome t tulo da janela de apresenta o p gina inicial welcome msg conte do da mensagem da janela de apresenta o welcome ass assinatura da mensagem da janela de apresenta o menu tabela encarregada de guardar os itens do menu na base de dados id chave prim ria identificador do item do menu nico e auto incrementado posicao identificador da categoria do menu a qual ele pertence nome item nome do item este nome ser vis
79. e est a ser usado pela v tima SEE window open http www h4x0r cOm steal php c document cookie lt SCEIDET gt Estas t cnicas s o aterradoras o pior imaginar que o administrador do site tem o login autom tico activado oferecendo assim as chaves da sua p gina ao atacante dando lhe sem o seu consentimento o acesso a toda a administra o da p gina Estes exemplos s o suficientes para entender o grav ssimo problema da inser o de c digo externo Foi por estas raz es que no PHPMyCommunity criou se uma fun o especialmente para limpar todo e qualquer texto HTML em todos os formul rios porque nunca se esqueceu que a plataforma tem que funcionar para qualquer tipo de comunidade 4 5 2 SOL Injection Qualquer p gina da Internet que use uma base de dados pode tornar se facilmente para os mais s bios uma verdadeira fonte de pirataria perfeitamente poss vel atrav s de pedidos maliciosos obter informa es da base de dados sem ter estas permiss es e claro sem inten es do programador da p gina Por alguns pedidos SQL serem mal constru dos o atacante pode efectuar v rias modifica es na base de dados tais como seleccionar dados apagar ou alterar ssmplesmente manipulando o pedido SQL Tendo por base o seguinte exemplo um pirata poderia misturar c digo SQL com inser o de c digo dentro de uma p gina pelo simples motor de pesquisa Por isso vamos supor que existe um campo onde o visitante possa
80. e uma diferencia o entre os dois owner nome do utilizador que publicou o artigo ou o produto preco caso existe este campo guarda o pre o do produto data dia data em que foi publicado data hora hora em que foi publicado gfx caso existe uma imagem relativa este campo ira guardar o caminho completo da imagem dl tabela incluindo 9 campos respons vel pelo armazenamento de todos os downloads e hiperliga es id chave prim ria identificador do download ou da hiperliga o nico e auto incrementado nome este campo refere se ao nome do download ou da hiperliga o url campo armazenando o url completo da p gina link ou do ficheiro download descricao a fun o deste campo guardar todas as descri es Inserido nome do utilizador que inseriu o item tipo diferenciador entre os dois tipos links ou downloads dl cat identificador da categoria correspondente data dia data em que foi publicado data hora hora em que foi publicado ap cat dl cat estas duas tabelas s o id nticas a nica diferen a reside no tipo de dados que v o armazenar na primeira ira guardar as categorias de artigos e produtos e na segunda as categorias de download e hiperliga es 1d chave prim ria identificador da categoria nico e auto incrementado nome nome da categoria descricao descri o da categoria tipo tal como na tabela ap e dl o tipo representa aqui o meio de diferencia o entr
81. e visualizar aplica es Flash P gina 46 ISMAI O 2003 uma percep o da informa o com a possibilidade de clicar numa hiperliga o e visualizar a not cia no seu todo Cada categoria de not cia possui uma pequena imagem associada enviada pelo administrador da p gina Todas elas t m um nome e uma descri o edit veis em qualquer momento pelo webmaster Por medidas de organiza o somente o administrador m ximo poder criar editar ou apagar categorias de not cias sendo algo que n o ser preciso ser alterado com frequ ncia Preferiu se limitar esta possibilidade a uma s pessoa Em contrapartida os utilizadores com privil gios de escrita de not cias poder o criar todas as not cias que julgarem necess rias ter o assim a possibilidade de editar e apagar not cias cuja autoria seja dos pr prios Existe uma hiperliga o em todos os resumos que permite visualizar a not cia no seu todo Se a not cia tiver uma imagem associada esta ser mostrada em tamanho reduzido de forma a n o danificar o aspecto geral das listagens e como bvio o design da p gina O sistema de not cias corresponde a tr s p ginas de visualiza o mais uma p gina dedicada administra o A primeira a listagem das ltimas not cias publicadas no portal integradas em categorias onde apenas s o representadas aquelas que possuem novidades A primeira p gina o ponto de partida para a visualiza o completa das not cias per
82. ect id titulo data post hora post count id forum id user id topic thread mstime from forum posts where thread 1 and id forum Sid forum get order by mstime limit Sinicio fim Sresultado list thread mysql db query SMYSQL server bd Ssqgl list thread it ce sultado list tazsad while Sregisto list thread mysagl fetch array Sresultado list thread Stitulo Sregisto list thread titulo Sid Cropic Sregisto list thread 1d topic S data post Sregisto list thread data post J Shora post S registo list taread hora post Scount Sregisto list thread count Sid Forum Srcoquisto Tist chread l ad Forum LO user registo list threadi id usse y Sia topic registo list thread id topic E E Cada f rum possui os seus pr prios t picos com nome ordem descri o e outras defini es Os f runs podem ser editados pelos respons veis do mesmo No PHPMyCommunity n o existem administradores diferentes para cada f rum todos t m a capacidade de editar criar ou apagar f runs Esta escolha deve se ao facto que em muitos f runs existem tr s ou quatro administradores mas que n o t m P gina 67 Relat rio do projecto PHPMyCommunity necessariamente acesso s outras categorias originando problemas Por exemplo quando o primeiro a ver um t pico ou resposta inadequada n o tem permiss es para erradicar aquela informa o A administra o dos f runs feita como as categorias ou seja na m
83. ee rice eeeeeeerererreaeeeeaaneeeanananaeeeo 54 Ilustra o 21 Exemplo de resultado quando executado o pedido de recupera o da palavra chave 56 Liustta o 22 Pagina de acesso dos IEN Di OS sa ss g K t ls SK nd doa a 58 Ilustra o 23 Exemplo de resultado obtido de um utilizador com um username iniciando em U 59 Ilustra o 24 P s ima pessoal do STUpO essas assis etesse MORENA Ra TRA O META GEC ASERA Cadeia dr SS co du ea dd 60 Ilustra o 25 Cada distrito possui uma imagem d ferente 0 sssssggg lee ezezzssssss ee t t t es 60 Ilustra o 26 Exemplo de resultado com um grupo tendo 1 pedido de InSerc o ssssss lee eeeeeeeeeeee ssss 62 Ilustra o 277 Listagem dos membros com as suas respectivas op es e formul rio para envio de mensagens privadas DOS MIC DROS esz t doa a AE E RR A AT O a RE 63 Ilustra o 28 Selec o dos privil gios com a respectiva ajuda sssggg ggg zzzss s s s t t t t s 64 linstra o 29 Exemplo de cales oras de TOM passas a TAUM ea AE SUAR cd 66 Ilustra o 30 Listagem dos t picos reduzida a quatro elementoOs sssssssgg eeeeeeeeeeeeeerrerreeereaaaeenanananeeeo 67 Ilustra o 31 Edi o de um forum com as suas devidas permiss es
84. eitamente o uso de modelos gr ficos ou templates no EHEMyCoOmM uni o essi t szta SAR ea PT Se Ra elk a 21 lustratio 9 Barrado NAVES AC O asia OD ID SR Si T LES 22 Ilustra o 10 Janela de apresenta o do site com a mensagem do Jakob Nielsen ss 23 Ilustra o 11 Resultado gerado pelo PHP ap s inser o de not cias ssss e zzeze seeeeee ee es 41 Ilustra o 12 Amostra de resultado gerado pelo PHP erre rer e cer erre e eee aaa rererrereaeearaaarenanananaeo 42 Iustracio 13 Menu criado sem ouso do GD sima ana nd Eai ete sk l k es k zletelek E zt lek es s t bek rt 44 Ilustra o 14 Resultado obtido ap s identifica o com mensagem privada pendente ssssssssss 46 Ilustra o 15 Resultado obtido ap s ter seleccionado uma categoria de not cias cci ires 47 Ilustra o 16 HTML gerado pelo PHP quando apresenta uma noticia no seu todo cce ires 48 Ilustra o I7 Administra o das NOTICIAS eseteket a a qa Tapada a a Ee dA Da LE 50 Ilustra o 18 Edi o da catesoria de Nocas aiei par sedan E ces foi ide ca SA Et ci cu s ven dan a a 51 Ilustra o 19 Formul rio de registo Todos os campos obrigat rios est o assinalados com 53 Ilustra o 20 Janela de altera o da palavra chave password c
85. el ao utilizador comum a que possibilita a leitura da not cia no seu todo Ol a todos d p s v rias horas de trabalho consequi ze em funcionamento sistema de mensagens privadas possivel a partir de hoje receber editar colocar cm m pmm O bemp e e qm q mm mm responder apagar s suas mensagens pessoais e Claro enviar MP para todos os utilizadores registados do site Espero que seja uma fun o util que a saibam aproveitar bem Se alguem encontrar falhas de seguran a ou de funcionamento favor informar o web dev do FHEMy Community por email gadeginetcabo pt Muito obrigado e desejo de muitas horas com a plataforma PHEMyCommunity Um abra o Ruben Alves noticia lida 53 vezes Ilustra o 16 HTML gerado pelo PHP quando apresenta uma noticia no seu todo Apesar do PHPMyCommunity ser uma ferramenta que pretende substituir as p ginas em HTML est tico sem formas de interagir com os seus visitantes A not cia n o permite a inser o de coment rios P gina 48 ISMAI O 2003 a n o que seja criado um t pico no f rum de conversa porque o seu objectivo simplesmente informar unilateralmente O contador de leitura da not cia a maneira de controlar o n mero de pessoas que tiveram a curiosidade de ler mais acerca do resumo proposto A sua forma optimizada de inser o na base de dados permitiu a sua coloca o na p gina O pr ximo c digo elucida
86. em Internet Para n o parecer muito generalista o texto retornado ao administrador foi pormenorizado para evitar erros gramaticais como Utilizadores em lista de espera 0 Minuciosidade resolvida por outras aplica es com o plural entre par ntesis Dado uma maior confian a sobre no PHPEMyCommunity porque apreciando estes detalhes os utilizadores mais experientes ver o nesta plataforma uma ferramenta s lida e segura O seguinte exemplo mostra como poss vel realizar este tipo de detalhes it m pecidos gt i i ver_pedidos ver pedidos Sfrasinha lt td gt Utilizadores em lista de espera jelse Sver pedidos ver o pedido Sfrasinha lt td gt Utilizador em lista de espera if n pedidos 9 echo lt stad Utilizador em lisca de espera lt font cColor V greenv lt b 0 b gt fonc gt Jelse echo Strasinha lt font COlor redN gt lt b gt Sn pedidos lt b gt lt font gt lt a href N index php p adming amp auth a mygroup amp act ver pedidos amp g SidN gt lt font colors black gt lt u gt ver pedidos lt u gt lt a gt Como referido h pouco a altera o ou a inser o num grupo passa pela aceita o pr via do respons vel que recebe uma mensagem privada pedindo para aceitar ou n o o utilizador Todo este processo pode ser eventualmente realizado pelo dono da plataforma Todavia recomendado deixar isto ao cuidado do dirigente do grupo Deste modo a divis o de tarefa possibilita um
87. empre actual e em permanente evolu o NOTA Ca o de Equipas Para a cria o de uma nova equipa enviar uma PM para o administrador root com o Nome da Equipa e o nome de quem deve ser o lider gestor do grupo A situa o ser avaliada e processada a mais r pidamente possivel Ilustra o 40 Exemplo de aplica o do PHPMyCommunity a um caso real www airsoftportugal com forum log in EB PASS RD REGISTAR fr sondagens Em que rea gostaria de ver mais esfor o de evolu o empregue no ASPT com Co rum Relat rio do projecto PHPMyCommunity Ma li i imi as portugal noticias membros forum home noticias membros Forum gt Discuss o de mbito geral produtos artigos F rum Geral 16 11 2003 23 59 fm E 103 13 sondagens Para os aszuntos que n o cabem em Mais nenburma categoria por Srtimmm ESqQuisa PETERE Zona Iniciantes 13 11 2003 09 22 e Lugar ideal para apresenta o e ambientac de POVOS adeptos e 17 por MORPHEU Ra zolocac de quest es Variadas m q mi t gt Zona dedicada ao modding repara aos novos projectos relacionados com a modalidade Problemas Dicas e Solu es 15 11 2003 21 35 E Area rerervada a resolu o de problemas au colocacao de dicas t cnicas por Settra Custom amp Modding Aum destinado 205 projectos de armas CUStomE e a Coloca o de por Ee ROKOS apetrechos forum Armas e Armamento Hoje as 00 13 E
88. entre si 1 O include serve para chamar um documento dentro de outro documento P gina 32 ISMAI O 2003 O ficheiro main php igualmente respons vel pela mudanca de layout vista no f rum onde o lado direito desaparece para deixar mais espa o para o conte do do texto O c digo seguinte uma amostra do ficheiro main php onde podemos verificar como feita a chamada dos 5 ficheiros respons veis pela apresenta o do site lt table width 760 border 0 cellpadding 0 cellspacing 0 gt Cbr cp COlgpans 2 gt lt php include include top php gt o Rel Nena uia lt td bgcolor tFFFFFF align left valign top gt lt table width 760 border 0 cellspacing 0 cellpadding 0 gt lt tr gt lt tod align left valign top videnh T2U pPackground gix meni Polmenu gre lt php include include menu php gt pel lt td valign top widch 555 gt lt table width 100 border 0 cellpadding 5 cellspacing 0 gt lt tr gt lt td gt lt div align center gt lt php include include linker php gt eo ue lt table gt Edo lt ca widep 2 align riighe valion top backoroumnd 9ix quadros right php bo quim lt php include include right php gt e prob pre lt table gt lt TA gt S TESLE ta colspan 2Y lt php include include footer php gt POD Uria lt table gt 4 3 Organigrama da rela o entre os ficheir
89. erveur online Dispon vel na Internet via WWW URL http dev nexen net scripts details php scripts 622 visto em 15 de Setembro 2002 Relat rio do projecto PHPMyCommunity GLOSS RIO BROWSER Software que serve de cliente ao protocolo HTTP COOKIES Ficheiro texto enviado por um site ao visitante contendo informa o acerca da p gina que est a ser vista Podendo igualmente ter informa o relativa aos dados pessoais C S S Cross Site Scripting uma forma de piratear uma p gina web inserindo c digo estrangeiro e n o desejado por parte do criador original DNS Domain Name System Sistema que permite a tradu o de nomes de computadores em endere os IP HTML HyperText Markup Language Linguagem de programa o usada para a cria o de documentos hrpertextos usados na www HTTP Protocolo para transferir ficheiros de hipertexto pela Internet Precisa de um cliente http mais comunalmente denominado por Browser LINUX Mundialmente conhecido como sendo o derivado de Unix com o c digo de fonte aberto ou seja dispon vel para a rede mundial PHP Hypertext Preprocessor Linguagem de script embutida no HTML Como o c digo embutido no HTML os utilizadores n o conseguem visualizar o c digo fonte A grande parte da sintaxe foi emprestada a linguagens como o C Java e Perl SQL Structured Query Language Linguagem especializada para enviar pedidos para bases de dados UNIX Sistema operat
90. estes foruns gt Tem porary c at forum temporario 1 1 28 10 2003 21 27 isto um Forum SO para testes porgade 7 Ilustra o 29 Exemplo de categorias de f rum Tal como as outras componentes de administra o as categorias s o control veis pelo menu onde o dono da plataforma poder eventualmente editar criar ou apagar categorias de f rum A ltima op o mais pormenorizada visto que s permitido apagar categorias quando elas n o t m f runs associados medida preventiva que impede apagar uma grande quantidade de f runs e t picos por erro de manipula o Esta verifica o efectuada no ficheiro a catforum php como exp e o seguinte c digo retirado da fun o show delete it cat Sid primeiro vamos verificar se o id da categoria n o possui f runs associados depois vamos apagar a categoria caso a primeira condi o verificada sql cat forum select COUNT id forum cat as cnt from f rum where td rorum cat Sie We Sresultado cat forum mysql db query SMYSQL server bd Segl cat forum Sregisto cat forum mysqgl fetch array Sresultado cat forum s n foruns registo cat forum cnt LE m foruns 0 como o numero de f runs igual a 0 ent o vamos apagar esta categoria sql delete forum delete from forum cat where id forum cat Sid Sresultado delete forum mysql db query SMYSQL server bd sql delete forum Sresultado Categoria apagada do sistema Peles
91. figurada podendo ser alterada no ficheiro settings inc php admin FicheiroDe Administracao phphits Verificar se s directorias onde ser efectuado o envio de imagens est o com as permiss es de escrita e leitura a gfx artigos b gfx forum posts c gfx grupos d gfx news cat e gfx news im noticias f gfx outros g gfx produtos h gfx users P gina 83 Relat rio do projecto PHPMyCommunity B AP NDICE C DIGO SQL phpMyAdmin MySQL Dump version 2 2 6 t http phpwizard net phpMyAdmin t http www phpmyadmin net download page E ae das do E DE E E E do E do E sd E o do E O do E E E o E tea A N E E N E a eg EE L E E Estrutura da tabela ap DROP TABLE IF EXISTS ap CREATE TABLE ap 1d int 32 NOT NULL auto_increment ap cat int 32 NOT NULL default O nome varchar 255 NOT NULL default resumo varchar 255 NOT NULL default descricao text NOT NULL tipo varchar 15 NOT NULL default owner varchar 200 NOT NULL default preco varchar 255 NOT NULL default data dia varchar 20 NOT NULL default data_hora varchar 10 NOT NULL default gfx varchar 255 NOT NULL default PRIMARY KEY id TYPE MyISAM COMMENT Tabala dos artigos e dos produtos Extraindo dados da tabela ap Estrutura da tabela ap cat DROP TABLE IF EXISTS ap cat CREATE TABLE ap cat 1d int 32 NOT NULL auto_i
92. gar a p gina web a uma base de dados criando assim informa o din mica Criando funcionalidades apropriadas foi poss vel desenvolver uma plataforma din mica cujo conte do n o unicamente alterado como uma p gina est tica ou seja por uma s pessoa mas sim por v rias pessoas 1 3 Requisitos Para o funcionamento do PHPMyCommunity s o necess rios v rios servi os Por ser uma p gina web precisa de estar ligada a um servidor web tornando se indispens vel a instala o do m dulo PHP para correr os scripts desta plataforma Trabalhando com uma base de dados do tipo MySQL igualmente necess rio a instala o da mesma Ser opcional ter a biblioteca GD compilada com o PHP para a visualiza o do menu principal uma vez que a plataforma permite a cria o do menu da p gina com imagens din micas Todos estes requisitos precisam de ser instalados um de cada vez apesar de existirem programas na Internet que permitem a instala o de todo este software de uma s vez como por exemplo o easyphp www easyphp org 1 e 2 Z Os dois programas ser o explicados em profundeza no pr ximo cap tulo P gina 10 ISMAI O 2003 2 INTRODU O AO PHP 2 1 O que o PHP O que o PHP A p gina oficial do PHP apresenta a seguinte defini o PHP is a widely used general purpose scripting language that is especially suited for Web development and can be embedded into HTML simplesmente u
93. har quando se trata de criar dom nios virtuais adi o e remo o de m dulos etc A configura o do apache feita unicamente atrav s de um ficheiro httpd conf Tal como o PHP disp e de uma grande comunidade de utilizadores disposta em prestar ajudar caso seja necess rio O grande sen o do Apache ser possivelmente o seu car cter linha de comandos que sem desvalorizar as suas qualidades pode em alguns casos bloquear os utilizadores menos experientes f g Apache Microsoft Ear li AESA gre JOK K Wo D uD O uo SS e fs I OD AK OD DD a TT O TA S O t G ed dog et CS O SD ED ED ED TO ERRETA EEEE d A 24 A EEE mm i mi d ei d ei d e d i d sed cdr red l Edo Edo do DD Ed Cd s Cs do tt ks f brag e m habe LA ge fh mg if L ad ff az tt t tt ett e trt k rt e rt k rt k rt Ilustra o 2 Partilha do mercado de servidores HTTP desde 09 95 at 09 03 P gina 14 ISMAI O 2003 2 4 2 MySQL MySQL www mysql org um verdadeiro servidor de base de dados Multi utilizador e multi threaded consegue gerir v rios pedidos SQL e v rias liga es ao mesmo tempo MySQL uma configura o cliente servidor que consiste num demon servi o mysqld SQL Structured Query Language a linguagem de base de dados mais usada no mundo SQL uma linguagem estandardizada que permite o armazenamento a actualiza o e o acesso informa o Permite re
94. iado com administrar Consoante os privil gios ter no seu menu determinadas reas de imagens din micas identificado para lhe mostrar as componentes sobre as quais ele pode administra o O uso deste tipo de menu possui vantagens realmente valiosas ma sumo a Rs 1 so uma vez que j n o preciso digitar o URL no browser constrangedor para o administrador nem uma hiperliga o vis vel por todos ao clicar pede outra identifica o ou retorna uma mensagem a informar que n o tem privil gios P js po 2 2 Tamb m deixou de ser necess rio o uso de protec o pelo htaccess que pouco seguro quando mal usado Poderia tornar se num processo complexo a utilizar para um webmaster n o entendido na mat ria 3 1 6 Sondagem Conhecer a opini o das pessoas que visitam s p ginas web era sondagens unicamente poss vel atrav s de envio de e mail directamente ao webmaster o O que acha do que implicava que o visitante possu sse uma conta de correio electr nico e RASULI sondagens disponibilidade para abrir o seu cliente de e mail escrever enviar etc no caso 1 Bor mais simples Agora com a implementa o mais generalizada das sondagens SERIE poss vel em tempo real receber informa o ou opini o sobre quem nos visita ido P Clique no item para Esta funcionalidade t o importante para o webmaster que o votar PHPMyCommunity integra um complexo sistema de sondagens descrito num Ilustr
95. id chave prim ria o identificador do contador hits valor total das visitas que o site obteve log esta tabela armazena todas as visitas conforme a configura o ira guardar um n mero definido pelo dono da plataforma na base de dados rowid chave prim ria o identificador da visita nico e auto incrementado P gina 29 Relat rio do projecto PHPMyCommunity P gina 30 ip ip do visitante host este campo armazena o nome do computador que realizou a visita browser nome do navegador usado para efectuar a visita language l ngua do visitante valor recuperado segundo dados do navegador referrer p gina de origem para saber se veio de outra p gina link directo etc page p gina a ser vista no momento da visita tstamp tempo em segundos deste do 1 de Janeiro 1970 ISMAI 2003 3 3 2 Esquema relacional forum forum posts membros ofiline pedidos grupos config regiao useronline news cnategorins news poll respostas poll comentarios I Em di comentarios categorias menu naii P gina 31 Relat rio do projecto PHPMyCommunity 4 ESTRUTURA DO PHPMYCOMMUNITY 4 1 Index php Com as configura es dos servidores web Apache IIS o primeiro ficheiro a ser chamado o index html neste caso como se possui o m dulo PHP instalado e o servidor web devidamente configurado podemos definir o primeiro ficheiro como sendo o index php Com a fun o include
96. idades principais do membro data dia membros offline dia em que o registo foi conclu do data hora membros offline hora do registo grupos Todos os grupos est o armazenados nesta tabela inclu do informa o dispon vel na p gina descritiva de cada um P gina 24 id chave prim ria identificador do grupo nico e auto incrementado id grupo identificador do distrito relacionando o grupo com uma zona geogr fica id admin grupo identificador do administrador do grupo nome grupo este campo armazena o nome do grupo local grupo nome da localidade onde est sedeada o grupo data dia dia de funda o do grupo editado pelo respons vel data mes m s de funda o do grupo editado pelo respons vel data ano ano de funda o do grupo editado pelo respons vel website se dispon vel a fun o deste campo armazenar o site pessoal do grupo descricao conte do da descri o do grupo contactos conte do dos contactos do grupo gfx caminho completo da raiz da p gina at a imagem relativa ao avatar do grupo ISMAI O 2003 pedidos grupos qualquer pedido para pertencer a um grupo seja na inscri o ou a posteriori estar temporariamente nesta tabela at o pedido ser aceite ou rejeitado pelo administrador do grupo id pedido chave prim ria identificador do pedido nico e auto incrementado id user pedido identificador do utilizador que efectuou o pedido id grupo pedido identificado
97. instalado ou que n o o t m instalado s o uma minoria que apesar de representar uma taxa nfima dos visitantes ser mesmo assim poss vel usufruir de todas as funcionalidades Estas duas aplica es em Flash s o unicamente um acr scimo uma mais valia para o utilizador porque existem outras hiperliga es para que possa efectuar o login identifica o na p gina ou utilizar a p gina principal de pesquisa 3 1 5 Menu principal O menu de uma p gina portal ou qualquer denomina o de um site web a parte mais importante porque ser o ponto de entrada do s tio web No PHPMyCommunity o menu uma das componentes mais vistas Ele omnipresente em todo o site Foi por isso que houve a preocupa o em usar uma formata o clara simples e funcional A n vel t cnico fez se uso da biblioteca GD para a forma o dos itens do menu preparando assim a plataforma a cria o do meu menu personalizado permitindo a elabora o de uma infinidade de itens A cria o do menu usando esta t cnica permite que as letras fiquem iguais em todos os sistemas mas em contrapartida torna o processamento da p gina um pouco mais lento para cada carregamento da p gina o motor PHP tem que processar e criar uma imagem por item e obriga necessariamente ao www macromedia com Cascading style sheet s o estilos de formata o pr prios para o c digo HTML 1 Megabyte ou 1MB poderia caber numa disquete 1 44 Hoje em dia 1
98. isas mundiais altavista 37 com yahoo google e outros ao abrir uma p gina fazem a indexa o do conte do da mesma guardando o caminho completo para chegar ao documento que por sua vez podem ter caminhos muitos grandes ex www omeusite com utilizador frames documento topo html Ao aparecer na listagem dos motores s mostra este documento HTML n o apresentando o menu da p gina Com os Os quadros do ingl s frames s o uma forma de construir p ginas onde v rios documentos HTML s o chamados em v rios s tios para formarem a apar ncia final da p gina 2 A cache de um navegador Internet Explorer por exemplo a atribui o de um certo espa o em disco para armazenar a informa o imagens folhas de estilo etc de p ginas visualizadas sendo assim desnecess rio o descarregamento pr xima visita P gina 35 Relat rio do projecto PHPMyCommunity pseudo frames isto n o acontece pois o documento est sempre no index php que constr i sempre o menu principal do site O c digo transcrito um excerto do ficheiro linker php que exemplifica perfeitamente o cuidado no tratamento das vari veis do URI E a partir deste ficheiro que feita toda a constru o din mica do resto do site No pr ximo cap tulo iremos ver quais s o as funcionalidades e as suas componentes administrativas chamadas a partir do linker php linker php e S Ceri a news Jencitde tl o rncliude nokacaias prega elseif
99. ivo que foi desenvolvido para ser usado por v rias pessoas ao mesmo tempo Multi user A maior parte dos servidores possuem sistemas Unix ou derivados Linux URL Uniform Resource Locator a designa o que se d ao nome de dom nio de DNS Exemplo www omeusite com um URL ver DNS e URN URI Uniform Resource Identifier Morada web de um dado documento dentro de um URL Exemplo www omeusite com docs Howto html um URL dentro de um URL P gina 96 NDICE REMISSIVO 3 IE 6 0 q RA RD EEN RS bel ket 36 A ES aa Eos E REAR NR NPR RI RD DR 36 Apache pisando n t ste as 6 13 14 15 20 33 AP AME a ER NRP E DRI ED DATE RN 13 B ackground TD E ssa ara sq 18 84 Brad Bulocr as a o a 14 DOWO a ERR RD ON RR OND NR 12 C C 7 13 14 19 37 95 96 CEDO E N sa ERA DES H T MENTESEN E 37 Caixas de visualizac o ssssssss 22 cate goras INCA serea e a 30 cate conas MEM Sero pasa a 27 Cold FU l s 14 computa o gr fica 2D 46 CONT Ooae RR RNP TER 30 CONLACIOS eaen a E ERES 30 COUNTE zet se e E a 31 D dB IE natas a A 13 CCO ana a Da ET 16 dl 29 E CASYD T EE E uso cnagagiairaduiizana 11 CAMA E E g tj t gg be B J z sT N 64 F Flash rormannen aa 43 FORUNS CAL o oe a 28 LORU POSTS nos RD telek lls 28 ISMAI O 2003 G E D a aaa a 8 11 19 20 45 46 83 GMP perronen Aa 18 ONU erat 14 15 002 lEs e E E ES SE RHEZEB 36
100. la mp DROP TABLE IF EXISTS mp CREATE TABLE mp id int 32 NOT NULL auto_increment id_remetente int 32 NOT NULL default 0 id_destinatario int 32 NOT NULL default 0 mp assunto varchar 255 NOT NULL default mp_msg blob NOT NULL mp data varchar 20 NOT NULL default mp hora varchar 10 NOT NULL default mp lida char 1 NOT NULL default 0 PRIMARY KEY id nivel ordem VALUES g 20487 O 48 10 1 24 3 912 0 56 2 64 Fo 32 5 6 4 2048 0 2048 0 LLJ TYPE MyISAM COMMENT Mensagens privadas entre os utilizadores t Extraindo dados da tabela mp E S pe Pa poli pe e e pe po e pe e e pe pa ep a e fe pe Sa e a Estrutura da tabela news DROP TABLE IF EXISTS news CREATE TABLE news id int 32 NOT NULL auto_increment campo nome varchar 200 NOT NULL default campo email varchar 200 NOT NULL default campo sujeito varchar 40 NOT NULL default campo msg blob NOT NULL data dia varchar 20 NOT NULL default data hora varchar 10 NOT NULL default 1d cat news varchar 250 NOT NULL default news gfx varchar 250 NOT NULL default news resumo varchar 250 NOT NULL default visitas int 32 NOT NULL default 1 PRIMARY KEY ad TYPE MyISAM Extraindo dados da tabela news P gina 90 ISMAI O 2003 Estrutura da tabela
101. lada em 18 47 dos servidores muito frente da vers o 4 3 2 segundo Active Server Page sistema similar de cria o de p ginas din micas desenvolvido pela Microsoft A ZEND uma empresa fundada pelos criadores do PHP4 e do ZEND 1 0 que est neste momento frente do desenvolvimento do PHP e do motor de ZEND Engine Mais informa es em www zend org Pode encontrar mais informa es sobre o desenvolvimento e o seu c digo fonte em http www php net downloads php t Aplication Programming Interfaces Fornece ao programador uma interface entre a linguagem de programa o e um n vel mais baixo de utilidades e servi os A principal tarefa de uma API a tradu o de uma lista de par metros num formato e a sua interpreta o para outro 5 Outubro 2003 fonte News letter www nexen net P gina 12 ISMAI O 2003 lugar e finalmente em terceiro lugar a 4 2 3 Em Fran a 36 61 das p ginas Internet utilizam o PHP o que a coloca a 1 61 ponto acima da m dia mundial que se encontra nos 35 2 4 PHPMyCommunity PHP Apache MySQL porqu Esta plataforma foi desenvolvida seguindo a linhagem do software livre A filosofia GNU em grande expans o com a apari o do GNU Linux em 1994 contribui para a apari o de ferramentas gratuitas tais como Emacs editor de texto Gimp editor de editor de imagem Wine emulador de aplica es Windows Mozzila browser Internet Xwindows ambiente gr fic
102. lt idade varchar 250 NOT NULL default site varchar 250 NOT NULL default assinatura varchar 250 NOT NULL default O utilizador mto discreto ultimo ip varchar 20 NOT NULL default numero post varchar 250 NOT NULL default 0 nivel int 8 NOT NULL default 3 localidade varchar 200 NOT NULL default id regiao int 100 NOT NULL default 0 id grupo int 32 NOT NULL default 0 recup questao varchar 255 NOT NULL default recup resposta varchar 255 NOT NULL default PRIMARY KEY id UNIQUE KEY nome nome UNIQUE KEY id id FULLTEXT KEY avatar avatar TYPE MyISAM Extraindo dados da tabela login INSERT INTO login id nome username password email hobbies icq msn avatar data dia data hora Idade site assinatura ultimo ip numero post nivel localidade id regiao id grupo recup guestao recup resposta VALUES 1 administrador root gaBzVUg5grDbg tt Ped Veto da e gtxz setrszr ot roots TIIZIAZOS O COOSDILF GOD TT Ixbr Entidada Administrativa lt br gt 0 4095 5 O N o poder recuperar a palavra chave do Croot pass AEE ia non boa Ca CA Dn Dn E Se Meet E Meet E Dn E Dn E DA E DA DM DA DA A Estrutura da tabela membros_offline DROP TABLE IF EXISTS membros offline CREATE TABLE membros_offline id
103. ma Para p r em funcionamento os privil gios os itens do menu tamb m tinham que possuir n veis Um respons vel dos artigos ter no m nimo o seguinte c digo bin rio 010000000011 1027 em decimal Para respeitar a integridade e a seguran a da administra o o menu e toda a parte administrativa deste item gest o dos membros ter que ter o c digo bin rio 010000000000 1024 em decimal para que possam coincidir os dois c digos bin rios C cigo binario do ucilizadors 0110000000011 C digo bin rio do item do menu 010000000000 Resultado da compara o bin ria 010000000000 Como corresponde pelo menos 1 bit ent o os c digos coincidem ou seja o utilizador respons vel pela rea de administra o a qual ele pretende aceder Este sistema apresenta uma elevada seguran a no que diz respeito aos direitos dos utilizadores pois nunca sobrep e os privil gios de um administrador ao outro Ao colocar todos os bits em 1 o respons vel das sondagens ficaria ent o com o seguinte c digo bin rio 000000011111 31 em decimal o que nunca chega a ser superior ou igual ao c digo m nimo do pr ximo administrador respons vel dos produtos 000000100000 ou 32 em decimal este c digo representa o privil gio mais baixo e improv vel do administrador dos produtos na medida em que n o integra os direitos do visitante e do utilizador registado P gina 39 Relat rio do projecto PHPMyCommunity 5 FUNCIONALIDADES
104. ma linguagem de programa o que corre num servidor sob forma de script ou seja n o preciso compilar o c digo para ele funcionar O script PHP pode ser executado em qualquer plataforma e pode operar de v rios modos modo gr fico PHP GTK para criar aplica es gr ficas modo consola e modo embebido no documento HTML referido na da defini o do www php net Neste ltimo caso precisa de correr pelo servidor web que vai recorrer ao motor do PHP para processar o c digo e assim retornar lhe a informa o que por sua vez ser enviada ao cliente Esta Interac o cliente servidor est dividida em 4 passos l O cliente browser envia pela Internet Intranet os pedidos de visualiza o de uma p gina pelo servidor web 2 O servidor vai processar o c digo HTML Quando deixa de ser HTML e passa a ser PHP envia a Informa o ao m dulo PHP para que este ltimo possa fazer o parse processamento do script l Ilustra o l Funcionamento do PHP 3 Quando finalizado este passo o m dulo envia o resultado para o servidor 4 E finalmente o servidor envia o c digo completo em formato HTML para o cliente atrav s da Internet Intranet A comunica o com o PHP foi completamente transparente para o utilizador final 2 2 Hist ria do PHP A hist ria do PHP data de 1994 quando Rasmus Lerdorf concebeu a ideia de um script dentro do HTML que iria ser processado do lado do servidor Em 1995 lan ou a ve
105. mitindo aced las directamente ou ent o dirigir se segunda p gina listagem de todas as not cias dentro de uma categoria Permitindo assim ao utilizador ter a percep o de tudo o que foi dito sobre o assunto desde o lan amento do portal bvio que as not cias apagadas do sistemas n o constar o nesta listagem Mario Dominguez Todas as ltimas noticias sobre o PHP e afins PEAR MING GD MySQL et php GTK 08 2003 az 19 38 PHP STK is an extension for PHP programming language that implements language bindings for 5TEK toolkit It provides an object oriented interface to GTK classes and functions and greatly simplifies writing client side cross platform GUI applications gt noticia completa php 4 3 1 03 2003 as 0032 The PHP Group today announced the details of a serious CGI vulnerability in PHP version 4 3 0 A security update PHF 4 3 1 fixes the issue Everyone running affected version of PHP as CGI are encouraged to php upgrade immediately gt noticia completa Ilustra o 15 Resultado obtido ap s ter seleccionado uma categoria de not cias A maneira como apresentada a categoria e as not cias correspondentes igual listagem efectuada na primeira p gina onde recuperado as ultimas x not cias uma vez que ambas usam a fun o chamada write noticias k nPerPage func news php que como mostra o seguinte c digo P gina 47 Relat ri
106. ncrement nome varchar 255 NOT NULL default descricao text NOT NULL tipo varchar 15 NOT NULL default PRIMARY KEY ad TYPE MyISAM COMMENT Tabala das categorias dos artigos e dos produtos Extraindo dados da tabela ap cat CEEE EEE EEE EEE a ED Ds Estrutura da tabela ap_comentarios tt DROP TABLE IF EXISTS ap comentarios CREATE TABLE ap comentarios id int 32 NOT NULL auto_increment id ap int 32 NOT NULL default 0 corpo text NOT NULL owner varchar 200 NOT NULL default data dia varchar 20 NOT NULL default data hora varchar 10 NOT NULL default PRIMARY KEY Mv TYPE MyISAM COMMENT Tabela dos comentarios dos produtos e dos artigos Extraindo dados da tabela ap comentarios P gina 84 ISMAI O 2003 Estrutura da tabela categorias menu DROP TABLE IF EXISTS categorias menu CREATE TABLE categorias menu id int 32 NOT NULL auto_increment nivel varchar 255 NOT NULL default 0 posicao int 32 NOT NULL default 0 nome cat varchar 14 NOT NULL default PRIMARY KEY TG TYPE MyISAM Extraindo dados da tabela categorias menu INSERT INTO categorias menu id nivel posicao nome cat VALUES 54 2 5 admin 45 1 1 menu 59 ES 90 Ta f rum 59 TSL 9e Aus M L LAaST s Estrutura da tabela categorias news DROP TABLE IF EXISTS categ
107. ndo assim todo o c digo HTML que possa estar presente Existem outras formas de proteger uma p gina e tal como foi recomendado pelo orientador os pedidos SQL s v o pesquisar em campos necess rios Assim quando se pretende o nome de um determinado ID em vez de escrever c digo desta forma SELECT FROM login WHERE id 13 temos SELECT id username FROM login WHERE id 13 Poupando recursos base de dados visto que n o tem tantos campos a procurar e claro n o recolhe a informa o de outros campos que poderiam ser vitais palavra chave por exemplo 4 6 Sistema de privil gios Permitir um sistema de administra o onde os privil gios dos utilizadores fossem independentes um desafio muito importante porque toda a seguran a dos dados est em causa Desenvolveu se um poderoso sistema de gest o de privil gios que representa o n vel de administra o de cada um dos utilizadores Inicialmente teve se em mente elaborar os privil gios hierarquicamente ou seja o utilizador registado tinha o n vel 1 o gestor de not cias tinha o n vel 2 gestor de artigos o n vel 3 e assim sucessivamente at ao administrador final que teria o n vel 10 Este sistema de normaliza o de direitos implica que o gestor de artigos teria privil gios de administra o de not cia tal como para o resto dos administradores Foi ent o desenvolvido com a ajuda do Professor Nuno Flores do ISMAIL um sistema baseado em bits ond
108. ndo dados da tabela regiao INSERT INTO regiao id 2 Braga hp 3 Vila Real 4 Bragan a 97 POTTO 6 Aveiro 7 8 9 regiao VALUES 1 Viseu Guarda Coimbra Castelo Branco Leiria Santar m Portalegre Lisboa Set bal ro ra Beja Faro Madeira Acores Africa Macau Brasil Internacional Estrutura da tabela useronline DROP TABLE IF EXISTS useronline CREATE TABLE useronline timestamp int 15 NOT NULL default ip varchar 40 NOT NULL default FILE varchar 255 NOT NULL default PRIMARY KEY timestamp KEY ao Ao ds KEY FILE FILE TYPE MyISAM HO Extraindo dados da tabela useronline P gina 92 e dos users que ja votaram regi es de port Viana do Castelo C AP NDICE IMAGENS FINAIS AIRSOFT portugal vd home noticias membros forum pro dutos artigos sondagens pesquisa downloads links info log in n ticias membros Bem vindo ao Ailrsoftportugal com O projecto 45PT com tem como objectivo a uni o de recursos e informa es teis para toda a comunidade do Airsoft Portugu s Este servi o on line abrange diversas ferramentas de comunica o e conv vio e a administra o seccionada com in meros contribuintes seleccionados e espalhados por todo a pais transforma este website num a entidade s
109. nome user avatar Sdata dia Sregisto nome user data dia l Ssite Sregisto nome user site Sassinatura Sregisto nome user assinatura Slocalidade Sregisto nome user localidade EFI 5 6 Artigos produtos downloads e links Usando a mesma base para estes quatros m dulos s o necess rios dois ficheiros ap php para os artigos e os produtos e dl php download e links onde o c digo gerado semelhante aos dois A principal diferen a reside no primeiro ficheiro que aceita o uso de imagens A coloca o destes m dulos fulcral para o desenvolvimento de uma comunidade uma vez que a principal fonte de conte do disponibilizada para os seus visitantes Baseando se nas plataformas autom ticas tipo PHP Nuke ou POST Nuke referidas anteriormente onde ambas possu am um sistema de artigos produtos downloads e links o PHPMyCommunity levou a cabo sistemas similares constru dos de ra z Apresentando as mesmas funcionalidades realizada uma listagem das categorias com a sua descri o onde dentro de cada uma est presente todos os seus itens relativos Cada objecto possui um resumo que est colocado por baixo do t tulo Caso existam coment rios ser o colocados depois do t tulo P gina 71 Relat rio do projecto PHPMyCommunity Cilindros Folini Malossi Hebo Top Performances etca Dos melhores cilindros para estrada aos melhores para circuito Polini Evolution Z0cm 5 coment rios Polini
110. nte id destinatario mp assunto mp msg mp data mp hora mp lida values Sid remetente Sid destinatario S mp assunto Smp msg data dia data hora 0 Sresultado send mp mysql db query SMYSQL server bd Ssgl send mp 5 5 F rum de conversas Baseado no f rum Vbulletim Board foi analisado o c digo HTML para depois criar o c digo PHP que poderia ter originado este resultado O f rum do PHPMyCommunity tem um resultado similar mas o c digo PHP foi todo escrito de ra z Sendo imposs vel a an lise do c digo fonte trata se de um f rum comercial que infelizmente n o est dispon vel na Internet O f rum do PHPMyCommunity n o possui tantas funcionalidades como o Vbulletim Board porque primeiro n o se justifica e segundo porque foi concebido e desenvolvido para ser t o completo como uma p gina web tradicional Existem sites na Internet que o adaptaram com m dulos externos para que possa suportar uma base de dados de produtos imagens e outros ex http www fcex team com forum index php Baseando se no f rum original o PHPEMyCommunity permite a cria o de v rias categorias de f rum com uma breve descri o e dentro de cada uma outra quantidade infinita de f runs que por sua vez s o constitu dos por uma infinidade de t picos e respostas associadas Os t picos 2 x a R ou threads e as respostas s podem ser colocadas por utilizadores identificados 5 5 1 Listagem das categorias P
111. nto da not cia campo msg armazenando todo o corpo da not cia data dia data da publica o data hora hora da publica o id cat news identificador ligando a not cia a sua categoria news gfx caminho completo da raiz da p gina at a imagem relativa a not cia news resumo texto resumido para dar uma percep o da not cia visitas valor representativo do n mero de vez que a not cia foi lida categorias news tabela integrando 5 campos respons veis pelo armazenamento das categorias de not cias Cada categoria pode conter uma infinidade de not cias P gina 25 Relat rio do projecto PHPMyCommunity id cat new chave prim ria identificador da categoria de not cia nico e auto incrementado categoria news nome da categoria de not cia desc cat news este campo armazena a descri o da categoria id news admin 1d do utilizador relativo ao respons vel pela publica o das not cias cat news gfx caminho completo da raiz da p gina at a cone da categoria useronline tabela respons vel por contar o n mero de utilizadores ligados ao f rum no momento da sua visualiza o timestamp chave prim ria armazena o tempo em segundos deste 1 1 1970 dos visitantes ip disponibiliza o IP do visitante durante a visualiza o do f rum FILE campo respons vel pelo armazenamento do nome do ficheiro a ser lido pelo servidor poll perguntas tabela com as perguntas para as sondagens Contem v ria
112. ntos Pode se no entanto fechar o projecto terminando todas funcionalidades inicialmente previstas n o esquecendo todos os pequenos problemas que ir o ser resolvidos com o tempo e medida que ir o surgir Com a entrega deste documento ser terminada a primeira vers o da plataforma PHPMyCommunity v1 0 6 1 Objectivos atingidos Pode se dizer que o grande objectivo concretizado foi sem d vida a assimila o desta nova forma de programa o orientada para a Internet A cria o de p ginas din micas implica um vasto leque de conhecimentos que progressivamente foram assimilados Em toda a fase do projecto esteve presente a aprendizagem da sintaxe melhorias de c digo ciclos e muito mais sempre na ptica de quem poder um dia tentar melhorar a plataforma A n vel de mat ria concretizada s a integra o da plataforma com o layout com a possibilidade de um futuro sistema de layout din mico foi um desafio importante e que de uma forma geral foi bem concebido e realizado Cada um dos m dulos foi um objectivo a atingir um por um foram escritos sempre com duas perspectivas optimiza o e seguran a O inconveniente destes objectivos a exist ncia de c digo que pode parecer repetitivo pois trata se de c digo semelhante mas sempre com alguma diferen a Esta redund ncia muito encontrada ao n vel da seguran a onde se repete o c digo de verifica es por exemplo dos privil gios ou exist ncia de um ID na b
113. ntre outras Foi colocado no pacote final duas imagens em formato Photoshop PSD e em formato JPG e GIF para que possam ser utilizadas noutros editores de imagem Editores como GIMP Linux ou Paint Shop Pro conseguem igualmente abrir ficheiros do Photoshop 3 1 3 Linha interm dia Poderia designar se por atalhos ou acesso r pido Esta linha contem as hiperliga es para as componentes consideradas mais importantes not cias membros e f rum no mbito de uma comunidade Uma pequena aplica o flash permite colocar uma palavra para pesquisar em todo o site Segundo o Jakob Nielsen o logotipo e o bot o de pesquisa s o os dois elementos mais importantes na p gina inicial O primeiro identifica o s tio o segundo permite lan ar uma pesquisa no site Esta possibilidade aconselhada pelo Nielsen colocando esta op o no topo da p gina porque considerada ergon mica e f cil de acesso limitando o trabalho do visitante O ltimo cone no extremo direito deste menu secund rio possibilita ao visitante identificar se ou encerrar a sua sec o noticias membros forum O Photoshop uma ferramenta de desenho matricial comercializado pela Adobe www adobe com que permite retocar qualquer tipo de imagem Este software um dos mais usados mundialmente nas empresas de design e ao n vel particular P gina 17 Relat rio do projecto PHPMyCommunity 3 1 4 Identifica o e mensagens privadas O sistema
114. o e claro a Kernel c rebro do Linux O Apache o servidor gratuito usado em 43 dos servidores mundiais como j foi referido o PHP e o MySQL s o tamb m softwares livres Estes pequenos projectos tornaram se ao longo dos anos grandes softwares valores certos de seguran a fiabilidade e robustez O Trio PHP Apache MySQL a melhor combina o poss vel para programar em PHP porque apesar de ter sido desenhado para funcionar com uma grande variedade de servidores web e servidores de base de dados foi sem d vida optimizado para ter melhores resultados com o Apache e o MySQL Em toda a comunidade web sites espec ficos com programas completos escritos em PHP utilizam sempre por defeito este trio que devido s suas capacidades consegue rivalizar com a Microsoft Quando se trata de linguagens de programa o do lado do servidor ASP JSP Cold Fusion Python todas elas fazem basicamente o mesmo interagem com uma base de dados relacional com um sistema de ficheiro e com um servidor web Como sugere o livro de Jay Greenspan e Brad Bulger o que realmente importa o tempo que se vai demorar para concretizar aquilo que se precisa com o m nimo esfor o poss vel No caso do PHP foi mesmo essa a vantagem que mais lhe valeu pois assemelha se a linguagens muito comuns C perl Java etc o que proporciona uma enorme fonte de potenciais programadores PHP Um dos pontos que lhe permitiu ter esta ascens o vertiginosa foi
115. o do projecto PHPMyCommunity PHP faz uma diferencia o entre as not cias com ou sem imagem Esta demarca o realizada atrav s de duas fun es que produzir o um c digo HTML diferente aproveitando ao m ximo o espa o escrevendo noticias por categoria function write noticias Sk nPerPage include conitig papo Ssql write noticias select Ta campo sujeito campo msg data dia data hora news gfx id cat news news resumo from news where id cat news Sk order by id limit SnPerPage Szesultado wrice noticias LE mysql dh query Sresunltado wrice noticias while S id Sregisto write noticias d campo_sujeito registo_write_noticias Scampo msg Sregisto write noticias Sdata dia Sregisto write noticias Sdata hora Sregisto write noticias Snews gfx Sregisto write noticias Sid cat news Sregisto write noticias Sregisto write noticias mysql fetch array Rise r SMYSQOL server bd sql write noticias Sresulcado wrice noi eras Ml cameo s ujeitov Peampolmss ERidara dra ceara nhora s news gix id cat news Snews resumo Sregisto write noticias news resumo if Snews gfx write noticia sem gfx Sid Scampo sujeito Sdata hora news resumo else campo_msg data_dia write noticias com gfx Sid campo sujeito campo msg data dia Sdata hora news gfx Snews resumo E finalmente a terceira p gina vis v
116. o simples facto de ser f cil de programar e segundo os autores referidos h pouco o PHP tem uma sintaxe superior ao ASP e JSP Sem falar do facto do PHP ter uma licen a GNU ou seja trata se de um produto cuja utiliza o feita gratuitamente o que n o acontece com o ASP l A licen a GNU toda a sua filosofia e conceitos de liberdade inform tica em www gnu org Reac es da palestra na Faculdade de Engenharia da Universidade do Porto pelo criador da licen a GNU o Richard Stallman publicado na Gildot org http www gildot org article pl sid 03 10 19 2212245 amp mode thread Fonte www apache org 3 Sites como www hotscripts com http www phpapps org ou http php resourceindex com MySQL PHP Database Applications Edi es M amp T Books ebook version P gina 13 Relat rio do projecto PHPMyCommunity 2 4 1 Apache O servidor http Apache um projecto de Apache Software Foundation www apache org iniciado em Mar o 1995 Disp e de in meras vantagens tais como f cil de usar modular r pido em constantes melhorias dispon vel em v rios sistemas operativos e acima de tudo gratuito Desde 1995 conhece um franco sucesso e hoje l der deste tipo de servi o com 63 do mercado mundial ver ilustra o 1 num universo de 43 700 759 p ginas O servidor web apache do mais simples que possa existir Apesar de precisar de alguns conhecimentos em inform tica torna se muito f cil de trabal
117. om forum where Lo forum SLON W Sresultado cat forum mysal db query SMYSQL server bd Ssql cat forum e Sresultacdo cat fForiml Sregisto cat forim mysgl treten array Sresultado cat forum Sn forum registo cat forim 1d forum cat nivel forum Sregisto cat forum nivel forum P gina 69 Relat rio do projecto PHPMyCommunity Depois verificado para cada um dos poss veis direitos a comprova o das permiss es tr align left vi valion N copN gt lt td gt Responsavel dos membros lt td gt lt T gt 908 if nivel forums1024 Scheck membro CHECKED echo lt input type N checkbox name check membros value 1 Scheck membro gt lt Tal SE gt 5 5 3 Listagem de um t pico A visualiza o de um t pico realizada pela primeira mensagem colocada seguida de todas as suas respostas Para simplificar o seu m todo de visualiza o n o permitido um maior n mero de ramos ou seja n o se pode retorquir a uma resposta entrando assim num sub t pico Este tipo de arquitectura vis vel em www gildot org Cada resposta tem informa o vari vel visto que consoante os privil gios novas informa es tornar se o vis veis O seu modo de visualiza o b sica apresenta os seguintes dados alcunha do membro data hora t tulo caso existe e assinatura Tal como na listagem dos f runs a visualiza o por p ginas tamb m est dispon vel Caso a identifica o seja verificada
118. or FTP ou outro meio j est conclu da 1 cd o que o direccionar para a sua conta pessoal 2 cd public html ou www depende do servidor mas ter que se colocar num sitio vis vel pela Internet 3 tar zxf PHPMyCommunity tar gz criando assim uma pasta chamada PHEMy Community com todos os ficheiros PHP no seu interior 4 cd PHPMyCommunity vai ao interior da directoria 5 vi config php vi um editor de texto poder eventualmente utilizar o emacs pico nano ou qualquer outro 6 No config php ter que alterar as vari veis para liga o a base de dados e localiza o do index php em rela o ao seu site neste caso n o colocar um no final http www omeusite com account PHPMyCommunity Poder eventualmente efectuar outro tipo de modifica es relativas ao n mero de not cias por p gina menu do site em GD ELC as 7 Fim a plataforma j est funcionar Ter que identificar se na p gina usando o login root com a palavra chave pass E aconselhada a mudan a imediata da sua senha na rea pessoal Em Windows o modo de instala o id ntico alterando o pormenor de extrac o do documento 1 Coloca o na ra z da sua conta extrac o com winzip ou winrar winace etc 2 Edi o do config php tendo o cuidado de alterar as mesmas vari veis do que no modo de instala o em Linux Com a finalidade de ser o mais simples poss vel aconselha se o uso de um gestor
119. orias news CREATE TABLE categorias news 1d cat news int 32 NOT NULL default 0 categoria news varchar 25 NOT NULL default desc cat news varchar 80 NOT NULL default 1d news admin int 32 NOT NULL default 1 cat news gfx varchar 250 NOT NULL default PRIMARY KEY id cat news TYPE MyISAM Extraindo dados da tabela categorias news E E E E SD ES E SE S E A E A A ES E SDS S E E E S E E RS E S N E PIE SS SD SE SE Estrutura da tabela config DROP TABLE IF EXISTS config CREATE TABLE config nome do site varchar 200 NOT NULL default welcome varchar 255 NOT NULL default welcome msg blob NOT NULL welcome ass varchar 26 NOT NULL default PRIMARY KEY nome do site TYPE MyISAM Extraindo dados da tabela config INSERT INTO config nome do site welcome welcome msg welcome ass VALUES PHPMyCommunity T tulo da janela O que ser amp gaacute entrar numa loja e n amp atilde o ser capaz de identificar imediatamente r n que tipo de loja amp eacute e que tipo de produto vende lt p gt Nrin lt p gt Agora este aspecto aplica se igualmente amp agrave p amp aacute gina de entrada de r n qualquer site seja ele comercial ou n amp atilde o lt br gt irin A identifica amp ccedil amp atilde o dos objectivos amp eacute primordial os visitantes r n t amp ecirc m que entender em muito pouco tempo o tipo de p amp aacu
120. os do PHPMyCommunity Legenda sobre o documento Estrutura do documento final Contactos Auxiliares presentes em todo o site F rum Sondagens Identifica o registo Motor de pesquisa Not cias Sec o membros Artigos produtos Download Links Administra o P gina 33 Relat rio do projecto PHPMyCommunity clean html php upload php Mn EI Estrutura normal top php menu php right php footer php linker php func right php site stats php scroll news php right sondagens php administra o a contactios php a cainews php a membros php a mygroup2 php a cainews php upload php update php P gina 34 Index php config php navigation php template php online php Estrutura f rum footer php linker php M dulos de funcionalidades interligados com o linker php func news php func member php noticias php bi utilizador php bi utilizador offline php a ap php a cat forum php mostra grupos php a dl php a forum php listar alfabeticamente php a poll php a mygroup php ut mesma regiao php a site php a noticias php procura utilizador php a di php a forum php lista grupos php bindec php ap php verify php admin php ISMAI O 2003 4 4 Constitui o da estrutura Depois dos dois ficheiros do lan amento do site index php e main php s o chamados outros ficheiros para constr
121. p como demonstra o seguinte c digo Sd 2M imelude fumetions fume cigne pono p Sid session S SESSION session id username s Suser session SESSIONI session username at isset Sid session 1 esquerda com identificacao Sid session Suser session else esquerda sem identificacao gt As duas fun es respons veis por gerar o c digo HTML encontram se no ficheiro func right php log in log in root EEE RE E E E Ler mensagens rriuadasz Ilustra o 14 Resultado obtido ap s identifica o com mensagem privada pendente 5 2 Sistema de not cias O Sistema de not cias permite ao utilizador uma visualiza o das not cias divididas em categorias com a possibilidade na parte de administra o de colocar uma infinidade destas Dentro das categorias a apresenta o feita sob forma de lista com as ltimas not cias colocadas no site este limite configur vel pelo administrador no ficheiro de configura o do portal config php Se a vari vel nPerPage for igual a 3 a p gina mostrar todas as categorias que cont m not cias com as tr s ltimas not cias inseridas cujo corpo do texto de cada uma um pequeno resumo que permite ao utilizador ter 1 F PO B 8 E p Plug in um acr scimo aplicado a um determinado software permitindo novas funcionalidades Neste caso uma melhoria ao navegador browser proporcionando lhe a capacidade d
122. pdate login set ultimo_ip ip_utilizador where id Sid username Sresultado update last ip mysql db query SMYSQL server bd Ssql update last ip else res lt br gt lt div align center gt lt span class texto gt A sua senha e ou a sua password est o lt b gt erradas lt b gt Verifique estes dados lt br gt ou entra em contacto com o webmaster lt span gt lt div sbr gt writelogin Sres session destroy 5 3 2 Altera o dos dados pessoais do utilizador Caso seja preciso editar os dados o membro registado pode faz lo dirigindo se sua rea pessoal Nesse espa o poder alterar todos os dados que inseriu na sua inscri o onde ter oportunidade de actualizar a sua idade avatar e outros dados Ter igualmente a possibilidade de alterar a sua palavra chave alterar dados pessoais alterar password gade Antiga palavra chave esses Howa palavra chave enesesse Confirmar nova plawra eeesssee lle ek o lk e ah ke chave Alterar palavra chave Ilustra o 20 Janela de altera o da palavra chave password Tal como no registo todos os campos s o verificados analisados sem c digo HTML e com mensagens de erro personalizadas Destaca se a funcionalidade de altera o de grupo que n o s autoriza a passagem de um grupo para outro mas que tamb m gera mensagens privadas automaticamente cancelando a perman ncia do utilizador no seio de uma comunidade deixan
123. posto em evid ncia no que diz respeito aos membros Este mesmo sistema de seguran a impede a um utilizador registado de votar duas vezes na mesma sondagem permitindo assim uma maior veracidade na recolha dos resultados P gina 74 ISMAI O 2003 O pr ximo c digo PHP extra do do ficheiro poll php exemplifica como poss vel realizar esta funcionalidade if nivel user 1 echo lt center gt Lamentamos mas s os utilizadores registados e identificados podem participar nas nossas sondagens lt br gt Pode eventualmente registar se lt a href NV index php p registoN gt rom color bleck Y Doc dquic b cuca scbr ou se j est registado pode identificar se lt a href NY index php p loginN gt lt font CGOlor black Y Drs aqua bc na rc cencer Mi Jelse l Sid session S SESSIONT session id username ls Pedido a base de dados para saber se o utilizador j votou Ssql voted select count id as cnt from poll voted where id pergunta Sid pergunta and id user Sid session group by id Sresultado voted mysql db query SMYSQL server bd Ssqgl voted if Sresultado voted Sregisto voted mysgl fetch array Sresultado voted sent Sregirsto voted ent 1E Sans a bl a OO echo lt br gt lt center gt lt b gt Lamentamos mas n o pode voltar a votar nesta sondagem lt b gt lt center gt lt br gt else E Ainda n o Vvotot s a c ver votar form Sid pergunta S nivel user Ligado base de dados a
124. quais s o os membros que existem mas sem poder prejudic los no entanto os membros registados ter o efectivamente a maioria dos dados Tal como referenciado no cap tulo reservado seguran a da plataforma todos os pedidos base de dados foram escritos sem nunca pedir para recuperar o campo da palavra chave Funcionalidade escrita no ficheiro bi utilizador php e bi utilizador offline php onde o conceito desta medida pode ser exemplificada com o seguinte c digo if Sidentificacao true snow Cdertarile all SidenctiLirricacao Sud else show details Sidentiticacaos SLE y 5 4 2 P gina principal dos membros Os membros s o a for a de qualquer comunidade ou associa o tal como as not cias permitem medir a actividade de um grupo os utilizadores possibilitam a cria o destas ltimas Sendo assim t o relevante a apresenta o dos seus membros o PHPMyCommunity permite numa s p gina ter uma percep o imediata dos utilizadores registados na plataforma Colocando o visitante frente a v rias funcionalidades permitindo visualizar utilizadores e grupos tal como o n mero total de membros nome do ltimo pequeno motor de pesquisa visualiza o gr fica dos distritos listagem dos grupos e alfab tica Autorizando uma infinidade de membros mas sendo recomendado para pequenas e m dias comunidades a sua apresenta o tentou ser a mais subjectiva e simplificada Como referido h pouco a vis
125. r do grupo ao qual foi efectuado o pedido data pedido data a qual foi realizado o pedido regiao tabela necess ria para coloca o dos distritos possuindo os 18 distritos de Portugal continental mais os arquip lagos dos A ores e da Madeira Este campo j esta preenchido na instala o da plataforma 1d chave prim ria identificador do distrito regiao nome do distrito mp quando enviada uma mensagem privada o seu registo fica armazenado nesta tabela da base de dados Contem 8 campos dedicados ao envio e recep o de mensagem privadas id chave prim ria identificador da mensagem privada nico e auto incrementado id remetente identificador do utilizador que enviou a mensagem privada id destinatario identificador do utilizador destinat rio da mensagem privada mp assunto armazena o conte do do assunto da mensagem mp msg conte do da mensagem mp data data de envio da mensagem mp hora hora de envio mp lida boleana identificando se a mensagem foi lida ou n o 1 para n o O para sim news tabela armazenando 11 campos dedicado as not cias e ao seu conte do Esta tabela serve para guardar toda a informa o noticiosa apresentada na p gina de not cias newsFlash e p gina de entrada 1d chave prim ria identificador da not cia nico e auto incrementado campo nome nome da pessoa que inseriu a not cia campo email email da pessoa que inseriu a not cia campo sujeito referente ao assu
126. ra o Sendo uma componente muito delicada de editar foram descritos todos os privil gios para que qualquer pessoa consiga entender o objectivo e a Import ncia de cada um Privil gios de cuquinha Utilizador registado o membro cl ssico s possui alguns privil gios como escrever no f rum enuiarireceber mensagens privadas etc Mas n o tem acesso a nenhuma das componentes administrativas Ao tirar este privil gio est de uma certa forma a banir o utilizador do seu site porque ele poder registar se mas n o poder escrever no forum etc Respons vel dos artigos Respons vel pela redac o de artigos pode criar apagar ou editar unicamente OS Seus artigos Respons vel do forum Respons vel pela ordem no f rum este deve ser dos administradores mais pol micos porque todos querem ter o seu lugar Porizso alguma cautela nunca pouca quando se elege um administrador de f rum Ilustra o 28 Selec o dos privil gios com a respectiva ajuda Implementou se duas funcionalidades chamadas mp4all e email4all permitindo comunicar directamente com os utilizadores O email4all simplesmente uma esp cie de mailling list onde se pode enviar um e mail a todas as pessoas do seu site s com um formul rio O mp4all o diminutivo de mensagem privada para todos Tal como o email4all permite enviar uma mensagem para todas as pessoas do site instantaneamente Ao inv s do email4all esta fun o envia mensagens p
127. rivadas Usando as mesmas fun es o c digo PHP s varia como mostra o seguinte exemplo vindo do membros php PE Snav emai Mall com4all S nivel user email email4all Scampo assunto Scampo mensagem Sdica else com4all nivel user esta mensagem privada mp4all Scampo assunto Scampo mensagem Sdica Esta diferencia o chama a fun o comdall com de comunica o que permite enviar mensagens privadas ou e mail para todos while S registo all user mysql fetch array Sresultado all user Std Sreqisto all user 1d Susername Sregisto all user username Semail Sregisto all user email mail email Scampo assunto S campo mensagem From SSITE nome lt Semail root gt A fun o mail nativa do PHP necessitando de alguns par metros para o seu bom funcionamento mais informa es em http pt php net manual en ref mail php P gina 64 ISMAI O 2003 O envio de mensagens privadas muito parecido com o c digo PHP acima descrito havendo a diferen a do uso de fun o send mp n o incorporada no PHP mas sim programada para ser usada dentro do PHPMyCommunity function send mp Sid remetente Sid destinatario Smo assunto Smo msg Ene bude Yconriig pno Cria o das vari veis que v o permitir criar a MP Sdata dia date 5 m Y Sdata hora date Res Enviar a MP directamente para o administrador do grupo Ssql send mp insert into mp id remete
128. rs o 1 0 do que se denominava Personal Home Page Tools com o sucesso desta ltima criou um grande movimento de ajuda que permitiu o lan amento poucos meses depois da vers o 2 0 a qual j se assemelha que conhecemos hoje como Hypertext Preprocessor acr nimo recursivo P gina 1 Relat rio do projecto PHPMyCommunity A vers o 3 de 1997 foi uma melhoria substancial do 2 0 mas em relac o ao seu grande concorrente o ASP da Microsoft n o inclu a sess es A vers o 4 de 2000 j continha sess es permitindo uma maior seguran a e uma alargada quantia de novas funcionalidades incluindo o motor de processamento desenvolvido pela ZEND aumentando significativamente a velocidade de execu o dos scripts comparado ao ASP Este novo PHP superava o em quase todos os aspectos A pr xima vers o ser lan ada em Dezembro deste ano e as expectativas s o muito elevadas estando previstas melhorias ao n vel da programa o por objectos que n o est optimizado no PHP4 A vers o 2 do novo motor da ZEND apresenta melhorias ao n vel da seguran a das sess es melhor interpreta o do XML etc 2 3 Vantagens do PHP A grande vantagem do PHP sem d vida o facto de se tratar de um software gratuito O seu c digo fonte est dispon vel na Internet e qualquer pessoa pode contribuir para o seu desenvolvimento A arquitectura deste sistema foi desenvolvida inicialmente para poder funcionar em qualq
129. s id cat news Vai ler as ltimas not cias de cada categoria sql news select id campo sujeito campo msg data dia data hora id cat news news resumo from news where id cat news Sid cat news order by 10 limit 1 Sresultado news mysql db query SMYSOL server bd Ssql news if Sresultado news Sregisto news mysql fetch array Sresultado news Sid Sregisto news id Scampo sujeito Sregisto news campo sujeito S campo msg Sregisto news campo msg Sdata dia Sregisto news data dia l Sdata hora Sregisto news data hora Sid cat news Sregisto news id cat news i s Sresumo news Sregisto news news resumo writenews home noticias Sid Scampo sujeito Scampo msg Sdata dia Sdata hora Sid cat news Sresumo news Toda a componente administrativa desta funcionalidade completamente gerida pelo sistema de not cias explicado nas pr ximas p ginas P gina 41 Relat rio do projecto PHPMyCommunity 5 1 3 Flash forum Da mesma forma como as ltimas not cias s o mostradas feita uma pequena listagem dos ltimos t picos colocados no f rum de conversa configur veis pelo webmaster no ficheiro de configura o geral do site config php com o detalhe de especificar o nome do f rum em quest o Existe uma pequena informa o relativa ltima pessoa que respondeu caso n o haja resposta o nome que aparece o da pessoa que criou o t pico a particularidade de indicar a data
130. s importante servir a comunica o de uma comunidade proporcionando ferramentas adequadas f ceis de usar e graficamente atraentes O seu c digo fonte foi criado de tal forma a poder permitir a sua edi o com a finalidade de ser melhorada por terceiros Este objectivo foi desenvolvido com uma grande quantidade de coment rios juntando um c digo facilmente percept vel recorrendo a fun es vari veis nomes de ficheiros e organiza o com nomes identific veis Esta plataforma web permitir aos seus utilizadores poderem comunicar atrav s desta devido s v rias funcionalidades inerentes plataforma e assim desenvolver uma comunidade gra as s novas tecnologias digitais Esta ideia de trabalho foi adoptada na medida em que hoje em dia as pessoas recorrem cada vez mais ao computador e Internet para comunicarem entre si Tendo em conta a dificuldade que as pessoas t m em desenvolver uma p gina na Internet devido aos problemas relativos programa o e cria o de um design intuitivo foi ent o sugerido um projecto de monografia adaptado a essas necessidades cada vez mais importantes e relevantes P gina 9 Relat rio do projecto PHPMyCommunity Todas estas necessidades s eram tecnicamente realiz veis usando um sistema de apresenta o de p ginas completamente din micas A solu o foi encontrada numa combina o de dois programas PHP e MySQL O primeiro trata se de uma linguagem script que permite interli
131. s informa es sobre elas incluindo o n mero de votos que ela recebeu id chave prim ria identificador da pergunta nico e auto incrementado pergunta campo guardando todas perguntas voters valor do n mero total de votos a pergunta data dia data em que foi inserida a pergunta na base de dados data hora complemento do campo acima mas referindo se as horas poll respostas tabela com todas as respostas as perguntas com quarto campos proporciona com a tabela anterior a realiza o dos votos id chave prim ria identificador da pergunta nico e auto incrementado id pergunta identificador Relaciona a poss vel resposta a pergunta resposta uma vertente votes campo que regula os n mero de votos a resposta poll comentarios tabela dedicada a coloca o dos coment rios das sondagens Todos eles est o armazenados independentemente da pergunta diferenciados e organizados pelo ID principal e pelo ID da pergunta 1d chave prim ria identificador do coment rio nico e auto incrementado id pergunta identificador da pergunta relaciona o coment rio a pergunta corpo texto do coment rio owner identificador do utilizador que inseriu o coment rio data dia data em que o coment rio foi inserido na base de dados data hora hora em que foi inserido o coment rio poll voted esta tabela serve para controlar os votos e assim impedir que um utilizador possa votar duas vezes na mesma pergunta 1d
132. s perguntas e as respostas s o todas geridas pelo PHP onde a fun o do MySQL ser processar as sondagens e os resultados Com uma tabela espec fica para quem registar os votos imposs vel ao utilizador votar duas vezes na mesma sondagem O c digo seguinte indica como realizada a inser o na base de dados de um novo voto RE rr oO ls er dO puder ZA O e sql update update poll respostas set votes votestl where id Sid resposta Sresultado update mysql db query SMYSQL server bd Ssql update fazer update ao numero de pessoas que votaram a essa pergunta sql update2 update poll perguntas set voters voters 1 where id id pergunta Sresultado update2 mysql db query SMYSQL server bd Ssl update2 inserir o id do utilizador na tabela poll voted para que ele n o possa votar 2x Sid session S S SESSIONT session id username Ssql add vote insert into poll voted id pergunta id user VALUES Sid pergunta Sid session Sresultado add vote mysqgl db query SMYSQL server bd Ssqgl add vote Para verificar se as sondagens foram falsificadas apesar de todo o sistema de seguran a existe outra forma de analisar os resultados Na p gina das sondagens existe duas vezes o n mero de pessoas 1 gt acaba com o que votaram A pergunta N mero total de pessoas que votaram nesta sondagem n mero total de votos Este valor recuperado com a soma dos votos na base de dados Na segunda contagem
133. s tr s ltimas not cias que foram newsFlash colocadas no site Esta amostra n o dependente da categoria visto que s lista PHP PeR Ls jos GTE i an as ltimas mensagens Se por exemplo existirem quatro categorias de not cias 7 ni extension for PHP programming language that newsFlash ir listar essas tr s ltimas not cias Este m dulo uns dos poucos M A sendo que s o publicadas duas dessas not cias na segunda e uma na quarta o m dulos que liga v rias tecnologias entre elas tais como o PHP MySQL ver noticias P gina 42 ISMAI O 2003 JavaScript e claro HTML O c digo JavaScript foi retirado do site www handago com onde a inexist ncia de um copyright levou adapta o e melhoria do mesmo Por cortesia foi deixado um coment rio de agradecimento ao site no c digo HTML Tal como as not cias o newsFlash totalmente autom tico e todo o seu conte do inserido na base de dados directamente pela administra o das not cias 5 1 5 Sondagens da margem direita As sondagens permitem conhecer as prefer ncias das pessoas de uma comunidade muito importante partindo do princ pio que a rela o entre sondagens webmaster e utilizador tem que ser a mais pr xima poss vel tem que haver uma ET EER ER l sistema de comunica o bilateral A coloca o de um elevado sistema de sondagens era mais EMRE do que justificado Por isso no lado direito encontramos um sofisticado sistema MA
134. sers n users 9n usersOff ultimo utilizador a registar se select id nome from login order by id limit 0 1 sql last reg select id nome from login order by id limit 0 1 Sresultado last reg mysql db query SMYSQL server bd sgl last reg Sregisto last reg mysqgl fetch array Sresultado last reg Slast nome Sregisto last reg nome l Numero de noticias S sqln news select count id as cnt from news Sresultadon news mysql db query SMYSQL server bd Ssgln news Sregiston news mysqgl fetch array Sresultadon news n news Sregiston news cnt T P gina 4 Relat rio do projecto PHPMyCommunity S o precisos onze pedidos SOL seguidos para recuperar todos os dados pretendidos a base de dados que processa tudo dando apenas o resultado ao PHP para depois gerar o c digo HTML 5 1 7 Menu Tal como o resto da plataforma o menu completamente din mico Ao contr rio de uma p gina HTML normal ou at algumas aplica es web onde o menu est escrito no meio de c digo HTML ou Java Script o PHPMyCommunity tem o menu todo inserido na base de dados Criado em tempo real oferece a capacidade de adaptar se pessoa que o visualiza Assim colocando todos os itens do menu com diferentes n veis de visualiza o na base de dados o utilizador identificado possuindo privil gios pode assim interagir com o gerador de menu de forma a ser retornado os itens que lhe poss vel ver Em vista a
135. sitante a oportunidade de clicar para ver mais Cada categoria listada caso exista pelo menos uma not cia para mostrar porque n o interessa ao utilizador ou visitante saber que existe uma categoria sem not cias Quando referenciadas elas apresentam a sua descri o que permite uma percep o mais r pida do tipo de not cias que ser encontrada no interior de cada uma A apresenta o das not cias sempre feita com o cone da sua respectiva categoria data e hora de inser o resumo e op o para ler todo o conte do Categoria Noticias PHP Todas az lt rnas noticias sobre o PHP e afins PEAR MING GO MySQL et php STK 2 04 2003 az 19 38 PHP STK iz an extension for PHP programming language that implements language bindings for GTE toolkit It provides an object oriented interface to GTE classes and functions and greatly simplities writing client side cross plattorm GUI applications gt noticia completa Ilustra o 11 Resultado gerado pelo PHP ap s inser o de not cias A cria o deste tipo de HTML implica um ciclo while que possibilita recuperar da base de dados a ltima mensagem de cada uma das categorias sql cat news select id cat news from categorias news order by id cat news Sresultado cat news mysql db query SMYSQL server bd Ssqgl cat news lE Sresultado cat news q while S registo cat news mysql fetch array S resultado cat news Sid cat news Sregisto cat new
136. t lt td gt lt tr gt lt table gt O m dulo do menu permite casos especiais tal como o login logout Quando o utilizador n o est identificado o menu apresenta a possibilidade ao visitante de o fazer caso contr rio permite efectuar o logout Constitu do por apenas uma condi o esta funcionalidade facilita a apresenta o do menu na medida em que n o necess rio apresentar a op o de efectuar o logout a um visitante n o registado tal como n o fazendo sentido aparecer a op o de registar se a um membro devidamente identificado P gina 45 Relat rio do projecto PHPMyCommunity 5 1 8 Login Mensagem Privadas O canto superior direito foi utilizado de tal forma a poder conter funcionalidades consoante a identifica o Assim se o utilizador n o estiver identificado mostrada uma pequena aplica o constru da em Macromedia Flash capacitando o visitante a efectuar o seu login Caso contr rio prop e o acesso s mp mensagens privadas informando o n mero de mensagens novas n o lidas Esta ltima assemelha se a uma caixa de correio electr nico limitado ao universo dos membros da p gina para enviar ou receber correio directamente pela plataforma Como foi dito anteriormente o uso da tecnologia Flash necess ria na medida em que permite uma visualiza o id ntica em todos os sistemas operativos integrando o plug in Estas duas funcionalidades s o determinadas no ficheiro right ph
137. te gina que est amp aacute r n a ver e os servi amp ccedil os que disp amp otilde e lt br gt irin Se este pormenor n amp atilde o for respeitado o site ser amp aacute um fracasso porque irin ningu amp eacute m perder amp aacute mais tempo em visualizar outras p amp aacute ginas r n sem ter a m amp iacute nima ideia do que elas poder amp atilde o oferecer lhe lt p gt irin lt p gt amp nbsp lt p gt irin lt p gt Jacob Nielsen Assinatura do webmaster P gina 85 Relat rio do projecto PHPMyCommunity Estrutura da tabela contactos DROP TABLE IF EXISTS contactos CREATE TABLE contactos id int 1 NOT NULL default 0 titulo Janela varchar 30 NOT NULL default conteudo text NOT NULL legenda gfx varchar 255 NOT NULL default gfx varchar 255 NOT NULL default TYPE MyISAM Extraindo dados da tabela contactos E Estrutura da tabela counter DROP TABLE IF EXISTS counter CREATE TABLE counter rowid int 10 unsigned NOT NULL default 0 hits int 10 unsigned NOT NULL default 0 PRIMARY KEY rowid TYPE MyISAM Extraando dados da tabela counter Estrutura da tabela dl DROP TABLE IF EXISTS dl CREATE TABLE dl gt id int 32 NOT NULL auto_increment nome varchar 255 NOT NULL default url varchar 255 NOT NULL default descricao varchar 255 NOT NULL default Inserido varchar 255 NOT NULL default
138. u o do aspecto gr fico Inicialmente pensado para ter frames o PHPMyCommunity foi finalmente desenvolvido para usar pseudo frames ou seja frames virtuais em que est tudo num s ficheiro com tabelas Existe um ficheiro linker php que vai realizar os includes fun o do php das p ginas que desejamos abrir relativamente a uma vari vel colocada no URI como por exemplo http www omeusite com index php p home onde a vari vel p ser recuperada verificada e s depois ser feito o include para a p gina relativa ao seu valor se p for igual a home ent o ser feito o include ao ficheiro home php ver organigrama seguinte e index php o main php top menu php Jlinker php e Resto das p ginas right php footer php Como podemos ver no organigrama representado em cima o ficheiro HTML final est composto no m nimo por sete ficheiros PHP Este o funcionamento dos pseudo frames e assim que nos permitida uma optimiza o do site visto que as Imagens da p gina ou do topo ficam automaticamente na cache da pessoa que visita a p gina A seguran a e a sua integridade ficam igualmente preservadas uma vez que n o existe um ficheiro chamado noticias html ou algo similar Os documentos HTML s existem se forem chamados Caso contr rio imposs vel ver o documento sem chamar as fun es PHP pelo navegador Este sistema muito melhor que o uso de frames porque os motores de pesqu
139. ualiza o gr fica dos distritos consiste numa aplica o em Macromedia Flash que representa o mapa de Portugal com todos os seus distritos e respectivos nomes Quando clicado num feito uma listagem de todos os membros pertencendo rea seleccionada 1 so y G Os bots s o programas concebidos para ver e abrir todos os sites procura de endere os e mail acrescentando depois a uma base de dados que depois pode ser vendida para envio de publicidades para caixa de correio electr nico P gina 57 Relat rio do projecto PHPMyCommunity Humero de utilizadores registados 19 Ultimo utilizador registado SoundMan sgm a Keszi Procurar utilizadores N mero de utilizadores por distritos Viana do Castelo O Braga 1 Vila Real 1 Eragan a O Porto 9 Aveiro 1 Castelo Branco O Leiria O Santar m O Pottalegre O Listagem das diferentes categorias equipa Listagem dos utilizadores por ordem alfab tica Ilustra o 22 P gina de acesso aos membros 5 4 3 Listagem dos membros Um dos pontos fortes do PHPMyCommunity e que o diferencia em rela o aos gestores de conte do a possibilidade de criar grupos de membros onde o seu respons vel poder criar membros especiais S o diferentes porque pertencem ao grupo mas n o t m acesso Internet Sendo esta plataforma o meio de comunica o de comunidades reais era prov vel a exist ncia de pessoas fazendo parte desta m
140. uer servidor Encontra se o PHP em sistemas operativos tais como Windows 9x Windows NT 2000 XP 2003 Server Linux Unix Mac OS OpenBSD FreeBsd Solaris e outros As potencialidades do PHP n o se limitam unicamente ao sistema operativo a sua Interliga o com bases de dados est muito evolu da Consegue trabalhar com quase todas as bases de dados mais conhecidas tais como MySQL MSQL Oracle PostGresSQL dBase etc A sua Interliga o com servidores web tamb m foi desenhada para conseguir correr em quase todos eles Conseguimos ter o PHP em sistemas como o Apache Internet Information Services IS PWS Xitami Omnihttpd e outros Existe a possibilidade de expans o das funcionalidades do PHP pela inser o de m dulos desenvolvidos em C usando a API do PHP Inspirado do C Java e PERL o PHP tem uma sintaxe relativamente simples de aprendizagem juntando uma enorme comunidade cibern tica que permite uma divulga o de c digos fonte aplica es completas gratuitas e ajuda entre utilizadores que as outras linguagens n o possuem Ao longo dos anos todas estas vantagens permitiram ao PHP tornar se na linguagem de programa o de p ginas din micas das mais usadas no mundo Segundo as estat sticas da Netcraft existem 13 969 466 dom nios web usando PHP num universo de 43 milh es Na mesma altura a Nexen net publicou as suas pr prias estat sticas independentes afirmando que a vers o mais popular do PHP a 4 1 2 insta
141. um est aberto ou fechado id admin forum identificador do respons vel pelo conte do do f rum id forum cat identificador da categoria de forum a qual pertence nivel forum valor decimal do nivel necess rio para visualiza o do f rum num thread valor do n mero de t picos inseridos neste forum num posts valor do n mero de respostas e t picos criados neste f rum posicao valor que controla a posi o na apresenta o dos f runs dentro da sua categoria forum cat todos os f runs possuem categorias Nesta tabela est o devidamente armazenadas todas categorias incluindo os nomes e descri es id forum cat chave prim ria identificador da categoria do f rum nico e auto incrementado nome_forum_cat o nome da categoria fica armazenada neste campo desc_forum_cat descri o da categoria ap tabela armazenando todos os artigos e os produtos Muito parecida com a tabela dl esta inclui uma maior quantidade de campos id chave prim ria identificador do produto ou do artigo nico e auto incrementado ap_cat identificador categoria correspondente P gina 27 Relat rio do projecto PHPMyCommunity nome este campo refere se ao nome ou titulo do artigo ou produto resumo como indica o nome este campo guarda os resumos descricao cada artigo ou produto possui uma descri o este campo ira armazena la tipo este campo ira armazenar o nome do tipo ou seja artigos ou produtos permit
142. uniformizar a plataforma em todos os sistemas onde ela ir home noticias membros forum produtos artigos sondagens pesquisa downloads links contactos log in funcionar as categorias de itens menu admin etc s o elaboradas atrav s de uma fun o PHP fazendo recurso a uma biblioteca gr fica GD inicialmente referida Este m todo possui dois inconvenientes no que diz respeito cria o do menu o primeiro o aumento do tempo de processamento que influ ncia o carregamento do resto da p gina O segundo est ligado ao servidor em que obriga o webmaster a ter um alojamento que possui essa tal biblioteca Pensando nestes grandes inconvenientes foi desenvolvido uma alternativa que consiste em dar a oportunidade de escolha ao dono da p gina entre dois menus O primeiro m todo foi aquele que acabamos de referir O segundo r10 10 03 uma t cnica mais tradicional na medida uma vez que colocada uma imagem de E Ilustra o 13 fundo com um texto centrado no meio da c lula formando assim o nosso menu Menu criado sem i o uso do GD Este processo colmata os inconvenientes mas infelizmente leva uma desvantagem invis vel para o webmaster pois afecta os utilizadores Isto implica ter a fonte ee bj b 5 E courrier instalada no seu sistema Caso n o tenha o navegador encarregue de colocar um tipo de letra alternativo Felizmente quase todos os sistemas operativos possuem a fonte referida caso contr
143. unsty para que lhe possa ajudar no processo de recupera o do dom nio da p gina P gina 55 Relat rio do projecto PHPMyCommunity Por medida de seguran a ter que inserir a resposta a sua pergunta especial Login ptjedi Pergunta Onde estive na dia 27 de novembro I980 272 Resposta recuperar palavra chave Ilustra o 21 Exemplo de resultado quando executado o pedido de recupera o da palavra chave Altera o da password Cria o de uma palavra aleat ria Sseed int microtime Sseed integer md5 microtime mt srand Sseed Spas cmord mt ramd 1 99999999 g Dener ypt pass erypel password gade 2008 Alterar a password do utilizador sql chpasswd update login set password Sencrypt pass where id Sid Sresultado chpasswd mysqgl db query SMYSQL server bd Ssql chpasswd if Sresultado chpasswd Emvio da mo c a c sql send mp insert into mp id remetente id destinatario mp assunto mp msg mp data mo hora mo lida values Ste vi Sme assunto Smp msg Sdata dia Sdata hora 0 Sresultado send mp mysql db query SMYSOL server bd S sgl send mp Emvio do Email com a noya palavra pass Snome servidor SERVERI SERVER NAME Semail root webmasterfSnome servidor mail email Sassunto mensagem From SSITE nome lt Semail root gt E importante referir que foram retiradas da amostra do c digo as vari veis ass
144. unto mensagem mp assunto e mp msg porque s o realmente muito extensas Poder encontrar todo o c digo fonte do processo de recupera o da palavra chave no ficheiro func login php 5 4 Sistema de membros O m dulo dos membros do PHPMyCommunity marca a sua diferen a em rela o s outras plataformas de conte do na medida em que foi constru do de ra z podendo suportar uma infinidade de membros categorizados ou n o em grupos de utilizadores Nesta parte do relat rio veremos em que consiste este sistema de membros P gina 56 ISMAI O 2003 5 4 1 Seguran a dos dados pessoais Tal como no resto da plataforma a seguran a dos dados foi privilegiada Implementou se um processo de visualiza o dos membros que possibilita uma elevada privacidade dos utilizadores visto que para ter acesso ao dados pessoais de um membro preciso estar registado no site caso contrario o sistema s lista a informa o simb lica e os dados que tenham a ver com utilizador de um site e n o pessoais ex dada de registo nickname localidade regi o etc nunca ira mostrar o nome idade e mail etc Esta politica de seguran a n o serve unicamente para proteger os dados dos membros mas tamb m para evitar o lixo electr nico enviado por e mail devido exist ncia de muitos bots que poderiam ter um efeito nefasto nas caixas de correio electr nicas dos utilizadores Esta medida possibilita aos visitantes n o registados verem
145. utilizador amp pesquisa retornou 1 utilizador Ilustra o 23 Exemplo de resultado obtido de um utilizador com um username matr iniciando em u Listagem por grupos criado uma listagem de todos os grupos existentes no site categorizado por distritos Ao seleccionar um deles a descri o do mesmo aparece Denominada p gina pessoal do M 5 Ga a grupo ela pretende ser a identifica o do mesmo colocando as seguintes informa es imagem associada nome localiza o data de funda o p gina pessoal utilizadores registados utilizadores sem Internet uma descri o e os contactos Listagem pelo distrito criada ao seleccionar um distrito no mapa de Portugal ou pelo seu nome direita A itera o da escolha devido ao facto de estar a usar uma aplica o em Flash cujo plug in pode n o estar instalado em todos os clientes web A p gina gerada efectua uma listagem de todos os membros registados offline com possibilidade de aceder p gina descritiva de cada um o todo ilustrado por uma imagem simb lica do dito distrito P gina 59 Relat rio do projecto PHPMyCommunity equipa Panteras negras Administrador do grupo gade Data de funda o 25 9 2003 Localiza o Bessa leite porto Website https gade no ip com Utlizadores registados deste grupo None Localidade qade Porto ptedi Maia Utlizadores sem internet deste grupo Nane Localidade JohnyBegooD el Ranho
146. ve Caso o utilizador se tenha esquecido da sua senha para se identificar na p gina o PHPMyCommunity n o permite recuper la na medida em que est armazenada completamente codificada n o sendo poss vel a sua descodifica o Foi ent o desenvolvido na ptica da seguran a m xima um sistema que possibilita ao utilizador ter uma nova palavra chave a partir da pergunta e resposta que inseriu no momento do registo O processo de recupera o funciona em v rios passos Inicialmente pedido para inser o do login pretendido seguindo para outra p gina que verifica se o login existe realmente Se existir colocado a pergunta onde ter que escrever a resposta certa para que seja criada uma nova senha aleat ria substituindo a actual A nova palavra chave enviada ao utilizador para a caixa de correio electr nico registada na base de dados Depois deste processo enviada uma mensagem privada ao webmaster avisando que o pedido de recupera o da password foi efectuado dando lhe informa es sobre o IP login recuperado com a nova palavra chave aleat ria Assim poder controlar abusos ou tentativas de apropria o de contas Por medida de seguran a imposs vel recuperar a senha do utilizador root conta com o maior n mero de privil gios mais conhecida por webmaster dono da p gina etc Caso se tenha mesmo esquecido da palavra chave ter uma aviso que lhe indicar o correio electr nico criador do PHPMyComm
147. wsCat sql delete all news delete from news where id cat news Sid Sresultado delete all news mysql db query SMYSQL server bd sql delete all news if Sresultado delete all news Sresultado Categoria apagada do sistema lt br gt Dentro de 5 segundos ser redirecionado para a p gina principal de administra o das categorias de moticias e else resultado Problemas com o seu pedido N o foi poss vel apagar a categoria de not cias a O DELETE uma fun o do SQL que permite apagar linhas dentro de campo P gina 51 Relat rio do projecto PHPMyCommunity 5 3 Login Logout 5 3 1 Inser o e identifica o de utilizadores Este m dulo o mais crucial para o funcionamento da plataforma Sem ele era imposs vel criar um sistema de utilizadores com permiss es distintas Composto por outros m dulos o sistema de utilizadores uns dos mais cr ticos no que diz respeito seguran a Foi neste mbito que foram desenvolvidas v rias fun es que permitem a identifica o do utilizador com a m xima seguran a Por exemplo para a identifica o login php o pr ximo c digo PHP permite entender como escrito um pedido SQL relativamente seguro diminu do o risco de SOL Injection ver capitulo sobre a seguran a da plataforma na medida em que efectua uma conta em vez de recuperar um resultado Ssgql select id count username as cnt from login where username username and p
148. yCommunity foi desde sempre desenvolvido com a ideia principal que tudo pode ser alter vel por outra pessoa da forma mais simples e conveniente Mais do que um site uma ferramenta de trabalho e de comunica o com outras pessoas onde tudo relativamente r pido f cil e visualmente agrad vel 3 1 Aspecto gr fico 3 1 1 Navega o Desenvolver uma plataforma din mica n o s escrever c digo e p r o resultado a funcionar Existem outros problemas relativos ao design e ao aspecto gr fico que temos que ter em conta Baseando 1 E gou 25 Ea se em Jakob Nielsen que foi distinguido v rias vezes como sendo um profissional da ergonomia da web Sendo o principal objectivo da p gina de acolhimento facilitar a navega o na totalidade do site indispens vel que o utilizador possa encontrar com facilidade o elemento de navega o apropriado diferenciar os controlos e fazer rapidamente uma ideia da hiperliga o sem ter que cliquar nos elementos para os identificar A zona de navega o tem que revelar o essencial do conte do do site e assim permitir ao utilizador de descobrir o site lendo os nomes das principais categorias Chegou se conclus o que sendo uma aplica o que dever servir qualquer pessoa ter que ser o mais simples dentro do mais evolu do Ter sempre em mente a rela o dos espa os vazios ajuda a clareza dos conte dos coloca o dos itens convencionais t tulo em cima

Download Pdf Manuals

image

Related Search

Related Contents

User Manual  Brandt ME645WE1 microwave  WFM6120 Multistandard, Multiformat Waveform Monitor  Vérins pneumatiques - Série P1D-T - catalogue  Télécharger au format PDF - Communauté d`agglomération du Val d  Índice - CONRAD Produktinfo.  USB Serial Converter  Summit Appliance STC1 Use and Care Manual  KUDA 083330 holder  T-Mobile myTouch 3G User Guide  

Copyright © All rights reserved.
Failed to retrieve file