PHP
downloads | documentation | faq | getting help | mailing lists | wiki | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

Tratando Formulários> <Sua primeira página PHP
Last updated: Fri, 28 Nov 2008

view this page in

Algo Útil

Vamos fazer alguma coisa um pouco mais útil agora. Nós iremos checar qual é o tipo de navegador que o visitante está utilizando para ver a nossa página. De fato, para fazer isto nós teremos que checar qual é o valor da string agente que o navegador envia como parte de sua requisição HTTP. Esta informação é armazenada em uma variável. Variáveis sempre começam com um símbolo de cifrão no PHP. A variável que nos interessa no momento é a $_SERVER["HTTP_USER_AGENT"].

Nota: Nota sobre as Auto-Globais do PHP
$_SERVER é uma variável especial reservada do PHP que contém todas as informações sobre o servidor web. Ela é conhecida como uma Auto-Global (ou Superglobal). Veja a página do manual relacionada as Auto-globais para mais informações. Estas variáveis especiais foram introduzidas no PHP » 4.1.0. Antes desta versão, nós usávamos os velhos arrays $HTTP_*_VARS, como o $HTTP_SERVER_VARS. Entretanto, este estilo antingo foi removido, porém ainda existem. (Veja a nota sobre códigos antigos.)

Para chamar esta variável, nós podemos fazer isto:

Exemplo #1 Imprimindo a variável (Elemento Array)

<?php echo $_SERVER["HTTP_USER_AGENT"]; ?>

Um exemplo de saída deste script poderia ser:

Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)
     

Há muitos tipos de variáveis disponíveis no PHP. No exemplo acima nós escrevemos um elemento Array. Arrays podem ser muito úteis.

$_SERVER é somente uma variável que é automaticamente disponibilizada para você pelo PHP. Uma lista de Variáveis Reservadas pode ser vista na seção Variáveis Reservadas do manual ou você pode pegar uma lista completa delas criando um arquivo como este:

Exemplo #2 Exibindo todas as variáveis pré-definidas usando a função phpinfo()

<?php phpinfo(); ?>

Se você carregar este arquivo no seu navegador você irá ver uma página com todas as informações sobre o PHP junto com uma lista de todos os tipos de variáveis disponíveis para você.

Você pode colocar mútiplas declarações PHP dentro da tag PHP e criar pequenos blocos de códigos que faem muito mais do que um simples echo. Por exemplo, se você quer checar se o navegador é o Internet Explorer faça algo como isso:

Exemplo #3 Exemplo usando controles de declarações e funções

<?php
if (strstr($_SERVER["HTTP_USER_AGENT"], "MSIE")) {
    echo 
"Você está usando o Internet Explorer<br />";
}
?>

Um exemplo de Saída seria:

Você está usando o Internet Explorer<br />

Aqui nós mostraremos alguns novos conceitos. Nós temos a declaração if. SE você é familiar com a sintaxe básica usada pela linguagem C isto parecerá ser lógico para você. Se você não conhece a linguagem C ou alguma outra linguagem onde a sintaxe usada acima é usada, você provavelmente precisará de um livro introdutório sobre o PHP, dê uma lida nos primeiros capítulos do livro, ou leia a parte sobre a Referência da Linguagem no manual. Você pode encontrar uma lista de livros sobre PHP em at » http://www.php.net/books.php.

O segundo conceito que iremos abordar é a chamada à função strstr(). A função strstr() é trazida junto com o PHP, ela faz uma busca em uma palavra por uma outra palavra. Neste caso nós procuramos pela palavra "MSIE" dentro de $_SERVER["HTTP_USER_AGENT"]. Se a palavra for encontrada, a função returna TRUE e se ela não for encontrada a função retorna FALSE. Se o retorno for TRUE, a declaração if ocorre e o código dentro dela é executado. Caso contrário, o código não é executado. Sinta-se à vontade para criar exemplos similares com o if, else, e outras funções como a strtoupper() e strlen(). Cada uma delas está no manual com seus respectivos exemplos.

Nós podemos avançar agora e mostrar à você como alternar entre os modos PHP mesmo que você esteja executando blocos de códigos:

Exemplo #4 Mesclando entre os modos PHP e HTML

<?php
if (strstr($_SERVER["HTTP_USER_AGENT"], "MSIE")) {
?>
<h3>strstr retorna verdadeiro</h3>
<center><b>Você está usando o Internet Explorer</b></center>
<?php
} else {
?>
<h3>strstr retorna falso</h3>
<center><b>Você não está usando o Internet Explorer</b></center>
<?php
}
?>

Um exemplo de saída deste script poderia ser:

<h3>strstr retorna verdadeiro</h3>
<center><b>Você está usando o Internet Explorer</b></center>

Ao invés de usar a declaração echo do PHP para imprimir a saída dos dados, nós saímos do modo do PHP e usamos o HTML normal. O importante à notar aqui é que a lógica do script continua intacta. Somente alguns blocos HTML será enviados de acordo com o que a declaração strstr() retornar, ou seja TRUE ou FALSE. Em outras palavras, se a palavra MSIE for encontrada ou não.



Tratando Formulários> <Sua primeira página PHP
Last updated: Fri, 28 Nov 2008
 
add a note add a note User Contributed Notes
Algo Útil
Dave
03-Oct-2008 10:12
In my opinion this tutorial is already following the excellent approach of using small focused examples and building on them.  This makes it easier to understand and gives the reader a chance to try some simple experiments without having to wade through the muck of a complex framework.

I assume at some point you will show the type of frameworks you can use in PHP but it would be foolish to burden you reader with those until they understand the basics.
Liz
28-Sep-2008 03:08
Ducky,

I have started teaching my 14 year old daughter basics of web development. We've started off with separating document structure form presentation from logic. It's actually worked out well - and she appreciates that it will help her down the road.

Please do NOT underestimate the intelligence of your readership by assuming that such "complex things" as best practices can't be taught from the start. Teaching best practices from the start are the types of things that give students a leg up when they get out into the work force and have to ramp up in new job situations - little things like that do get noticed by employers and coworkers.
Anonymous
02-Sep-2008 05:26
To ducky:

Actually it's a good idea to start the habit of separating logic from presentation since the beginning (like when you're just starting to learn html and css). Otherwise you'll get used to not work that way, and when you want to do it it'll be much harder.
rok
17-Jun-2008 08:25
Seperating logic and presentation should be introduced at start. I'm just learning PHP but have background in Perl, C and C++ and find mixed html/code extremly complex to maintain. It would be very nice if this beginners tutorial already presented on how to seperate code/html. Now to read up on that smarty ;).
sako
22-Apr-2008 09:36
I don't think there is a bad time to start separating logic from presentation. It is actually a good idea to start doing this from the get-go so it becomes a habit. This is a great habit.. Everything now a days is going away from mixing logic and presentation for simplicity sake among other things (look at html and css). I think a good thing to read up on is smarty. It can do wonders separating your logic from presentation.
ducky
03-Apr-2008 10:54
To the above poster:

That's probably too much to think about when you're starting out... You should probably at first just concentrate on getting the stuff running and learning syntax before you consider best practices and the like.
rfantin at coralwood dot com
20-Dec-2006 06:00
While it's easy to get carried away mixing your logic and presentation together since it's so easy to do, your better off using PHP within HTML only to fill in values, or include other source files.

Keep your actual processing in separate libraries that are called before you send any headers to the page. Try to avoid calling a script that retrieves or sets information, or manipulates it in the middle of your HTML. You'll find it's much easier to maintain.

Tratando Formulários> <Sua primeira página PHP
Last updated: Fri, 28 Nov 2008
 
 
show source | credits | stats | sitemap | contact | advertising | mirror sites