Curso completo php

of 135 /135
Modulo01 – Introdução o O que é PHP? o Pra que serve o PHP? o Como funciona o PHP? o Dicas úteis na hora de programar o Variáveis o Operadores o Exercícios O que é PHP? PHP significa Personal Home Page ou Hypertext Preprocessor, é uma linguagem de script Open Source E ela não precisa ser compilada, o PHP é executado no servidor e é processado na hora que a página for executada. Pra que serve o PHP? Para o desenvolvimento de aplicações Web ou sistemas intranet. E o PHP conecta com diversos bancos de dados O PHP também faz sistemas de controles statisticos, bate papos, fórum, portais, enquetes, blogs, entre outros sistemas conhecidos. Como Funciona o PHP? O PHP funciona sendo executado por um programa servidor web configurado com o PHP como CGI ou filtro isapi e o PHP processa a página e envia apenas o resultado do processo em HTML para o usuário CGI - Commom Gateway Interface (Interface Comum de Gateway) é uma interface definida de maneira a possibilitar a execução de programas sob um servidor ISAPI é uma DLL personalizada que está no mesmo espaço de memória que o servidor Web, e é chamado pelo servidor da web em resposta a cada solicitação HTTP. O PHP só é interpretado dentro das tags simples <? ?> ou <?PHP ?> para suporte a XML ou XHTML O PHP também funciona com essas tag: <script language = "php"> Código... </script> O PHP também funciona com tags ASP: <% %> Uma página em PHP tem que ter a extensão .php Se não for usar nenhuma tag PHP na página deixa a com .html Daí o PHP não precisara ficar lendo essa página em busca de tags php

Embed Size (px)

Transcript of Curso completo php

  • Modulo01 Introduo

    o O que PHP?

    o Pra que serve o PHP?

    o Como funciona o PHP?

    o Dicas teis na hora de programar

    o Variveis

    o Operadores

    o Exerccios

    O que PHP?

    PHP significa Personal Home Page ou Hypertext Preprocessor, uma linguagem de script

    Open Source

    E ela no precisa ser compilada, o PHP executado no servidor e processado na hora

    que a pgina for executada.

    Pra que serve o PHP?

    Para o desenvolvimento de aplicaes Web ou sistemas intranet.

    E o PHP conecta com diversos bancos de dados

    O PHP tambm faz sistemas de controles statisticos, bate papos, frum, portais, enquetes,

    blogs, entre outros sistemas conhecidos.

    Como Funciona o PHP?

    O PHP funciona sendo executado por um programa servidor web configurado com o PHP

    como CGI ou filtro isapi e o PHP processa a pgina e envia apenas o resultado do

    processo em HTML para o usurio

    CGI - Commom Gateway Interface (Interface Comum de Gateway) uma interface

    definida de maneira a possibilitar a execuo de programas sob um servidor

    ISAPI uma DLL personalizada que est no mesmo espao de memria que o servidor

    Web, e chamado pelo servidor da web em resposta a cada solicitao HTTP.

    O PHP s interpretado dentro das tags simples ou para suporte a XML

    ou XHTML

    O PHP tambm funciona com essas tag:

    Cdigo...

    O PHP tambm funciona com tags ASP:

    Uma pgina em PHP tem que ter a extenso .php

    Se no for usar nenhuma tag PHP na pgina deixa a com .html

    Da o PHP no precisara ficar lendo essa pgina em busca de tags php

  • e no final de cada linha voc precisa usar um ;( ponto e vrgula ) idntico linguagem C

    echo() construtor da linguagem ele serve para exibir algo na tela e no obrigatrio usar

    parnteses ().

    Use ' ( Apstrofos ) para delimitar a string( textos ) do seu script exemplo:

    ou modo simples para uma linha:

    As " ( aspas ) se a string delimitada entre " ( aspas ), o PHP entende mais seqncias de

    escape para caracteres especiais:

    \n = nova linha

    \r retorno da linha

    \t tab

    Tambm da para delimitar as string usando a sintaxe heredoc ("

  • Dicas uteis na hora de programar

    Para desenvolver um script e evitar erros

    Programe com essas opes no php.ini:

    display_errors = on => deixa ativado a opo para exibir mensagens de erro ou alertas e

    avisos sobre alguma coisa que esta errada

    display_startup_errors = On => use essa opo em on s na hora que estiver

    desenvolvendo seus script ,tem erros que so iniciados e o display_errors no mostra

    error_reporting = E_ALL => mostra todos possveis erros

    register_globals = off => a partir do PHP 4.2.0 passou a se usar ela em off por motivo de

    seguranas

    exit; serve para a execuo do script ,ento use o exit sempre que quiser debugar seu

    script, ou em funes e estruturas de controles

    outras dicas nunca esquea de colocar o ; ( ponto e vrgula ) no final de cada linha.

    e sempre usar as aspas ou apostrofos em string exemplos:

    $nome = "Mario";

    $array['array1'];

    $_POST['campo'];

    echo "Bom estudo";

    Variveis

    As variveis no PHP so representadas por um cifro ($) seguido pelo nome da varivel.

    Os nomes de varivel no PHP fazem distino entre maisculas e minsculas.

    Um nome de varivel vlido se inicia com uma letra ou sublinhado

    Atribuindo valores a uma varivel:

    $teste = "testando";

    $numero = 1234;

    $teste2 = "testando 1234";

    Operadores

    Concatenando uma varivel

    Concatenar significa juntar as variveis e no PHP usa-se o . ( ponto ) para juntar as

    variveis

  • Exemplo:

    $nome = "Joo ";

  • Operadores de comparao

    $a == $b Igual Verdadeiro (TRUE) se $a igual a $b.

    $a === $b Idntico Verdadeiro (TRUE) se $a igual a $b, e eles so do mesmo tipo

    (somente para PHP4).

    $a != $b Diferente Verdadeiro se $a no igual a $b.

    $a $b Diferente Verdadeiro se $a no igual a $b.

    $a !== $b No idntico Verdadeiro de $a no igual a $b, ou eles no so do mesmo tipo

    (somente para o PHP4).

    $a < $b Menor que Verdadeiro se $a estritamente menor que $b.

    $a > $b Maior que Verdadeiro se $a estritamente maior que $b.

    $a = $b Maior ou igual Verdadeiro se $a maior ou igual a $b.

    Operadores Lgicos

    $a and $b E Verdadeiro (TRUE) se tanto $a quanto $b so verdadeiros.

    $a or $b OU Verdadeiro se $a ou $b so verdadeiros.

    $a xor $b XOR Verdadeiro se $a ou $b so verdadeiros, mas no ambos.

    ! $a NO Verdadeiro se $a no verdadeiro.

    $a && $b E Verdadeiro se tanto $a quanto $b so verdadeiros.

    $a || $b OU Verdadeiro se $a ou $b so verdadeiros.

    Operadores de Incremento/Decremento

    ++$a Pr-incremento Incrementa $a em um, e ento retorna $a.

    $a++ Ps-incremento Retorna $a, e ento incrementa $a em um.

    --$a Pr-decremento Decrementa $a em um, e ento retorna $a.

    $a-- Ps-decremento Retorna $a, e ento decrementa $a em um

    Fim do primeiro mdulo

  • Modulo02 Introduo part2

    o Conceitos bsicos sobre a Internet em modo geral

    o Variveis variveis

    o Estruturas de Controle

    o Funes

    o return

    Conceitos bsicos sobre a Internet em modo geral

    Internet uma rede de comunicaes de abrangncia mundial e a World Wide Web uma

    forma particular de utilizao da Internet. A World Wide Web ou WWW, ou W3 um dos

    servios baseados em hipertextos.

    A Web o conjunto de todos navegadores, servios, arquivos ou recursos,e qualquer

    outro servio disponvel atravs do browser.

    A Web est relacionadaa distribuio de documentos e informaes pela Internet, e o

    HTTP tem a funo de servir como protocolo de rede da Web.

    Protocolo de Comunicao

    Um protocolo um conjunto de regras que administra procedimentos de troca de

    informaes

    HTTP

    O HTTP (HyperText Transfer Protocol) surgiu em volta dos anos 90 no CERN (European

    Center for high-Energy Physics) na Sua. Quem criou o HTTP foi um fisico ingls seu

    nome era Tim Berner-Lee.

    O Protocolo HTTP um protocolo de rede utilizado para entregar virtualmente todos os

    arquivos e outros dados.

    O HTTP responsvel pela maioria das transaes realizadas na Internet . O surgimento

    do HTTP veio da necessidade de distribuio

    de informaes na Internet, e para que essas transferncias fossem possveis houve a

    necessidade de criar um padro de comunicao

    entre clientes e os servidores Web, ou seja, de que forma seria feita as requisies de

    dados e como seriam aceitas e respondidas

    pelos servidores de recursos na Internet.

  • TCP/IP

    O TCP/IP (Protocolo de Controle de Transmisso/Internet Protocol) (TCP) Tem como

    funo deixar confivel a transferncia de informao

    (IP) recebe ou envia pacotes individuais de informaes e os envia ao seu destino certo. O

    TCP/IP cria a conetividade entre navegadores e servidores, a Web tambm utiliza seu

    prprio protocolo o HTTP para troca de informaes entre clientes e servidores. O HTTP

    utilizado pelos clientes para requisies de documentos ou servios dos servidores e o

    HTTP funciona com a conexo TCP/IP (sockets TCP/IP).

    HTML (HyperText Markup Language) ou Linguagem de marcao de Hiper Textos

    estabelece o contedo de um documento hipertexto conforme a World Web Consortium

    (W3C).

    URL,URI,URN

    URL (Uniform Resource Locator), URI (Uniform Resource Identifier) URN (Uniform

    Resource Name)

    URI uma forma generalizada para se referir a um recurso: um recurso inclui um URL e

    um URN, ou seja, URN se refere ao nome do recurso em si

    por exemplo um arquivo e a URL se refere localizao desse recurso, e ambos formam

    um URI: a identificao uniforme de um mes recurso

    XHTML e XML

    XHTML considerado o futuro do HTML e uma forma de transio para XML. XHTML

    possui elementos de formatao da HTML 4.01, mas possui alguma regras definidas pela

    XML. XML um padro para descrio de dados, ao passo que HTML se limita

    descrio de contedo.

    XML

    XML (Extensible Markup Language) permite que voc crie seus prprios conjuntos de

    elementos de marcao, o XML torna possvel a a estruturao dos dados

    GET

    O GET o mtodo padro para recuperar ou requisitar um recurso por meio do protocolo

    HTTP. O GET solicita ao servidor para que encontre e retorne qualquer dado que estiver

    identificado pelo URI. Se o URI apontar para um arquivo, o servidor dever retornar o

    arquivo(um recurso esttico), se apontar para um script.

  • CGI(um recurso dinmico) o servidor dever retornar o resultado do script executado.

    POST

    A requisio por meio do mtodo POST utilizada para enviar dados ao servidor para

    serem processados e trabalhados de alguma forma de

    programa. O uso mais comum do mtodo POST submeter um formulrio de dados,

    nesse caso o cabealho Content-Type muitas veses possui a descrio application/x-www-

    form-urlencoded e o cabealho Content-Length fornece o comprimento dos dados do

    formulrio codificado na URL.

    O mtodo GET tambm pode ser utilizado para submeter e enviar dados de um formulrio,

    mas esses dados sero codificados na URL e anexados URI.

    O mtodo POST oferece maior segurana em relao aos dados transferidos, pois os

    dados faro parte do corpo da mensagem, enquanto no GET os dados sero anexados

    URL, ficando a mostra para o usurio, podendo ser alterados facilmente antes de serem

    enviados.

    Variveis variveis

    Variveis so os nomes de variveis que podem ser criadas e utilizadas dinamicamente.

    Uma varivel normal criada numa instruo como:

    PHP

    Uma varivel pega o valor de uma varivel e a trata com o nome de uma varivel. No

    exemplo acima, hello pode ser utilizada como o

    nome de uma varivel utilizando dois sinais de cifro:

    PHP

  • Estruturas de Controle

    O que so estruturas de controle?

    So contrues da linguagem que permitem que voc controle o fluxo do seu

    programa...nmero de vezes que ele ser executado...como e quando ele ser

    desviado...enfim as estruturas de controle esto entre as mais importantes

    implementaes das linguagens de programao, incluindo o PHP...

    As estruturas de linguagem implementadas no PHP so:

    if;

    else;

    elseif;

    while;

    do.. while;

    for;

    foreach;

    break;

    continue;

    switch;

    If com certeza uma das mais importantes estruturas de controle do PHP. Ela permite a

    execuo condicional de um pedao do seu cdigo... A sintaxe da mesma a seguinte:

    if(expresso){

    instrues...

    }

    Sendo que a expresso aquilo que ser testado pelo if.

    Ex:

    Suponha que voc queira verificar se o usurio digitou mesmo um determinado nmero,

    10 por exempo.

    PHP

    Note que nesse exemplo as chaves poderiam ser omitidas e no teriamos problemas de

    sintaxe, pois temos apenas uma instruo abaixo o if...

    Caso tivessemos mais, a sim seria obrigatrio, mas por questo de organizao e

    legibilidade costumo colocar sempre.

  • O if retorna um valor boleano, ou true caso a condio seja verdadeira, ou false caso a

    condio falhe...Digamos que nosso programa seja apenas isso e se o usurio digitar

    qualquer valor diferente de 10, nada seria mostrado na tela.

    Mas geralmente voc vai querer excecutar uma instruo para quando o teste do if for

    false. a que entra o else "seno". Ele permite instruir ao script para executar um outro

    fragmento de cdigo caso o if de false...

    ex:

    PHP

    Elseif

    Elseif, como seu nome sugere, uma combinao de if e else.

    Ele permite um poder de deciso maior ao seu script, pois se o teste 1 falhar ele tentar

    executar o segundo e assim por diante, segue um exemplo clssico de seu uso...

    PHP

  • Dica: sempre que abrir uma chave "{" feche logo em seguida "}" para evitar esqueer de

    fazer isso mais tarde...

    while

    Loops while so o tipo mais simples de criar um 'loop' em PHP. O formato bsico de um

    comando while :

    while (expressao) instrues

    O significado de um comando while simples. Ele pede que o PHP execute os comandos

    aninhados repetidamente, enquanto a expresso do while avaliada como TRUE. O valor

    da expresso verificada cada vez que se passa no comeo do 'loop', desta forma,

    mesmo que este valor mude durante a execuo do(s) comando(s) aninhado(s), a

    execuo no parar at que o fim da iterao (cada vez que o PHP executa os comandos

    dentro do 'loop' uma iterao). s vezes, se a expresso while for avaliada como FALSE

    logo no incio, o(s) comando(s) aninhado(s) no ser(o) rodado(s) nem uma vez sequer.

    Como no comando if, voc pode agrupar mltiplos comandos dentro do mesmo lao while

    englobando um grupo de instrues com chaves, ou usando a sintaxe alternativa:

    while (expressao)

    {

    instrucoes ...

    }

    Para ficar mais claro de entender, vamos montar um script que escreva os nmeros de 1 a

    10 um abaixo do outro, ok?

    PHP

    do..while

    Loops do while so bem similares aos loops while, exceto pelo fato de que a condio

    verificada no fim de cada iterao em vez de no comeo.

    H apenas uma sintaxe para loops do..while:

    PHP

  • ?>

    Note que nessa estrutura o comando sempre ser executado ao menos uma vez...

    pos a condio verificado apenas no final, ou seja aps a primeira interao...

    for

    Loops for so os laos mais complexos em PHP, pois no mesmo corpo voc inicia a

    varivel de controle, diz at quando ser executada, e faz o incremento, ou decremento

    dependendo do caso. Sua sitaxe a seguinte...

    for (expr1; expr2; expr3) {

    instrucoes

    }

    Vamos ao nosso exemplo que imprime os nmeros de 1 a 10, mas dessa vez vamos nos

    aventurar mais, vamos montar a tabuada do 10, rs...Super til...

    PHP

    Vamos a outro exemplo espetacular. Lembra dos simpsons onde o pobre barth sempre

    fica de castigo escrevendo 500 vezes algo no quadro negro? Se ele soubesse php seria

    muito mais simples...

    PHP

    foreach

    Esse construtor da lingagem oferece uma maneira fcil de trabalhar com matrizes "arrays".

    Foreach funciona somente com arrays, e lanar um erro se tentar utiliz-lo em uma

    varivel de qualquer tipo diferente ou vamos a um exemplo de seu uso.

    PHP

    foreach (expressao_array as $chave => $valor){ instrucoes }

  • PHP

  • foreach (array(1, 2, 3, 4, 5) as $v) {

    echo "$v\n";

    }

    ?>

    Funes

    O que uma funo?

    Funes so responsveis por realizar uma ou mais tarefas definidas ou no pelo

    programador. No entendeu? Ok.

    Suponhamos que dentro de um script PHP, voc ir usar uma mesma expresso

    matemtica vrias vezes, ex:

    echo 10+(5*6)/14-2;

    echo 10+(5*3)/14-2;

    echo 10+(5*2)/14-2;

    Obs.: No echo() no necessrio o uso de parnteses.

    Repare que a nica coisa que mudou foi o nmero multiplicado (6,3,2), mas seria muito

    mais fcil se crissemos uma funo pra isso. Ficaria algo como:

    function expressao($valor) {

    echo 10+(5* $valor)/14-2;

    }

    Expresses

    Ento como ficariam as expresses? Simples:

    expressao(6);

    expresso(3);

    expresso(2);

    Como so definidas as funes?

    Uma funo definida usando a palavra function, seguido pelo nome da funo e por

    parntese:

    function nomeFuncao()

    Em funes podem ser usadas tanto letras minsculas como maisculas. Podem ser

    usados tambm underlines e nmeros (no caso de nmeros, no como primeiro caracter).

    Errado: function 2quebraLinha() {

    Errado: function [email protected]() {

    Voc tambm pode usar variveis dentro dos parnteses. Estas devem ser separadas por

    vrgulas, as variveis definidas aqui s podero ser usadas dentro das funes, elas

    podero ter um valor definido. Quando for usar a funo, se voc definir um valor no local

    da varivel, o valor padro ser perdido, e o novo valor ser dado quela varivel.

  • Um exemplo:

    function mostraValor($variavel= 'padro') {

    echo $variavel;

    }

    Nesse caso a string padro foi definida padro para a varivel $variavel. Se voc usar a

    funo sem definir nenhum argumento, ela ir mostrar o texto padro, no caso padro:

    mostraValor();

    Mas se voc colocar um outro valor dentro dos parnteses no uso da funo, o valor novo

    definido ser mostrado:

    mostraValor(Novo texto aqui);

    Ir mostrar Novo texto aqui.

    A mesma coisa vale para mais argumentos definidos:

    function mostraValor($valor=padro,$segundoValor) {

    Depois dos parnteses ser usando chaves e toda definio da funo dever estar dentro

    dela:

    function mostraValor($valor=padro) {

    // Aqui os parmetros da funo

    }

    Return

    O que return?

    return palavra usada pra retornar algum valor da funo para uma nova varivel definida,

    como exemplo, vamos voltar primeira expresso matemtica: Se voc no quisesse

    mostrar as expresses e sim guardar os resultados em variveis, voc poderia usar uma

    funo parecida com essa:

    function expressao($valor) {

    $novoValor = 10+(5* $valor)/14-2;

    return $novoValor;

    }

    Assim, uma nova varivel poderia receber o resultado. Seguindo os exemplos anteriores,

    ficaria assim:

    $exp1 = expressao(6);

    $exp2 = expressao(3);

    $exp3 = expressao(2);

  • O uso do "return" significa o fim da funo, tudo que for usado aps o return er perdido.

    Obs.: S quero ressaltar que na funo podem ser usados variveis de qualquer tipo,

    inteiros, strings, boolean, arrays, etc, os valores retornadas (com o return) seguem a

    mesma regra.

    Fim.

  • Modulo 3 Introduo part3

    Variveis Predefinidas

    Escopo de variveis

    Cookies

    Sessions

    Variveis Predefinidas

    $GLOBALS

    Contm um referncia para todas as variveis que so atualmente disponveis dentro do

    escopo global do script. As chaves desse array so os nomes das variveis globais.

    $GLOBALS existe desde o PHP 3.

    $_GET

    Variveis postadas para o script via mtodo HTTP GET. Anlogo ao antigo

    array $HTTP_GET_VARS(que ainda continua disponvel, mas em decadncia).

    $_POST

    Variveis postadas para o script via mtodo HTTP POST. Anlogo ao antigo

    array$HTTP_POST_VARS (que ainda continua disponvel, mas em decadncia).

    $_COOKIE

    Variveis postadas para o script via cookies HTTP. Anlogo ao antigo

    array $HTTP_COOKIE_VARS(que ainda continua disponvel, mas em decadncia).

    $_FILES

    Variveis postadas para o script via transferncia de arquivos HTTP. Anlogo ao antigo

    array$HTTP_POST_FILES (que ainda continua disponvel, mas em decadncia).

    Veja uploads via mtodo POST para maiores informaes.

    $_ENV

    Variveis disponveis no script do ambiente de execuo. Anlogo ao antigo array

    $HTTP_ENV_VARS (que ainda continua disponvel, mas em decadncia).

    $_REQUEST

    Variveis postadas para o script por todas os mecanismos de input GET, POST, e

    COOKIE no podem ter seu contedo garantido de qualquer forma.

    A presena e a ordem de incluso das variveis nesse array definida de acordo com a

    diretiva de configurao variables_order. Este array no tem um equivalente nas verses

    anteriores do PHP 4.1.0. Veja tambm import_request_variables().

    $_SESSION

    Variveis que esto atualmente registradas na sesso do script. Anlogo ao antigo array

    $HTTP_SESSION_VARS (que ainda continua disponvel, mas em decadncia).

    Veja a sesso funes de manipulao de Sesses para maiores informaes.

    $_SERVER

  • Variveis criadas pelo servidor web ou diretamente relacionadas ao ambiente de execuo

    do script atual. Anlogo ao antigo array $HTTP_SERVER_VARS (que ainda continua

    disponvel, mas em decadncia).

    $_SERVER um array contendo informaes como headers, caminhos e localizaes do

    script. Os itens deste array so criados pelo servidor web. No h garantias que todos os

    servidores web gerem todas elas: alguns servidores talvez omitam algumas ou geram

    outras que no esto listadas aqui. Mesmo assim, um grande nmero dessas variveis

    esto de acordo com a especificao CGI 1.1, ento voc pode esperar encontr-las

    nesse array.

    PHP_SELF

    O nome do arquivo do script atualmente em uso, relativo ao document root. Por exemplo,

    $_SERVER['PHP_SELF'] em um script com o endereo

    http://example.com/test.php/foo.bar pode ser /test.php/foo.bar. A constante __FILE__

    contm o caminho completo e nome do arquivo (mesmo includo) atual.

    Se estiver rodando o PHP em linha de comando, esta varivel no est disponvel.

    argv

    Array de argumentos passado para o script. Quando o script executado na linha de

    comando, isto permite um acesso aos parmetros de linha de comando no estilo do C.

    Quando chamado via mtodo GET, ele conter a query string.

    argc

    Contm o nmero de parmetros da linha de comando passados para o script (se

    executando da linha de comando).

    GATEWAY_INTERFACE

    O nmero de reviso da especificao CGI que o servidor est utilizando, por exemplo :

    'CGI/1.1'.

    SERVER_NAME

    O nome host do servidor onde o script atual executado. Se o script est rodando em um

    host virtual, este ser o valor definido para aquele host virtual.

    SERVER_SOFTWARE

    A string de identificao do servidor, fornecida nos headers quando respondendo a

    requests.

    SERVER_PROTOCOL

    Nome e nmero de reviso do protocolo de informao pelo qual a pgina foi requerida,

    por exemplo 'HTTP/1.0';

    REQUEST_METHOD

    Contm o mtodo de request utilizando para acessar a pgina. Geralmente 'GET', 'HEAD',

    'POST' ou 'PUT'.

    QUERY_STRING

    A query string (string de solicitao), se houver, pela qual a pgina foi acessada.

    http://example.com/test.php/foo.bar
  • DOCUMENT_ROOT

    O diretrio raiz sob onde o script atual executado, como definido no arquivos de

    configurao do servidor.

    HTTP_ACCEPT

    O contedo do header Accept: da requisio atual, se houver.

    HTTP_ACCEPT_CHARSET

    O contedo do header Accept-Charset: da requisio atual, se houver. Exemplo: 'iso-8859-

    1,*,utf-8'.

    HTTP_ACCEPT_ENCODING

    O contedo do header Accept-Encoding: da requisio atual, se houver. Exemplo: 'gzip'.

    HTTP_ACCEPT_LANGUAGE

    O contedo do header Accept-Language: da requisio atual, se houver. Exemplo 'en'.

    HTTP_CONNECTION

    O contedo do header Connection: da requisio atual, se houver. Exemplo: 'Keep-Alive'.

    HTTP_HOST

    O contedo do header Host: da requisio atual, se houver.

    HTTP_REFERER

    O endereo da pgina (se houver) atravs da qual o agente do usurio acessou a pgina

    atual. Essa diretiva informada pelo agente do usurio.

    Nem todos os browsers geram esse header, e alguns ainda possuem a habilidade de

    modificar o contedo do HTTP_REFERER como recurso. Em poucas palavras, no

    confivel.

    HTTP_USER_AGENT

    O contedo do header User-Agent: da requisio atual, se houver. uma string denotando

    o agente de usurio pelo qual a pgina acessada.

    Um exemplo tpico : Mozilla/4.5 [en] (X11; U; Linux 2.2.9 i586). Alm de outras coisas,

    voc pode utilizar este valor com get_browser() para personalizar a gerao de suas

    pginas para as capacidades do agente do usurio.

    REMOTE_ADDR

    O endereo IP de onde o usurio est visualizado a pgina atual.

    REMOTE_HOST

    O nome do host que o usurio utilizou para chamar a pgina atual. O DNS reverso

    (lookup) do REMOTE_ADDR do usurio.

    Nota: Seu servidor web precisa estar configurado para criar essa varivel. Por exemplo, no

    Apache voc precisa colocar um HostnameLookups On

    dentro do httpd.conf. Veja tambm gethostbyaddr().

    REMOTE_PORT

    A porta TCP na mquina do usurio utilizada para comunicao com o servidor web.

  • SCRIPT_FILENAME

    O caminho absoluto o script atualmente em execuo.

    Nota: Se o script for executado pela CLI com um caminho relativo, como file.php ou

    ../file.php, $_SERVER['SCRIPT_FILENAME'] ir conter o caminho relativo especificado

    pelo usurio.

    SERVER_ADMIN

    O valor fornecido pela diretiva SERVER_ADMIN (do Apache) no arquivo de configurao

    do servidor. Se o script est sendo executado em um host virtual, este ser os valor

    definido para aquele host virtual.

    SERVER_PORT

    A porta na mquina servidora utilizada pelo servidor web para comunicao. Como default,

    este valor '80'. Utilizando SSL, entretanto, mudar esse valor para a porta de

    comunicao segura HTTP.

    SERVER_SIGNATURE

    String contendo a verso do servidor e nome do host virtual que adicionado s pginas

    geradas no servidor, se ativa.

    PATH_TRANSLATED

    O caminho real do script relativo ao sistema de arquivos (no o document root), depois

    realizou todos os mapeamentos de caminhos (virtual-to-real).

    Nota: A partir do PHP 4.3.2, PATH_TRANSLATED no mais existe implicitamente sob a

    SAPI do Apache 2, ao contrrio da mesma situao no Apache 1, onde ela tinha o mesmo

    valor da varivel de servidor SCRIPT_FILENAME, quando a mesma no era configurada

    pelo Apache. Essa mudana foi realizada para conformidade com a especificao CGI,

    onde PATH_TRANSLATED deve existir somente se PATH_INFO estiver definida.

    Apache 2 users may use AcceptPathInfo = On inside httpd.conf to define PATH_INFO.

    SCRIPT_NAME

    Contm o caminho completo do script atual. til para pginas que precisam apontar para

    elas mesmas (dinamicamente). A constante __FILE__ contm o caminho completo e nome

    do arquivo (mesmo includo) atual.

    REQUEST_URI

    O URI fornecido para acessar a pgina atual, por exemplo, '/index.html'.

    PHP_AUTH_USER

    Quando executando sob o Apache como mdulo e fazendo autenticao HTTP, esta

    varivel estar definida com o username fornecido pelo usurio.

    PHP_AUTH_PW

    Quando executando sob o Apache como mdulo e fazendo autenticao HTTP, esta

    varivel estar definida com a senha fornecida pelo usurio.

    AUTH_TYPE

    Quando executando sob o Apache como mdulo e fazendo autenticao HTTP, esta

    varivel estar definida com o tipo de autenticao utilizado.

  • Esta uma varivel 'superglobal', ou automaticamente global. Isto significa que ela

    disponvel em todos os escopos (nveis) de um script.

    Voc no precisa fazer um global $_SERVER; para pode acess-la dentro de funes ou

    mtodos, como era necessrio com $HTTP_SERVER_VARS.

    Escopo de variveis

    Quando uma varivel usada dentro de uma funo, pode haver uma outra varivel com o

    mesmo nome que utilizada em outra funo ou no cdigo do programa principal. So

    espaos de memria diferentes, e cada uma funciona dentro do seu contexto, ou seja, a

    varivel definida dentro de uma funo s pode ser acessada ali dentro. Fora dali seu valor

    no acessvel em nenhuma outra parte do programa, mas possvel usar dentro de uma

    funo o valor de uma varivel existente tambm no programa principal, tem dois jeitos

    para isso:

    Defini-la como global no inicio da funo ou utilizar o array predefinido $GLOBALS, que

    utiliza os nomes das variveis como associativa

    Exemplo:

    PHP

    Cookies

    O famoso cookie que ns conhecemos hoje foi criado em junho de 1994

    Antigamente cada visita a um site era como se fosse a primeira visita, sem forma

    automtica de se saber se um usurio j esteve ali, ou que pginas havia consultado.

    Qualquer transao comercial tinha que ser feita do incio ao fim em uma s visita, e os

    visitantes tinham que passar pelas mesmas pginas vezes seguidas ,era como visitar uma

    loja onde o vendedor tinha amnsia.

    O criador do cookie chama-se Lou Montulli, ele foi o nono funcionario a ser contratado por

    uma empresa que logo depois se tornaria a Netscape Communications, Montulli era um

    hacker, mas naquele tempo o nome hacker era usado no bom sentido quando uma pessoa

  • entendia muito de computadores. Quando ele teve a ideia de inventar o cookie a soluo

    encontrada era que cada computador de site da Web colocasse um pequeno arquivo na

    mquina de cada visitante, que acompanhasse seus passos dentro do site visitado.

    Montulli chamou essa nova tecnologia de "objeto do estado de cliente persistente, mas ele

    tinha um nome mais charmoso em mente, um do incio da computao. Naquela poca, as

    mquinas trocavam pedaos de informao para propsitos de identificao e os primeiros

    programadores chamaram os dados trocados de "magic cookies", biscoitos mgicos.

    Montulli chamou sua inveno, descendente direta desses, de "cookie", biscoito.

    Foi um marco na histria da computao: de um s golpe, os cookies mudaram a Web,

    que passou de um lugar de visitas descontnuas para um ambiente rico, no qual comprar,

    brincar e at viver, para alguns.

    Fundamentalmente, os cookies alteraram a natureza da navegao pela Web. Ela passou

    de uma atividade relativamente annima, como caminhar pelas ruas de uma metrpole,

    para um ambiente onde os registros das transaes, movimentos e at desejos podem ser

    armazenados, avaliados, minados e vendidos.

    Graas aos cookies, um cliente que faz uma compra em um site pode abandonar seu

    carrinho de compras antes de finalizar a compra e voltar mais tarde ao site, que perguntar

    se ele deseja fazer seu pedido.

    Os cookies tambm permitem aos sites mostrarem anncios diretamente ligados s partes

    do site visitadas pelo navegador. Assim, algum visitando um site orientado para a sade

    que l informaes sobre drogas para diabetes poder ver um anncio de nova medicao

    para a doena.

    Todas essas funes podem ser feitas sem o conhecimento do nome do visitante, porque

    o identificador annimo e nico includo no cookie, suficiente. Mas, se um proprietrio de

    site da Web combinar esse identificador com informaes pessoais do visitante, do

    momento de sua inscrio no site, por exemplo, ento o cookie se torna um mecanismo

    poderoso de monitoramento individual.

    O php usa a funo setcookie para enviar o cookie para o usurio essa funo tambm

    usada para excluir o prprio cookie, exemplo de criao de um cookie:

    setcookie("nome_do_cookie", "valor_do_cookie", "tempo de expirao");

    No tempo de expirao voc pode usar a funo time() + os segundos veja exemplo:

    PHP

    Esse cookie tem uma validade de 1 hora:

  • PHP

    Esse cookie tem validade de um ano

    3600 segundos = 1 hora

    3600 segundos vezes 24 horas

    24 horas vezes 365 dias

    Para excluir um cookie basta fazer a mesmo sistema que criar ele, mas usando um prazo

    de expirao negativa.

    PHP

    Veja acima o cookie que tinha validade de um ano ser excludo pq foi passado que o

    tempo dele agora de um ano atrs, ou seja, j acabou.

    Sessions

    Uma sesso (session) um perodo de tempo durante o qual uma pessoa navega num

    site.

    Uma sesso gravada no servidor, e o tempo de durao de uma sesso pode ser ate o

    usurio fechar a pgina.

    Quando o usurio entra no site criamos uma sesso e ela recebe um nmero identificador

    nico, chamado de session_id, para uma pagina ter o acesso aos dados da sesso ela

    tem que ter esse nmero identificador.

    Para criar uma sesso sempre se utiliza session_start() e antes de qualquer sada html.

    Exemplo:

    PHP

  • $_SESSION["teste"] = 1;

    ?>

    Foi criado uma sesso com o nome se teste e valor 1

    E nas paginas seguintes voc pode restaurar esse valor assim:

    PHP

    Voc pode usar session_register() para registrar suas variveis, no caso, o nome da

    varivel na sesso ser a mesma do nome da varivel gravado, exemplo:

    PHP

    $linguagem = "PHP";

    session_register("linguagem");

    Nesse caso foi gravada a varivel $linguagem na varivel de sesso linguagem, eis a

    vantagem de se usar $_SESSION que recomendado a partir da verso 4.1, j que voc

    poder definir o nome da varivel na sesso.

    Obs.: session_register trabalha com register_globals on, e como est em extino o uso

    em on, sempre recomendado ento usar $_SESSION, alis, as facilidades so muito

    maiores, j que voc trabalhar com elas como uma varivel normal.

    Onde posso usar sesses?

    Na verdade, as sesses so geralmente usadas pra criar lojas virtuais e sistemas de login,

    onde o usurio entrar com usurio e senha em um formulrio. Buscar no banco de

    dados (ou o que estiver usando com um) e se achar algum usurio gravar na sesso uma

    identificao que dir que ele j foi logado. Isso somente durar at o fechamento do

    browser. Logo, grande parte dos websites ainda usam cookies por esse motivo. At hoje, a

    nica maneira de voc sair de um site, entrar mais tarde e tudo estar do jeito que voc via

    antes usando os cookies.

  • Modulo 4 Introduo part4

    o require

    o include

    o require_once

    o include_once

    o Autenticao HTTP com PHP

    o Arrays

    o Header

    require()

    A instruo require() inclui a avalia um arquivo especfico.

    require() e include() so idnticos em todas as formas exceto pela manipulao de erros.

    include() produz um Warning enquanto require() produzir um Fatal Error. Em outras palavras,

    no hesite em utilizar require() se na falta de um arquivo quiser parar o processamento da

    pgina. include() no se comporta da mesma maneira, e o script poder continuar nessa

    situao. Em todo caso, vale a pena confirmar a configurao da diretiva include_path.

    PHP

    1.

    include()

    A instruo include() inclui e avalia o arquivo informado.

    A documentao a seguir se aplica tambm a require(). Esses dois construtores so idnticos a

    exceo de como eles manipulam erros. include() produz um Warning enquanto require()

    produzir um Fatal Error. Em outras palavras, utilize require() se voc deseja que um arquivo

    faltando interrompa o processamento da pgina. include() no se comporta da mesma

    maneira, permitindo que o script continue nessas situaes. Em todo caso, vale a pena

    confirmar a configurao da diretiva include_path. Esteja avisado que um erro de

    interpretao no arquivo includo no causa o cancelamento do processamento.

    Arquivos a incluir so procurados primeiramente no include_path relativo ao diretrio atual de

    trabalho e depois no include_path relativo ao diretrio atual do script. Por exemplo, se seu

    incluide_path ., o diretrio atual /www/, se voc incluiu include/a.php e h um b.php nesse

  • arquivo, b.php ser procurado primeiro em /www/ e somente depois em /www/include/.

    Quando um arquivo includo, seu cdigo entra no escopo de varivel da linha onde a incluso

    ocorre. Qualquer varivel disponvel da linha onde a chamada da incluso ocorre estar

    disponvel para o arquivo includo, daquele ponto em diante.

    vars.php

    $cor = 'verde';

    $fruta = 'ma';

    frutas.php

    require_once()

    A instruo require_once() inclu e avalia o arquivo especificado durante a execuo do script.

    Seu comportamento similar ao da instruo require(), a no ser que o arquivo informado j

    tenha sido includo, no refazendo a operao novamente. Veja a documentao de require()

    para maiores informaes sobre como essa instruo funciona.

    require_once() pode ser utilizado nos casos em que o mesmo arquivo pode acabar sendo

    includo mais de uma vez durante a execuo de um script em particular, quando na verdade

    ele s pode ser includo apenas uma, para evitar problemas com redefinies de funes,

    alteraes nos valores de variveis, etc.

    include_once()

    A instruo include_once() inclui e avalia o arquivo especificado durante a execuo de um

    script. Seu comportamento similar a instruo include(), a no ser que o arquivo informado

    j tenha sido includo, no refazendo a operao novamente. Como o nome sugere, ele ser

    includo apenas uma vez.

  • include_once() pode ser utilizado nos casos em que o mesmo arquivo pode acabar sendo

    includo mais de uma vez durante a execuo de um script em particular, quando na verdade

    ele s pode ser includo apenas uma para evitar problemas com redefinies de funes,

    alteraes nos valores de variveis, etc.

    Para maiores informaes utilizando require_once() e include_once(), veja o cdigo do PEAR

    includo nas ltimas distribuies do cdigo fonte do PHP.

    Autenticao HTTP com PHP

    Autenticao via HTTP no PHP s disponvel quando o mesmo for executador como mdulo

    do Apache e, portanto, no disponvel na verso CGI. Em um script PHP no mdulo Apache,

    possvel usar a funo header() para enviar uma janela de entrada "Authentication Required".

    Uma vez que o usurio preencheu seu nome de usurio e senha, a URL contendo o script PHP

    ser chamada de novo com as variveis predefinidas PHP_AUTH_USER, PHP_AUTH_PW, e

    AUTH_TYPE contendo o nome de usurio, senha e tipo de autenticao, respectivamente.

    Essas variveis predefinidas so achadas nos arrays $_SERVER e $HTTP_SERVER_VARS.

    Somente autenticao "Basic" (Bsica) suportada.

    um exemplo simples :

  • {

    Autenticar();

    }

    else

    {

    $total = Confere_Login($_SERVER["PHP_AUTH_USER"], $_SERVER["PHP_AUTH_PW"]);

    if ( $total == 0 )

    {

    Autenticar();

    }

    }

    ?>

    Arrays

    Um array no PHP atualmente um mapa ordenado. Um mapa um tipo que relaciona valores

    para chaves. Este tipo otimizado de vrias maneiras, ento voc pode us-lo como um array

    real, ou uma lista (vetor), hashtable (que uma implementao de mapa), dicionrio, coleo,

    pilha, fila e provavelmente mais. Como voc pode ter outro array PHP como um valor, voc

    pode facilmente simular rvores.

    A explicao dessas estruturas esto alm do escopo desse manual, mas voc pode encontrar

    exemplos para cada uma dessas estruturas a seguir. Para mais informaes sobre estruturas,

    refira-se a literatura externa sobre esses tpicos.

    Sintaxe

    Especificando com array()

    Um array pode ser criado com o construtor de linguagem array(). Ele pega um certo nmero

    de pares separados por vrgula chave => valor .

    array( [chave =>] valor

    , ...

    )

    // chave pode ser tanto string ou um integer

    // valor pode ser qualquer coisa

    PHP

    1.

  • 5. ?>

    A chave pode ser tanto um integer ou uma string. Se a chave uma representao padro de

    um integer, ele ser interpretado assim (por exemplo, "8" ser interpretado como 8, enquanto

    "08" ser interpretado como "08"). No h diferena entre arrais indexados e associativos em

    PHP, apenas um tipo de array, que pode ter ndices inteiros ou string.

    O valor pode ser qualquer tipo PHP:

    PHP

    1.

    Se omitir a chave quando fornece um novo item, o maior ndice inteiro obtido, e a nova

    chave ser esse mximo + 1. Se voc especificar uma chave que j possui um valor assimilada a

    ela, ento o valor sobrescrito.

    PHP

    1.

    Indice de algumas funes do array:

    array_change_key_case -- Retorna um array com todas as chaves string em maisculo ou

    minsculo

    array_chunk -- Divide um array em pedaos

    array_count_values -- Conta as frequncias de cada valor de um array

  • array_diff -- Analisa as diferenas entre arrays

    array_fill -- Preenche um array com valores

    array_filter -- Filtra os elementos de um array utilizando uma funo

    array_flip -- Inverte as relaes entre chaves e valores

    array_intersect -- Calcula a interseo entre arrays

    array_key_exists -- Checa se uma chave ou ndice existe em um array

    array_keys -- Retorna todas as chaves de um array

    array_map -- Aplica uma funo em todos os elementos dos arrays dados

    array_merge_recursive -- Funde dois ou mais arrays recursivamente

    array_merge -- Funde dois ou mais arrays

    array_multisort -- Ordena mltiplos arrays ou arrays multi-dimensionais

    array_pad -- Expande um array para um certo comprimento utilizando um determinado valor

    array_pop -- Retira um elemento do final do array

    array_push -- Adiciona um ou mais elementos no final de um array

    array_rand -- Retorna um ou mais elementos aleatrios de um array

    array_reduce -- Reduz um array para um nico valor atravs de um processo iterativo

    utilizando uma funo.

    array_reverse -- Retorna um array com os elementos na ordem inversa

    array_search -- Procura por um valor em um array e retorna sua chave correspondente caso

    seja encontrado

    array_shift -- Retira o primeiro elemento de um array

    array_slice -- Extrai uma parcela de um array

    array_splice -- Remove uma parcela do array e substitui com outros elementos

    array_sum -- Calcula a soma dos elementos de um array

    array_unique -- Remove o valores duplicados de um array

    array_unshift -- Adiciona um ou mais elementos no incio de um array

    array_values -- Retorna todos os valores de um array

    array_walk -- Aplica uma determinada funco em cada elemento de um array

    array -- Cria um array

    arsort -- Ordena um array em ordem descrescente mantendo a associao entre ndices e

    valores

    asort -- Ordena um array mantendo a associao entre ndices e valores

    compact -- Cria um array contendo variveis e seus valores

    count -- Conta o nmero de elementos de uma varivel

    current -- Retorna o elemento corrente em um array

    each -- Retorna o par chave/valor corrente de um array e avana o seu cursor

    end -- Faz o ponteiro interno de um array apontar para o seu ltimo elemento

    extract -- Importa variveis para a tabela de smbolos a partir de um array

    in_array -- Checa se um valor existe em um array

    key -- Retorna uma chave de um array associativo

    krsort -- Ordena um array pelas chaves em ordem descrescente

    ksort -- Ordena um array pelas chaves

    list -- Cria variveis como se fossem arrays

    natcasesort -- Ordena um array utilizando o algoritmo da "ordem natural" sem diferenciar

    maisculas e minsculas

  • natsort -- Ordena um array utilizando o algoritmo da "ordem natural"

    next -- Avana o ponteiro interno de um array

    pos -- Retorna o elemento atual do array

    prev -- Retrocede o ponteiro interno de um array

    range -- Cria um array contendo uma faixa de elementos

    reset -- Faz o ponteiro interno de um array apontar para o seu primeiro elemento

    rsort -- Ordena um array em ordem descrescente

    shuffle -- Mistura os elementos de um array

    sizeof -- Apelido de count()

    sort -- Ordena um array

    uasort -- Ordena um array utilizando uma funo de comparao definida pelo usurio e

    mantendo as associaes entre chaves e valores

    uksort -- Ordena um array pelas chaves utilizando uma funo de comparao definida pelo

    usurio.

    usort -- Ordena um array pelos valores utilizando uma funo de comparao definida pelo

    usurio

    Header

    header -- Envia um cabealho HTTP diretamente

    header() usado para enviar diretamete cabealhos HTTP headers.

    O parmetro opcional replace indica quando um cabealho dever substituir um cabealho

    similar anterior, ou adicionar um segundo cabealho do mesmo tipo. Por padro ir substituir,

    mas se voc passar FALSE como segundo argumento voc poder forar multiplos cabealhos

    do mesmo tipo. Por exemplo:

    PHP

    1.

    O segundo caso especial o cabealho "Location:". No somente envia o seu cabealho para o

    browser, mas tambm retorna cdigo de situao REDIRECT (302) para o browser a menos que

    algum cdigo de situao 3xx j tenha sido definido.

    PHP

    1.

  • Scripts PHP normalmente geram contedo dinamico que no deva ser guardado em cache

    pelo browser do cliente ou qualquer cache de proxy entre o servidor e o browser do cliente.

    Muitos proxies e clientes so forados a desabilitar o cache usando:

    PHP

    1.

    Voc pode pensar que suas pginas no so colocadas em cache mesmo que voc no envie

    todos os cabealhos acima. Existem vrias opes que os usurios podem definir em seus

    browser que mudam o funcionamento do cache. Enviando os cabealhos acima, voc ir

    sobrescrever qualquer definio que faa seu script ser colocado em cache.

    Adicionalmente as configuraes, session_cache_limiter() e session.cache_limiter podem ser

    usadas para gerar automaticamente os cabealhos corretos quando esto sendo usadas

    sesses.

    Lembre-se que header() deve ser utilizada antes que qualquer saida seja enviada, seja pelo

    HTML, linhas ou espaos em branco em um arquivo, ou a partit do PHP. um erro muito

    comum ler cdigo com a funo include(), ou require(), ou outra funo que acesse arquivos, e

    ter espaos ou linhas em branco antes da funo header(). O mesmo problema existe quando

    usar um arquivo PHP/HTML.

    PHP

    1.

    2.

    Nota: A partir do PHP 4, voc pode usar o buffer de sada para contornar este problema, com a

  • sobrecarga que toda a sada do browser ser guardada em buffer no servidor at que

    voc^envie ele. Voc poder fazer isso usando ob_start() e ob_end_flush() no seu script ou

    definido a diretiva de configurao output_buffering no seu php.ini ou nos arquivos de

    configurao do servidor.

    Se voc queira que seja perguntado ao usurio para salvar os dados que voc esta enviando,

    como um arquivo PDF gerado, voc pode usar o cabealho Content-Disposition para

    recomendar um nome de arquivo e forar o browser a mostrar uma caixa salvar arquivo.

    PHP

    1.

  • Modulo 5

    Interagindo com banco de dados (Mysql)

    Introduo

    o Breve Historia Mysql

    o mysql_connect

    o mysql_select_db

    o mysql_query

    o mysql_close

    o mysql_fetch_array

    o mysql_fetch_row

    o mysql_fetch_object

    o mysql_result

    o mysql_error

    o mysql_insert_id

    o Comando basicos SQL

    o [brinde] Sistema de cadastro para Livraria

    Breve Historia Mysql

    A derivao do nome MySQL foi criado apartir do prefixo "my" porque o pessoal do

    desenvolvimento do mysql usava esse prefixo nos seus diretorios e inumeras bibliotecas e

    ferramentas que eles usavam.

    A filha de Monty Widenius ( criador do banco mysql ) tambm ganhou o nome My

    O golfinho do MySQL (logo marca do mysql) Sakila. Sakila foi escolhido pelos fundadores da

    MySQL AB de uma enorme lista de

    nomes sugeridos pelos usurios em um concurso "Name the Dolphin". O nome vencedor foi

    enviado por Ambrose Twebaze, um desenvolvedor

    de programas open source de Swaziland, Africa. De acordo com Ambrose, o nome Sakila tem

    as suas razes em SiSwati, a lngua local de

    Swaziland. Sakila tambm o nome de uma cidade em Arusha, Tanzania, prxima ao pas de

    orgem de Ambrose, Uganda.

    mysql_connect

    mysql_connect -- Abre uma conexao com o Mysql

    mysql_connect("servidor", "usuario", "senha");

    por padrao o mysql vem com usuario root e sem senha entao para conectar a primeira vez

  • voc pode fazer assim:

    mysql_connect("localhost");

    mysql_select_db

    mysql_select_db -- Seleciona um banco de dados MySQL

    mysql_select_db('nome_do_banco');

    mysql_query

    mysql_query -- Realiza uma query MySQL

    exemplo:

    mysql_query("select * from tabela");

    mysql_close

    mysql_close -- Fecha a conexo com o MySQL

    exemplo:

    $link = mysql_connect('localhost', 'usuario', 'senha');

    mysql_close($link);

    mysql_fetch_array

    mysql_fetch_array -- Busca o resultado de uma linha e o coloca como uma matriz associativa,

    matriz numrica ou ambas.

    exemplo:

    mysql_connect("localhost", "usuario", "senha");

    mysql_select_db("banco");

    $re = mysql_query("SELECT * FROM tabela");

    while ($l = mysql_fetch_array($re)) {

    echo $l["campo"]."
    ";

    }

    mysql_fetch_row

    mysql_fetch_row -- Retorna o resultado de uma linha numa matriz numrica

  • mysql_connect("localhost", "usuario", "senha");

    mysql_select_db("banco");

    $re = mysql_query("SELECT * FROM tabela");

    while ($l = mysql_fetch_row($re)) {

    echo $l[0]."
    ";

    }

    mysql_fetch_object

    mysql_fetch_object -- Retorna o resultado de uma linha como um objeto

    mysql_connect("localhost", "usuario", "senha");

    mysql_select_db("banco");

    $re = mysql_query("select * from tabela");

    while ($l = mysql_fetch_object($re)) {

    echo $l->campo."
    ";

    }

    mysql_result

    mysql_result -- Retorna dados do resultado

    mysql_connect("localhost", "usuario", "senha");

    mysql_select_db("banco");

    $re = mysql_query("select count(*) as total from tabela");

    $total = mysql_result($re, 0, "total");

    mysql_error

    mysql_error -- Retorna o texto da mensagem de erro da operao anterior do MySQL

    $link = mysql_connect("localhost", "usuario", "senha");

    if (!$link) {

    die('Erro: ' . mysql_error());

    }

    echo 'Conexao ok';

    mysql_close($link);

  • mysql_insert_id

    mysql_insert_id -- Retorna o ID gerado da operao INSERT anterior

    Comando basicos SQL

    Mostrarei nesse tutorial uns comando basicos de sql como editar salvar fazer uma busca e

    explicar o basico dos nomes dos comando sql

    SELECT - Seleciona dados da tabela

    SELECT [nome do campo | *] FROM [tabela] WHERE [campo] = [valor] ORDER BY [campo] [ASC

    | DESC]

    - SELECT = seleciona

    - FROM = da/de/do

    - WHERE = aonde

    - ORDER BY = organizar por

    - GROUP BY = funo de agrupamento

    - | = ou

    - ASC = Ascendente

    - DESC = Descendente

    WHERE condicao for verdadeira

    codicoes

    - campo = valor

    - campo > valor

    - campo < valor

    - campo >= valor

    - campo 15;

    +----+-------+-------+------+---------------------+

    | id | nome | idade | sexo | data_cadastro |

    +----+-------+-------+------+---------------------+

    | 9 | andre | 20 | M | 2004-02-25 19:04:56 |

    +----+-------+-------+------+---------------------+

  • mysql> select * from usuarios where idade < 30 order by nome desc;

    +----+--------+-------+------+---------------------+

    | id | nome | idade | sexo | data_cadastro |

    +----+--------+-------+------+---------------------+

    | 10 | Fabyo | 27 | M | 2004-03-27 19:10:35 |

    | 1 | natan | 20 | M | 2004-03-27 18:07:25 |

    | 8 | carlos | 20 | M | 2004-03-27 18:12:01 |

    | 4 | carla | 20 | F | 2004-03-27 18:19:23 |

    | 9 | andre | 20 | M | 2004-03-27 19:04:56 |

    +----+--------+-------+------+---------------------+

    mysql> select nome, idade, sexo from usuarios where idade between 20 and 30;

    +--------+-------+------+

    | nome | idade | sexo |

    +--------+-------+------+

    | natan | 20 | M |

    | carlos | 20 | M |

    | carla | 20 | F |

    | raul | 30 | M |

    | andre | 20 | M |

    +--------+-------+------+

    INSERT - Insere dados na tabela

    INSERT INTO tabela (campo1, campo2, campo3, ...) VALUES (valor1, valor2, valor3, ...)

    Quando no for passado o nome dos campos entre parenteses aps a tabela, o servidor

    entender que voc

    quer inserir todos os campos na ordem que esto da tabela.

    INSERT INTO tabela VALUES (valor1, valor2, valor3, valor4, ...)

    - INSERT = inserir

    - INTO = dentro de

    - VALUES = valores

    insert into usuarios (nome, idade, sexo, data_cadastro)

    values ("Fabyo", 27, "M", "1999-12-31 12:00:00");

    insert into usuarios values ("", "Fabyo", 27, "M", NOW());

  • UPDATE - Atualiza valores na tabela

    UPDATE tabela SET campo1 = valor1, campo2 = valor2, campo3 = valor3 WHERE campo = valor

    - UPDATE = Atualiza

    - SET = Defina

    - WHERE = Aonde

    update usuarios, set nome = "Carlos", idade = 18 where id = 7;

    DELETE - Apaga registro da tabela

    DELETE FROM tabela WHERE campo = valor

    - DELETE - Apaga

    - FROM - de/do/da

    - WHERE - Aonde

    delete from usuarios where id = 7;

    [brinde] Sistema de cadastro para Livraria

    Esse Modulo nao tera exercicios ,mas ter de brinde um sistema (simples) de Cadastro de

    livros para livraria

    com esse sistema voc conseguira entender melhor como funciona o php junto com mysql e

    como fazer um sistema

    de cadastro completo e relacionando as tabelas de um modo simples

    s explicando quando voc ver na tabela escrito fk representa (foreign key) ou chave

    estrangeira

    que o id de uma tabela sendo representado em outra tabela fazendo um relacionamento.

    Dica:

    use strip_tags serve pra tirar tags html evitando que pessoas cadastre tags html no seu banco

    no abordei a fundo o Mysql, porque estamos pra lanar um curso online de Mysql

    obrigado a todos e bons estudos.

  • Modulo 6

    Introduo

    o Upload de Arquivos

    o Conexo com banco de dados acess

    o Funes matemticas

    o Imap

    Upload de Arquivos

    Upload de arquivos com o mtodo POST O PHP capaz de receber o upload de qualquer

    browser que siga a norma RFC-1867 (o que inclui Netscape Navigator 3 ou posterior, Microsoft

    Internet Explorer 3 com um patch da Microsoft, ou posterior sem patch). Isto permite que se

    faa o upload de arquivos de texto e binrios. Com as funes de autenticao e manipulao

    de arquivos do PHP, voc tem o controle completo de quem pode fazer o upload de

    arquivo e o que fazer com o arquivo aps seu upload.

    Tenha certeza que seu formulrio de upload de arquivo tenha enctype="multipart/form-

    data" em outro caso o upload do arquivo no ir funcionar.

    $_FILES['arquivo']['name']

    O nome original do arquivo no computador do usurio.

    $_FILES['arquivo']['type']

    O tipo mime do arquivo, se o browser deu esta informao. Um exemplo pode ser

    "image/gif".

    $_FILES['arquivo']['size']

    O tamanho, em bytes, do arquivo.

    $_FILES['arquivo']['tmp_name']

    O nome temporrio do arquivo, como foi guardado no servidor.

    $_FILES['arquivo']['error']

    is_uploaded_file

    is_uploaded_file -- Diz se o arquivo foi enviado via HTTP POST

    bool is_uploaded_file ( string filename)

    Retorna TRUE se o arquivo com o nome filename foi uploaded via HTTP POST. Isto til para

    ter certeza que um usurio malicioso, no est tentando

    confundir o script em trabalhar em arquivos que no deve estar trabalhando --- por exemplo,

  • /etc/passwd.

    Este tipo de confirmao importante principalmente se existe alguma chance que qualquer

    coisa feita com os arquivos carregados poderiam revelar

    o seu contedo para o usurio, ou mesmo para outros usurios no mesmo sistema.

    is_uploaded_file() est disponvel somente em verses do PHP 3 depois da 3.0.16 e em verses

    do PHP 4 posteriores a 4.0.2. Se voc ainda est utilizando

    uma verso anterior, voc pode utilizar o seguinte cdigo para se proteger:

    Nota: O exemplo seguinte no funcionar em verses do PHP posteriores a 4.0.2. Isto depende

    de uma funcionalidade interna do PHP que mudou depois dessa verso.

    PHP

    1.

  • 19. ?>

    move_uploaded_file

    (PHP 4 >= 4.0.3, PHP 5)

    move_uploaded_file -- Move um arquivo carregado para uma nova localizao

    Descrio

    bool move_uploaded_file ( string nomedoarquivo, string destino)

    Esta funo primeiro checa o arquivo informado nomedoarquivo um arquivo vlido

    uploadeado (significando que ele foi carregado pelo mecanismo do

    PHP de HTTP POST). Se o arquivo vlido, ele ser movido para o nomedoarquivo dado pelo

    destino.

    Se nomedoarquivo no um arquivo carregado vlido, ento no haver nenhuma ao e

    move_uploaded_file() ir retornar FALSE.

    Se nomedoarquivo um arquivo uploadeado vlido e no pode ser movido por alguma razo,

    nenhuma ao ir ocorrer, e move_uploaded_file() ir retornar FALSE.

    Adicionalmente, um aviso ser emitido.

    Este tipo de confirmao importante principalmente se existe alguma chance que qualquer

    coisa feita com os arquivos carregados poderem revelar o seu

    contedo para o usurio, ou mesmo para outros usurios no mesmo sistema.

    Nota: Quando o safe-mode est ativo, o PHP verifica se o(s) arquivo(s) e/ou diretrio(s) que

    sero afetados por esta operao tem o mesmo UID (proprietrio) do

    script que est sendo executado.

    Nota: move_uploaded_file() no afetado pelas restries de UIN normais do safe mode. Isto

    no inseguro porque move_uploaded_file() somente opera sobre arquivos

    carregados pelo PHP.

    Ateno

    Se o arquivo destino j existir, ento ele ser sobrescrito.

    Veja tambm is_uploaded_file() e a seo Manipulando o upload de arquivos para um

    exemplo de utilizao desta funo.

    Explicao das mensagens de erro

  • Desde o PHP 4.2.0, PHP retorna um cdigo de erro apropriado na array do arquivo. O cdigo

    de erro pode ser encontrado em ['error'] na array que criada durante o

    upload do arquivo. Em outras palavras, o erro deve ser encontrado em

    $_FILES['arquivo']['error'].

    Tratamentos de Erros

    UPLOAD_ERR_OK

    Valor: 0; no houve erro, o upload foi bem sucedido.

    UPLOAD_ERR_INI_SIZE

    Valor 1; O arquivo no upload maior do que o limite definido em upload_max_filesize no

    php.ini.

    UPLOAD_ERR_FORM_SIZE

    Valor: 2; O arquivo ultrapassa o limite de tamanho em MAX_FILE_SIZE que foi especificado no

    formulrio HTML.

    UPLOAD_ERR_PARTIAL

    Valor: 3; o upload do arquivo foi feito parcialmente.

    UPLOAD_ERR_NO_FILE

    Valor: 4; No foi feito o upload do arquivo.

    Nota: Estas tornaram-se constantes no PHP 4.3.0

    Variveis de upload de arquivos HTTP: $_FILES

    Nota: Introduzida na verso 4.1.0. Em verses anteriores, use $HTTP_POST_FILES.

    Contm um array associativo dos itens carregador no script atual atravs do mtodo HTTP

    POST.

    Esta uma varivel 'superglobal', ou automaticamente global. Isto significa que ela

    disponvel em todos os escopos (nveis) de um script. Voc no precisa fazer

    um global $_FILES; para pode acess-la dentro de funes ou mtodos, como era necessrio

    com $HTTP_FILES_VARS.

    Exemplo de um upload:

    Upload

  • upload.php

  • echo "".$this->erro[$this-

    >arquivo['error']]."";

    }

    se o arquivo nao foi enviado ou tenha dado algum erro ele mostra a mensagem de erro

    elseif( isset($this->arquivo['tmp_name']) )

    {

    echo "".$this->erro[$this-

    >arquivo['error']]."";

    }

    }

    }

    ?>

    Notem que essa classe cuida para obter sucesso no envio do arquivo ,mas ela no esta

    tratando do tipo(type) de arquivo

    caso voc queria enviar imagens para o servidor voc pode limitar tamanho, dimensao da

    imagem e tipo de extensao

    e se for arquivo voc pode limitar a extenso s para o tipo que voc quiser, caso tenha

    duvidas em como tratar o tipo de arquivo s postar no forum.

    Funes matemticas

    abs

    Retorna o valor Valor absoluto de um nmero.

    Se o argumento nmero do tipo float, o nmero retornado tambm float

    Exemplo:

    floor -- Arredonda fraes para baixo

    round -- Arredonda um nmero

  • number_format -- Formata um nmero com os milhares agrupados

    echo number_format( "1000.000", 2, ",", ".");

    esse exemplo acima ira retornar 1.000,00

    max -- Localiza o maior nmero

    min -- Localiza o menor nmero

    count -- Conta o nmero de elementos de uma varivel

  • $b[10] = 11;

    $result = count($ ;

    // $result == 3;

    ?>

    sqrt -- Raiz quadrada

    rand -- Gera um nmero aleatrio

    PHP

    1.

    Mais detalhes : www.php.net/ref.math.php

    Imap

    O que IMAP?

    O protocolo IMAP foi originalmente desenvolvido na Universidade de Stanford em 1986.

    Trata-se de um mtodo de acesso a mensagens eletrnicas armazenadas em um servidor local

    ou remoto.

    IMAP quer dizer Internet Message Access Protocol [RFC 2060] e sua verso mais recente e' a

    IMAP4rev1 [RFC 2060]

    descomente a linha do php.ini extension=php_imap.dll

    obs: nesse exemplo nao tem suporte a MIME

    Nesse exemplo ele faz:

    tratamento de erros

    ve quantos emails voc tem

    pega o assunto,remetente,data/hora e a mensagem

    http://www.php.net/ref.math.php
  • $message_id = $headers->message_id;

    $toaddress = $headers->toaddress;

    $to = $headers->to;

    $remetente = $to[0]->personal;

    $email_remetente = $to[0]->mailbox;

    $servidor_remetente = $to[0]->host;

    $data = $headers->date;

    $data = strtotime($data);

    $data = date("d/m/Y H:i:s", $data);

    echo "Assunto = $assunto - Remetente = [email protected]$servidor_remetente Data =

    $data Ler Mensagem
    ";

    }

    echo "
    ";

    if (isset($_GET["id"])) {

    $id = $_GET["id"];

    $mensagem = imap_fetchbody($mbox, $id, 1);

    echo nl2br(quoted_printable_dequote($mensagem));

    }

    imap_close($mbox);

    }

    ?>

    mais detalhes:

    http://br.php.net/ma...en/ref.imap.php

    http://br.php.net/manual/en/ref.imap.php
  • Modulo 7

    Introduo

    o Estatisticas

    o Dicas diversas sobre funes php para usar com Mysql

    o Dicas basicas sobre configurao do phpMyAdmin

    o SQL

    o Montando um sistema de cadastro de funcionarios

    Estatisticas

    Vamos aprender um pouco como pegar e tratar varias informaes uteis para ser usado em

    determinados momentos

    s lembrando que o php roda no servidor ento a maioria das informaes que voc conseguir

    ser do prprio servidor

    tirando as variaveis de ambiente.

    E no falarei sobre as coisa basicas como contador e datas, vou mostrar outras funes pouco

    conhecidas de alguns

    Para pegar o IP do visitante:

    $ip = $_SERVER["SERVER_ADDR"];

    ou

    $ip = getenv("REMOTE_ADDR");

    getenv -- Obtm uma varivel de ambiente

    Para pegar o IP de um site:

    $ip = gethostbyname('www.example.com');

    Para pegar meta_tags de um site

    get_meta_tags -- Extrai as informaes das tag meta de um arquivo e retorna como uma

    matriz

    O que get_meta_tags() interpreta

  • // Assumindo que as tags acima esto em www.example.com

    $tags = get_meta_tags('http://www.example.com/');

    print $tags['author']; // name

    print $tags['keywords']; // php documentation

    print $tags['description']; // a php manual

    print $tags['geo_position']; // 49.33;-86.59

    Pegar o nome do navegador e a verso

    $_SERVER["HTTP_USER_AGENT"];

    no navegador Internet Explorer ficara assim:

    Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)

    no navegador mozilla Firefox:

    Mozilla/5.0 (Windows; U; Windows NT 5.1; rv:1.7.3) Gecko/20040913 Firefox /0.10

    Em no Internet explorer ele mostra MSIE 6.0 e no Mozilla Firefox /0.10

    nome e verso

    Pegando O endereo da pgina da onde veio o visitante

    echo $_SERVER["HTTP_REFERER"];

    O endereo da pgina (se houver) atravs da qual o agente do usurio acessou a pgina atual.

    Essa diretiva informada pelo agente do usurio. Nem todos os browsers geram esse header,

    e alguns ainda possuem a habilidade de modificar o contedo do HTTP_REFERER como

    recurso. Em poucas palavras, no confivel.

    Para pegar a resoluo do monitor

    usaremos javascript porque o php nao roda do lado do cliente e sim no servidor

  • document.write("Resolucao : ",screen.width,"x",screen.height,"

    ");

    Para pegar o total de espao em disco no servidor

    $kb = 1024; // Kilobyte

    $mb = 1024 * $kb; // Megabyte

    $gb = 1024 * $mb; // Gigabyte

    $tb = 1024 * $gb; // Terabyte

    $espaco_total = disk_total_space("/");

    $total_disco = round($espaco_total / 1024000, 2);

    $disco = diskfreespace("/");

    $espaco_livre = round($disco / 1024000, 2);

    Para pegar verses do PHP e Mysql e Apache

    mysql_get_server_info();

    phpversion();

    $_SERVER["SERVER_SOFTWARE"];

    Voc pode formatar o resultado que melhor visualizao exemplo:

    $versao_mysql = preg_replace("/[^0-9.]/", "", mysql_get_server_info());

    $versao_php = phpversion();

    $programa_servidor = $_SERVER["SERVER_SOFTWARE"];

    $programa_servidor = strtok($programa_servidor, " ");

    echo "Mysql $versao_mysql
    ";

    echo "PHP $versao_php
    ";

    echo str_replace("/", " ", $programa_servidor);

    strtok() divide uma string (arg1) em strings menores (tokens), com cada token sendo

    delimitado por

    qualquer caractere de arg2. Quer dizer que, se voc tem uma string como "Esta uma string

    de exemplo" voc

    poderia "tokeniz-la" em suas palavras individuais usando o caractere de espao como

  • delimitador do token.

    Para ver se o php esta sendo executado como modulo ou cgi:

    $sapi_type = php_sapi_name();

    if ($sapi_type == "cgi"){

    print "Voc esta usando CGI PHP\n";

    }else{

    print "Voc no esta usando CGI PHP\n";

    }

    Exibindo o status do mysql:

    $status = explode(' ', mysql_stat($cn));

    print_r($status);

    Dicas diversas sobre funes php para usar com Mysql

    Para pegar o nome e a senha de acesso ao Mysql

    Calma pessoal isso no tem nada haver com dicas hackers apenas para mostrar para quem

    no conhece que

    o mysql tem um banco dentro da pasta data chamado mysql onde ele guarda as informaes

    de usuarios, senhas, privilgios, helps, informaes do

    servidor, etc...

    mysql_connect("localhost", "usuario", "senha");

    mysql_select_db("mysql");

    $re = mysql_query("SELECT user,password,host FROM user");

    //listando todos os usuarios e senhas de acesso ao mysql cadastrados

    while($l = mysql_fetch_array($re))

    {

    echo $l["user"]."
    ";

    echo $l["password"]."
    ";

    }

  • Listando todos os banco de dados do servidor mysql:

    mysql_connect("localhost", "usuario", "senha");

    $db_list = mysql_list_dbs();

    $cnt = mysql_num_rows($db_list);

    for($i = 0; $i < $cnt; $i++)

    {

    echo mysql_db_name($db_list, $i) . "
    \n";

    }

    outra maneira de listar os bancos:

    mysql_connect("localhost", "usuario", "senha");

    $db_list = mysql_list_dbs();

    while ($row = mysql_fetch_object($db_list)) {

    echo $row->Database . "
    \n";

    }

    Listando todas tabelas de um banco:

    mysql_connect("localhost", "usuario", "senha");

    $result = mysql_list_tables("banco");

    for ($i = 0; $i < mysql_num_rows($result); $i++)

    {

    echo "Tabelas: ". mysql_table_name($result, $i)."
    ";

    }

    Listando todos os campos de uma tabela:

    $cn = mysql_connect("localhost", "usuario", "senha");

    $fields = mysql_list_fields("banco", "tabela", $cn);

    $columns = mysql_num_fields($fields);

    for ($i = 0; $i < $columns; $i++) {

    echo mysql_field_name($fields, $i) . "
    ";

    }

  • Pegando toda informao de cada campo de uma tabela

    mysql_select_db("banco");

    $result = mysql_query("select * from tabela");

    $i = 0;

    while ($i < mysql_num_fields($result)) {

    echo "Informao para a coluna $i:
    \n";

    $meta = mysql_fetch_field($result,$i);

    if (!$meta) {

    echo "Informao no disponivel
    \n";

    }

    echo "

    blob: $meta->blob

    max_length: $meta->max_length

    multiple_key: $meta->multiple_key

    name: $meta->name

    not_null: $meta->not_null

    numeric: $meta->numeric

    primary_key: $meta->primary_key

    table: $meta->table

    type: $meta->type

    unique_key: $meta->unique_key

    unsigned: $meta->unsigned

    zerofill: $meta->zerofill

    ";

    $i++;

    }

    $result = mysql_query("SELECT * FROM tabela");

    $fields = mysql_num_fields($result);

    $rows = mysql_num_rows($result);

    $table = mysql_field_table($result, 0);

    echo "A tabela '".$table."' tem ".$fields." colunas e ".$rows." linhas(s)
    ";

    echo "A tabela tem esses campos:
    ";

    for ($i=0; $i < $fields; $i++) {

    $type = mysql_field_type($result, $i);

    $name = mysql_field_name($result, $i);

    $len = mysql_field_len($result, $i);

    $flags = mysql_field_flags($result, $i);

    echo $type." ".$name." ".$len." ".$flags."
    ";

    }

    mysql_free_result($result);

    mysql_close();

  • Pegando o conjunto de caracteres do mysql

    mysql_client_encoding -- Retorna o nome do conjunto de caracteres

    $charset = mysql_client_encoding($cn);

    printf ("Conjunto atual de caracteres %s\n", $charset);

    uma dica importante use mysql_unbuffered_query() no lugar do mysql_query()

    quando for necessrio

    exemplo:

    mysql_connect("localhost", "Fabyo", "gisele");

    mysql_select_db("banco");

    $re = mysql_unbuffered_query("Select * from tabela");

    while($l = mysql_fetch_array($re)){

    echo $l["campo"];

    }

    mysql_unbuffered_query() envia uma query SQL para MySQL, sem retornar e colocar em

    buffer as linhas do resultado automaticamente, como mysql_query() faz. por um lado, isto

    salva uma quantidade considervel de memria em query que produzem um resultado

    grandes. por outro lado, voc pode comer a trabalhar com o resultado imediatamente aps

    a primeira linha ser retornada: voc no tem que esperar que toda a query SQL seja realizada.

    Quando usar multiplas conexes com o banco de dados, voc deve especificar o parametro

    opcional link_identifier.

    Nota: Os beneficios de mysql_unbuffered_query() vem com um custo: voc no pode usar

    mysql_num_rows() e mysql_data_seek() no resultado retornado por

    mysql_unbuffered_query(). Voc tambm tem que pegar todas as linhas de uma query SQL

    sem buffer antes de poder enviar uma nova query SQL para o MySQL.

    mysql_escape_string -- Escapa uma string para uso com o mysql_query.

    Esta funo ir escapar o texto assim ser seguro coloca-la na funo mysql_query() evitando

    sql_injection

  • Dicas basicas sobre configurao do phpMyAdmin

    Onde baixar phpMyAdmin

    O que phpMyAdmin?

    o phpMyAdmin um script feito em php para gerenciar o banco de dados mysql

    com o phpMyAdmin voc consegue criar banco de dados, criar tabelas,campos

    e editar salvar e excluir , fazer consultas e otimizar e reparar o banco, importar e exporar o

    banco, etc...

    depois que voc baixou o phpMyAdmin entre no config.inc.php

    e ache essas linhas:

    $cfg['Servers'][$i]['user'] = 'root'; // MySQL user

    $cfg['Servers'][$i]['password'] = ''; // MySQL password (only needed

    mude para seu usario e senha do mysql

    entre no php.ini e descomente essa linha:

    extension=php_mbstring.dll

    reinicie o apache

    se voc quiser acessar o seu phpMyAdmin usando Autenticao HTTP

    voc pode s entrar no config.inc.php e ache essa linha e mudar para http:

    $cfg['Servers'][$i]['auth_type'] = 'http'; // Authentication method (config, http or

    cookie based)?

    dai quando voc for entrar no phpMyAdmin ele ira pedir nome e senha

    se for usar as funes novas do mysql o (mysqli) mude essa linha:

    $cfg['Servers'][$i]['extension'] = 'mysqli'; // The php MySQL extension to use ('mysql' or

    'mysqli')

    se desejar que aparea apenas 1 banco para ser acessado pelo phpMyAdmin

    mude essa linha:

    http://www.phpmyadmin.net/
  • $cfg['Servers'][$i]['only_db'] = ''; // If set to a db-name, only

    e coloco o nome do banco que voc quer

    SQL

    Structured Query Language

    Linguagem Estruturada de Consulta

    SQL no uma linguagem para se desenvolver sistemas e sim para facilitar o acesso de

    informaes, por meios de consultas, atualizaes e manipulaes de dados armazenados em

    bancos de dados do tipo relacional.

    um banco de dados do tipo relacional armazena os dados e informaes em tabelas que so

    formadas por linhas e colunas.

    Atualmente os programas de gerenciamento de banco de dados (SGDB - Sistema de

    Gerenciamento de Banco de Dados) utilizam o SQL para consultas e manuseio de dados, mas

    com pequenas diferenas entre cada SGBD

    em funes e melhorias mas o principal a sintaxe SQL em todos eles como padro.

    O SQL foi criado pela empresa IBM (Internacional Business Machine) sua primeira verso foi

    criada em 1974, com o nome de Structured English Query Language(SEQUEL).

    A Linguagem SQL composta por dois grupos de instrues utilizadas no processo

    de administrao e controle de bancos de dados o DDL (Data Definition Language )

    Linguagem de Definio de Dados e DML (Data Manipulation Language) Linguagem de

    Manipulao de Dados.

    As instrues do tipo DDl permite efetuar a criao das estruturas de tabelas, ndices e bancos

    de dados como um todo, permite tambm efetuar auteraes nas estruturas criadas, e

    remover estruturas.

    Nesse grupo esto as instrues:

    CREATE TABLE, DROP TABLE, ALTER TABLE, CREATE INDEX e DROP INDEX.

    As instrues do tipo DML permitem efetuar a manipulao dos dados que estejam

    armazenados nas tabelas de um determinado banco, dessa forma possivel cadastrar, alterar,

    e excluir registros , nesse grupo se encontra:

    INSERT, SELECT, UPDATE e DELETE.

    De todos os comando existentes o comando SELECT o mais importante e utilizado, pois

    com ele que se obtm a extrao de lista de informaes.

    Os comando do tipo DML possuem uma grande variedades de aplicao.

    Para que isso ocorra, eles operam com um grande conjunto de clusulas

    FROM, WHERE, GROUP BY, HAVING e ORDER BY predefinidos que permitem efetuar a

    aplicao de condies que autera a forma de funcionamento

  • Chave Primaria

    O conceito de chave primria (ID) ou (PK) chave primaria em ingls ,est associado ao campo

    ou conjunto de campos de uma tabela que possuir um nico valor, que no ser repetido.

    Chave Estrangeira

    Chave Estrangeira (FK) caracteriza-se por ser uma chave de uma tabela que possui associao

    com chave primria de outra tabela.

    Integridade referencial um mecanismo utilizado que evita a quebra de ligao entre os

    relacionamentos estabelecidos entre as tabelas

    apesar do mysql ainda nao ter esse recurso como padro ns podemos montar

    a integridade referencial atraves do php ,como voc^vai ver no script de cadastro de

    funcionarios no final do curso.

    Criando um banco no mysql:

    CREATE DATABASE banco

    Criando a tabela:

    CREATE TABLE tabela(

    campo tipo NULL/NOT NULL DEFAULT valor

    AUTO_INCREMENT PRIMARY KEY

    );

    NULL e NOT NULL = definio de um campo em aceitar ou no valores nulos

    DEFAULT valor = permite determinar um valor padro para o campo

    AUTO_INCREMENT = determina se o campo ser preenchido automaticamente

    vale apenas para campos que aceitam valores inteiros

    PRIMARY KEY = determina qual ser a chave primria da tabela

    tipos de campos = o SQL trabalha com diversos tipos de dados mas com 3 grupos distintos(tipo

    numricos, tipo temporal e tipo literal).

    tipos numericos podem ser utilizados no tratamento de valores numericos inteiros ou reais:

    SMALLINT = -32.768 at 32.767 pode ser usado um campo sem sinal (unsigned)

    aumentando o tamanho para 255 positivo

    INTEGER = -2.17.483.648 at 2.147.483.674 tambm pode usar unsigned

    FLOAT = 3,4* 10 - at 3,4 * 10

    DECIMAL = Campo usado para guardar valores monetarios

    NUMERIC,DOUBLE

    Tipos temporal

  • O tipos temporal pode ser utilizado para o tratamento de valores relacionados a data e hora

    DATE = Utilizado para guardar data no padro AAAA-MM-DD

    TIME = Utilizado para guardar hora

    DATETIME = Utilizado para guardar data e hora junto

    Tipo literal

    O tipo literal pode ser usado na recepo de valores baseados em cadeias de caracteres

    (strings) dados alfa numericos

    VARCHAR = caracter variavel

    CHAR = caracter fixo

    TEXT = para guardar textos grandes

    no entrarei mais em detalhes sobre esse assunto porque est para extreiar o novo curso

    online de MYSQL ento qualquer duvidas sobre esse assunto aguarde o curso

    Montando um sistema de cadastro de funcionarios

    criando uma tabela de funcionarios:

  • )");

    ?>

    no cadastro tem um combo preenchido com os dados de um banco de dados

    (cargos)

    cadastro.php:

    Cadastro

    Nome

    Endereo

    RG

    CPF

    Cargo

    Selecione

  • $cargo = $l["cargo"];

    echo "$cargo";

    }

    ?>

    Salario

    Casado(a)

    Sim

    Dependentes

    Sim

    Data Nasc.

    O salvar.php onde ser recebido os dados digitados pelo usuario

    ento recomendo voc proteger os dados e filtrar para passar somente o esperado

    exemplo:

    usando stript_tags() voc tira as tags html ,dai o usuario mal intencionado no poder

    prejudicar seu banco de dados com comandos html e javascript

    is_numeric() = use para validar campos numericos

    empty() use para validar campos vazios

    checkdate() use para validar datas

    mysql_escape_string Escapa uma string para uso com o mysql_query.

  • e proteja os dados tambem com javascript muito util para validar campos antes de enviar

    procure por funes que validam cpf, cnpj, emails etc... ou faa voc mesmo

    evite gravar dados repetidos antes de gravar faa uma busca se nao existir o dados dai sim

    voc deixa gravar , e sobre integridade relacional quando voc por exemplo grava um

    funcionario com cargo "ajudante" ,dai depois voc quer excluir o cargo "ajudante" da tabela

    cargos, por logica no poderia ja que esse campo foi gravado como indicao para o

    funcionario dai nao teria logica ele ser "ajudante" se o campo no existe mais ,e como o mysql

    no tem esse recurso automatico voc pode montar um simples basta antes de executar a

    excluso voc fazer uma pesquisa se esse campos esta gravado em algum lugar da tabela

    funcionarios dai se no tiver voc deixa excluir se tiver voc da uma mensagem dizendo que

    esse campos no pode ser excluido pois existe um relacionamento com ele.

    dica final = nunca esquea de validar os campos nem sempre a pessoa vai digitar o que voc

    espera que ela digite.

    salvar.php:

  • excluir.php

  • Modulo 8

    Introduo

    o O que XML?

    o Usando PHP com XML

    o O que um parser DOM?

    o Funes de Memria Compartilhada

    O que XML?

    XML (Extension Markup Language) uma linguagem de marcao de documentos e permite

    que voc crie seus prprios conjuntos de elementos de marcao.

    A XML faz o que seria a verdadeira funo de uma linguagem de marcao, que descrever

    um documento,e no

    como ele deve ser exibido.Com marcao personalizada da XML torna-se possivel a

    estruturao de dados , que

    posteriormente podero ser recuperados facilmente e utilizados de varias maneiras.

    XML um padro definido pela The World Wide Web consortium (W3C). Informaes sobre

    XML e tecnologias relacionadas pode, ser encontradas em

    http://www.w3.org/xml/

    exemplo de um documento XML:

    Aprenda PHP

    R$ 40.00

    Jose da Silva

    Aprenda ASP

    R$ 50.00

    Manuel

    Aprenda JAVA

    R$ 80.00

    Francisco

    http://www.w3.org/xml/
  • Usando PHP com XML

    xml_set_element_handler() = Eventos elementares so emitidos toda vez que o analisador

    XML o incio ou o fim das tags. H manipuladores (handlers)

    separadores para tags de incio e tags de fim.

    xml_set_character_data_handler() = Dados de caractere so aproximadamente todo o

    contedo de documentos XML, incluindo espaos em branco

    entre as tags. Note que o analisador XML no adiciona ou remove qualquer espao em branco,

    ele est pronto para a aplicao se voc decidir que

    espaos em branco so significativos.

    xml_set_processing_instruction_handler() = Programadores de PHP j estariam familiarizados

    com instrues de processo (PIs). uma

    instruo de processo, onde php chamada de o "PI target". O tratamento destes so

    application-specific, exceto que todos os PI targets iniciados com "XML"

    esto reservados.

    xml_set_default_handler() = O que no vai para outro manipulador vai para o manipulador

    padro. Voc conseguir coisas como o XML e declaraes do tipo

    de documento no manipulador padro.

    xml_set_unparsed_entity_decl_handler() = Este manipulador ser chamado por uma

    declarao de um entity no analisada (NDATA).

    xml_set_notation_decl_handler() = Este manipulador chamado pela declarao de uma

    nota.

    xml_set_external_entity_ref_handler() = Este manipulador chamado quando o analisador

    XML encontra uma referncia para uma entity geral analizada

    externamente. Isto pode ser uma referncia para um arquivo ou URL, por examplo. Veja Um

    exemplo de entity externa para uma demonstrao.

    Codificao de Caracter

    A Extenso XML do PHP suporta o caracter Unicode definido por character encodings

    (codificao de caracteres) diferentes. H dois tipos de codificao de caracteres,

    source encoding e target encoding. A apresentao interna do PHP do documento sempre

    codificada com UTF-8.

    Source encoding feita quando um documento XML analisado. Em criando um analisador

    XML, um source encoding pode ser especificado (Esta codificao no poder ser

    mudada aps o tempo de vida do analisador XML). As codificaes suportadas so ISO-8859-1,

    US-ASCII e UTF-8. O segundo so codificaes single-byte, que significa que

    cada caractere representado por um byte simples. UTF-8 pode codificar caracteres

    compostos por um nmero de bits varivel (acima de 21) em um de seus 4 bytes. O source

  • encoding padro utilizado pelo PHP ISO-8859-1.

    Target encoding feito quando o PHP passa dados para as funes do analisador XML. Quando

    um analisador XML criado, o target encoding definido igual ao source encoding,

    mas este pode ser mudado em qualquer ponto. O target encoding afetar dados de caracter

    to bem como nome de tags e processando alvos da instruo.

    Se o analisador XML encontra caracteres de fora da linha que seu source encoding capaz de

    detalhar, ele retornar um erro.

    Se PHP encontra caracteres no documento XML analisado que no podem ser detalhados

    selecionados com target encoding, os caracteres com problema sero "demoted". Atualmente,

    isto

    significa que tais caracteres sero substituidos por um sinal de interrogao.

    Listando o conteudo de um documento XML:

    exemplo:

    Livros

    Livros

  • if($elemento == "LIVRO")

    {

    echo "";

    }

    else

    {

    echo "";

    }

    }

    }

    function trata_caracter($parser, $dados)

    {

    echo $dados;

    }

    $xml_parser = xml_parser_create();

    xml_set_element_handler($xml_parser, "tag_inicial", "tag_final");

    xml_set_character_data_handler($xml_parser, "trata_caracter");

    if(file_exists("livros.xml"))

    {

    $fp = fopen("livros.xml", "r");

    while($dados = fread($fp, 4096))

    {

    xml_parse($xml_parser, $dados, feof($fp));

    }

    xml_parser_free($xml_parser);

    }

    ?>

    exemplo2

    manual do php:

  • echo " $k=\"$v\"";

    }

    }

    echo ">";

    }

    function endElement($parser, $name) {

    echo "";

    }

    function characterData($parser, $data) {

    echo "$data";

    }

    function PIHandler($parser, $target, $data) {

    switch (strtolower($target)) {

    case "php":

    global $parser_file;

    if (trustedFile($parser_file[$parser])) {

    eval($data);

    } else {

    printf("Untrusted PHP code: %s",

    htmlspecialchars($data));

    }

    break;

    }

    }

    function defaultHandler($parser, $data) {

    if (substr($data, 0, 1) == "&" && substr($data, -1, 1) == ";") {

    printf('%s',

    htmlspecialchars($data));

    } else {

    printf('%s',

    htmlspecialchars($data));

    }

    }

    function externalEntityRefHandler($parser, $openEntityNames, $base, $systemId,

    $publicId) {

    if ($systemId) {

    if (!list($parser, $fp) = new_xml_parser($systemId)) {

    printf("Could not open entity %s at %s\n", $openEntityNames,

    $systemId);

  • return false;

    }

    while ($data = fread($fp, 4096)) {

    if (!xml_parse($parser, $data, feof($fp)))