Curso completo php
-
Author
breninho94 -
Category
Technology
-
view
2.985 -
download
5
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)))