Flock 1.0.1 Final Comodo Firewall Pro 3.0.11.246 RC1

PHP é à quinta-feira - Aprender a programar

Criado por: Pedro Pinto em 8 de Novembro de 2007 Deixar um comentário

Ora cá estamos nós para mais uma rubrica. Uma das coisas que me tenho apercebido é que nos vossos comentários têm dado pouco feedback relativamente à rubrica, isto é, se estão a gostar, se o ritmo está bom, se os exemplos são simples ou difíceis, se os conseguíram por a funcionar, etc etc. Com o vosso feedback podemos fazer ainda melhor e ir de encontro aos vossas expectativas.


Bem, para hoje pensei em algo diferente. E que tal se os “gurus” e “não gurus” em PHP, que visitam o blog, deixarem aqui o seu contributo?

A ideia será a seguinte: Partilham algum script simples, repito simples (pode ser o vosso favorito, e que tanto jeito vos dá… - algo com um máximo de 15 a 20 linhas), e digam qual a sua finalidade. Depois podemos analisar/discutir todos os scripts disponibilizados e até escolher um TOP 3.
Que dizem? Hum, já estão a pensar nos presentes? Vou falar com o “Big Boss”, para ver se ele quer virar Papa Noel

Para dar o exemplo eu vou deixar o meu contributo (ok, ok, eu estou out dos presentes…regra aceite, isto se o Big Boss concordar com a ideia), como o tenho feito nas edições anteriores.

O exemplo que vos trago hoje tem por objectivo o seguinte: Um cliente acede a uma página (que vocês vão programar), e essa mesma página devolve-vos informações sobre o browser que estão a utilizar e qual o endereço IP utilizado. Parece complicado?

O PHP faz isso na boa, meia dúzia de linhas e está feito.
Se queremos “sacar” o IP do cliente, usamos a seguinte instrução: $_SERVER[‘REMOTE_ADDR’] e depois colocamos o seu conteúdo numa variável ($ip_cliente):

$ip_cliente = $_SERVER[‘REMOTE_ADDR’];

O próximo passo é sacar as informações do browser do cliente. Para isso vamos usar a instrução: $_SERVER[‘http_USER_AGENT] e colocamos o seu conteúdo também numa variável ($browser):

$browser = $_SERVER[‘HTTP_USER_AGENT’];

Bem, e já temos tudo o precisamos. Agora é só mandar escrever as nossas variáveis. Segue o script completo.

POSSÍVEL OUTPUT

Como veêm de complicado não tem nada. Experimentem abrir a página que criaram com o Ffox, IE ou Opera, para verem as diferenças. Com este código podemos fazer coisas como aquelas que às vezes aparecem nas páginas…Algo do tipo: Voçês está a usar Firefox.!!!

Agora aguardo pelos vosso scripts !!!


Arquivado na categoria: Tutoriais

35 comentários a “PHP é à quinta-feira - Aprender a programar”

  1. S. Costa diz:

    Gostei da “aula” de hoje… isto fica parecido com um plugin que utilizo na área dos comentários, onde é apresentado o Browser e Sistema Operativo de quem comenta.
    Podias fazer o teu próprio plugin… com a tua assinatura :D :D :D
    Continuação…

  2. l3gionPT diz:

    Excelente..tenho acompanhado desde o inicio e estou a gostar muito do modo como é explicado…simples e directo!

    Continuação de bom trabalho.

  3. Vítor M. diz:

    Ok Pinto… depois passa na tesouraria para levantar a verba ;-) Fica combinado.

  4. Mário diz:

    Muito bons estes artigos sobre PHP estou a utilizar agora esta linguagem por isso saber estas pequenas coisas vam me dar muito geito.
    Espero que continues com estas rubricas ;)

  5. Pedro Simões diz:

    Posso concorrer?

    É que se me disserem que sim coloco aqui todas as alterações que já fiz ao motor de wordpress do Peopleware e ganho isto com uma “perna às costas”!

    Ou não posso porque o Vitor diz que o código é pertença do Peoplware?

    Vou ter de apelar ao Provedor?

  6. Fernando Faria diz:

    muito fixe eu ja dei php e gostei mas ainda nao conhecia este codigo.
    gostei bastante continua assim…
    ja agora vou aceitar o teu desafio ;)
    fico a espera da proxima quinta feira

  7. Pedro Pinto diz:

    ATENÇÃO ATENÇÃO !!!!

    O desafio é para hoje !!!!

  8. Speed diz:

    Excelente esta rubrica. Apenas acho que cada tutorial podia conter mais algumas informações, pois penso que é pouca matéria para “estudar” durante uma semana inteira. Uma vez que o objectivo é iniciar os leigos (meu caso) nesta programação, acho que um pouco mais de cada vez só ia alimentar a vontade de programar cada vez mais e melhor. Grande abraço.

  9. Bruno Bernardino diz:

    Ora bem, duas funçõezitas muito simples que eu costumo usar:

    [code]
    //– Retorna uma string com o código HTML de um link
    //– Ex.: getLink(’http://www.pplware.com’,'Peopleware’,'target=”_blank”‘);
    //– Output: Peoplware

    function getLink($url,$name,$params = ”) {
    $link = ‘‘.$name.’‘;
    return $link;
    }

    //– Retorna uma string com o código HTML de uma imagem
    //– Ex.: getImage(’http://www.pplware.com/wp-images/logo_colibri.jpg’,'Projecto Colibri’,'class=”logo”‘);
    //– Output:

    function getImage($image,$alt,$params = “”,$desc = “”) {
    if (exists($image,”,’url_file’)) {
    $html = ”;
    }
    else
    $html = $alt;
    return $html;
    }
    [/code]

  10. Bruno Bernardino diz:

    isto fez mal o parsing do código… aqui está de forma melhor:

    Ora bem, duas funçõezitas muito simples que eu costumo usar:

    [code]
    //– Retorna uma string com o código HTML de um link
    //– Ex.: getLink(’http://www.pplware.com’,'Peopleware’,'target=”_blank”‘);
    //– Output: <a href=”http://www.pplware.com” target=”_blank”>Peoplware</a>

    function getLink($url,$name,$params = ”) {
    $link = ‘<a href=”‘.$url.’”‘;
    if (!empty($params))
    $link .= ‘ ‘.$params;
    $link .= ‘>’.$name.’</a>’;
    return $link;
    }

    //– Retorna uma string com o código HTML de uma imagem
    //– Ex.: getImage(’http://www.pplware.com/wp-images/logo_colibri.jpg’,'Projecto Colibri’,'class=”logo”‘);
    //– Output: <img src=”http://www.pplware.com/wp-images/logo_colibri.jpg” alt=”Projecto Colibri” title=”Projecto Colibri” class=”logo” />

    function getImage($image,$alt,$params = “”,$desc = “”) {
    if (exists($image,”,’url_file’)) {
    $html = ‘<img src=”‘.$image.’” alt=”‘.$alt.’” title=”‘.$alt.’”‘;
    if (!empty($desc))
    $html .= ‘ longdesc=”‘.$desc.’”‘;
    if (!empty($params))
    $html .= ‘ ‘.$params;
    $html .= ‘ />’;
    }
    else
    $html = $alt;
    return $html;
    }
    [/code]

  11. nrocha diz:

    /* Fiz esta função há uns anos porque me dava muito trabalho fazer multiplos addslashes
    o objectivo é o fazer multiplos addslashes numa só linha e retornar o array, o uso que lhe dava era algo do genero:
    list($nome, $cidade, $pais) = addMultiSlashes($_POST[”nome”], $_POST[”cidade”], $_POST[”pais”]);
    e agora as variaveis $nome, $cidade e $pais têm o seu conteudo “slashed”

    Decidi partilhar esta função e não outra para alertar o pessoal que este tipo de coisas deve ser feita antes
    de fazer sql queries para evitar sql injections. Devem ter tambem em conta que se esperam um inteiro como por exemplo
    um id devem verificar se é realmente um inteiro…
    Sempre que possivel (ou seja, sempre :P) deve ser feita validação dos dados enviados, a regra é verificar apenas aquilo que
    é esperado, ou seja… se quero 2 letras, um espaço e um nº tenho que “matchar” isso, e não o que não tudo o resto..

    Já agora no meu velhinho site, podem ver mais programas e scripts em diversas linguagens.
    CoolMaster
    */
    function addMultiSlashes ($entities = FALSE) {
    $args = func_get_args();
    $ret = array();

    foreach ($args as $arg) {
    if ($entities)
    $arg = htmlentities($arg);
    $ret[] = addslashes($arg);
    }

    return $ret;
    }

  12. nrocha diz:

    Arre, não me lembrei que isto retirava a formatação do codigo… acho que no opera não aparecem os controlos para o code e não sei qual é de cor:] Paciencia.

  13. Pedro Pinto diz:

    Aiiiiiiiiiiiii que o pessoal que anda a tentar aprender vai-lhe dar o treco depois de ver estes código…eh eh he .. Como esperava, anda aqui pessoal que já sabe umas coisas…

    Pedro Pinto

  14. Bruno Bernardino diz:

    @nrocha
    Aqui não dá para por bbcode, mas faz o parsing de algumas tags html :)
    Boa função ;)

    @Pedro Pinto
    Penso que não estão muito complicadas, e se estiverem estamos (pelo menos eu) disponíveis a explicar “passo-a-passo” as funções.

    E, pelo menos da minha parte, “vivo” do PHP, por isso é normal que saiba mais uma coisita ou outra ;)

    Abraço

  15. AIR diz:

    Nunca gostei muito de programar, mas tive sempre curiosidade em aprender… nem que fosse meia dúzia de instruções para fazer qualquer coisa.
    Desde que este rubrica começou, tenho acompanhado sempre com grande entusiasmo.
    No início tive alguns problemas, mas depois de investir algum tempo no notepad ++, lá descobri.

    Parabéns por esta iniciativa! Continuem.

  16. Alexandre Rangel diz:

    Sou programador PHP e sem como é importante esses mini-tutos, comecei a despertar o interesse com um desses, bela iniciativa!!!

  17. JL diz:

    Pinto, trabalho muito bom.
    Sou iniciado e tenho feito as aulas todas com sucesso.
    Gostava que começasses a explicar como podemos pôr isto numa página de Internet.
    Obrigado

  18. Nuno Amaral diz:

    Acho melhor criarem um fórum para isto do PHP e outros

  19. Paulo Sousa diz:

    Óptimo…

    Para leigos curiosos como eu, isto é ouro sobre azul…
    Continuem o excelente trabalho…

    Obrigado

  20. Ricardo G. diz:

    E PHP + SQL também é útil?

  21. Agapito diz:

    Genial. Adorei. Continuem.

    Por causa disto estou a aprender PHP. E espero continuar.
    Mantenham a boa disposição e os tutoriais.

    Grande bem-haja.

  22. Rui Peixeiro diz:

    Primeiro que tudo, quero dar os parabéns pela iniciativa. Hoje, trabalho por conta própria (webdeveloper) e praticamente só trabalho com PHP e Javascript (ajax).
    Os primeiros passos em PHP também foram dados com estas pequenas coisas…
    A primeira coisa que se visse que fiz, foi uma “galeria”, em que me bastava por numa pasta as fotos numeradas e um txt com a descrição…. Também podem aqui tentar algo assim!

    Mas, agora cá fica um dos ultimos scrips que usei. Já todos foram a sites em que temos de meter um codigo de verificação por imagem. Aqui fica um php para gerar a imagem:

    Agora, basta noutro php chamar a imagem gerada por este php e comparar o valor inserido com o guardado em sessão!
    Simples, e aumenta a segurança dos nossos sistemas de login.

  23. nrocha diz:

    Já agora, como sabem o PHP e o MySQL andam de mãos dadas muitas vezes e é recomendado que se saiba o minimo de SQL para conseguir ter um site minimamente dinamico (claro que podem usar ficheiros ou outra coisa qualquer para gravar informações, mas o melhor é usar um DBMS).

    Em 2002 fiz um documento que da uma introdução a linguagem SQL e tenta explicar e demonstrar o que se pode fazer e como se pode fazer.
    Esta em inglês (que era muito fraco na altura, por isso peço desculpa:P)

    Encontra-se aqui: http://coolmaster.webhs.org/docs/sql.txt

    CoolMaster

  24. Pedro Pinto diz:

    @nrocha

    Parabens pelo tutorial. Eu gostei..ta porreiro.

    Temos de um dia destes pensar numa rúbrica “SQL aos Domingos - antes da missa :)

    Um abraço
    Pedro Pinto

  25. nrocha diz:

    ROTFL… “antes da missa” .. :P

  26. Agapito diz:

    @ Bruno Bernardino:

    Desculpa, mas há umas pontuações que não consigo perceber se são acentos, se é um apóstrofo, se são aspas. Já no post corrigido.

    Preciso que passes a “papinha” pelo passador outra vez, se faz favor.
    Abri ficheiro novo e escervi isto, tal e qual:

    ‘.$name.”;
    return $link;
    }
    ?>

    e dá o seguinte erro:

    Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in C:\xampp\htdocs\programa04.php on line 6

    Que é na linha 6, eu percebi. Onde está o erro, nem por isso. Onde está o erro? Porquê?

    Obrigado,
    Agapito

  27. Agapito diz:

    Ok, já percebi que isto lê o php. Só para verem com quem estão a lidar…
    Mesmo erro, mas com este código ( a ver se o vêem. No principio e fim são apostrofos):

    ‘ ‘.$name.”;
    return $link;
    }
    ?> ‘

    Agapito

  28. Agapito diz:

    Arre!

    ?php
    ‘function getLink($url,$name,$params = ”) {
    ‘$link = ‘ ‘.$name.’‘;
    ‘return $link;
    ‘}
    ?

    (faltam os )

  29. Agapito diz:

    Peço desculpa, mas não dá…
    :((

  30. Bruno Bernardino diz:

    é o seguinte, tens de usar pelicas (’) e não apóstrofos (`), ou aspas (”).

    Tenta copiar e colar o código e vê se consegues.

    O erro dá porque se começas uma string com ‘, tens de acabar com ‘ e não com “.

  31. Agapito diz:

    A ver se é desta que consigo mostrar o código. As plicas no início servem apenas para se ver o código completo, assim como os parentesis rectos

    Além disto, quando escrevem ” .$url. ” e semelhantes, é para ser mesmo isso, ou é para se escrever o endereço html?

    ”.$name.”;
    ‘return $link;
    ‘}
    ‘?>

    Obrigado pela paciência,
    Agapito

  32. Bruno Bernardino diz:

    hehe, tenta colocar isso num ficheiro de texto online ou assim e manda o link, senão nunca mais.

    de qualquer das formas, qualquer string/palavra começada por um dolar ($), significa que é uma variável, ou seja, pode ter qualquer valor, por exemplo, se tiveres
    [code]
    $url = “http://www.pplware.com”;
    echo “O URL é”.$url.”, ok?”;
    [/code]

    Isto vai imprimir no browser:
    [browser]
    O URL é http://www.pplware.com, ok?
    [/browser]

    Percebes a ideia?

  33. Agapito diz:

    Até à parte de escrever as variáveis, percebi (obrigado PPLware pelo tutorial).

    O que preciso de saber é se antes de escrever a function getLink(…), tenho de escrever o .$url. = endereço que quero mostrar, o .$name.= nome que lhe quero dar e o params a mesma coisa.

    Assim , percebo que a função getLink vai procurar as variáveis url,name e params a essa parte do código, fazendo-se de seguida o echo da função (mas esta parte já não tenho a certeza).

    Caso esteja completamente errado, vou ter de esperar pelos próximos tutoriais, a ver se aumento o vocabulário PHP.

    Caso o site traduza os nomes acima com ($), aqui fica o link para o código que tenho escrito:

    http://docs.google.com/Doc?id=dcwxbzqr_12d6m7cg

    Muito obrigado,
    Agapito

  34. Bruno Bernardino diz:

    @Agapito

    Tá quase lá, trocaste o sítio onde tens de mandar os argumentos :)

    O que deveria ser está aqui: http://www.brunobernardino.com/files/getlink.txt

    Abraço e vejo-te no tutorial de hoje ;)

  35. Agapito diz:

    @Bernardino

    Finalmente funciona. Eureka! Obrigado pela ajuda e pela paciência.

    Obrigado ao Peopleware por interagir e ajudar os seus leitores desta maneira.
    É sempre bom ter quem nos ajude. Continuem assim.

    Agapito

Deixe o seu comentário

Aviso: Todo e qualquer texto publicado na internet através deste sistema não reflete, necessariamente, a opinião deste weblog ou do(s) seu(s) autor(es). Os comentários publicados através deste sistema são de exclusiva e integral responsabilidade e autoria dos leitores que dele fizerem uso. O autor deste weblog reserva-se, desde já, o direito de excluir comentários e textos que julgar ofensivos, difamatórios, caluniosos, preconceituosos ou de alguma forma prejudiciais a terceiros. Textos de caráter promocional ou inseridos no sistema sem a devida identificação de seu autor (nome completo e endereço válido de email) também poderão ser excluídos.