Apostila de Curso PHP MySQL

download Apostila de Curso PHP MySQL

of 63

description

Servidor de Banco de Dados [Portugues]

Transcript of Apostila de Curso PHP MySQL

  • Florianpolis SC, outubro de 2000. Curso de PHP e MySQL

    Flvio S. Gonzaga Guilherme Birckan

    ndice

    1 MySQL..........................................................................................................3

    1.1 - Principais Caractersticas ................................................................3

    1.2 - A Estrutura ......................................................................................4

    1.3 - O Sistema de privilgios..................................................................5

    1.4 - O Ambiente MySQL........................................................................6

    1.5 - Exemplos.........................................................................................7

    2 - PHP...............................................................................................................11

    2.1 - Um breve histrico de PHP............................................................13

    2.2 - Comentrios....................................................................................14

    2.3 Variveis........................................................................................14

    2.3.1 Inteiros e ponto flutuante............................................................15

    2.3.2 Arrays ........................................................................................15

    2.3.3 Strings.........................................................................................16

    2.3.4 Variveis de variveis.................................................................17

  • 2.3.5 Type casting................................................................................17

    2.3.6 Variveis por referncia no PHP4 ..............................................17

    2.4 - Operaes Matemticas..................................................................18

    2.5 - Operadores.....................................................................................18 Exemplo.....................................................................................18

    Exemplo.....................................................................................19

    2.6 - Operaes com strings....................................................................20

    2.7 - Controlando o fluxo e LOOPS.......................................................21

    2.8 - Tratando formulrios......................................................................22

    2.9 Funes.........................................................................................23

    2.10 Classes ........................................................................................25

    2.11 - Acesso banco de dados..............................................................26

    2.12 - FTP e HTTP ................................................................................28

    2.13 - Sesses.........................................................................................29

    2.14 - Tratamento de Arquivos...............................................................29

    2.15 - Tratamento de Erros.....................................................................31

    Bibliografia........................................................................................................32

    1 MySQL

    MySQL um servidor de banco de dados SQL multi-usurio e multi-threaded. SQL a linguagem de banco de dados mais popular no mundo. MySQL uma implementao cliente-servidor que consiste de um servidor e diferentes programas clientes e bibliotecas.

    SQL uma linguagem padronizada que torna fcil o armazenamento e acesso de informaes. Por exemplo, pode-se usar SQL para recuperar informaes de produtos e armazenar informaes de clientes para um site Web.

    O servidor MySQL tambm rpido e flexvel o suficiente para permitir armazenar logs e figuras nele. As principais vantagens do MySQL so velocidade,robustez e facilidade de uso. MySQL foi originalmente desenvolvido pois a equipe da T.c.X. DataKonsultAB (empresa que desenvolveu MySQL) precisava de um servidor SQL que pudesse manipular banco de dados grandes numa ordem

  • de magnitude mais rpida que qualquer banco de dados comercial pudesse lhes oferecer. A equipe da TcX tem usado MySQL desde 1996 em um ambiente com mais de 40 banco de dados contendo 10.000 tabelas, das quais mais de 500 tm mais de 7 milhes de registros. Isto soma aproximadamente 100 Gbytes de dados.

    1.1 - Principais Caractersticas

    As principais caractersticas do MySQL so:

    Manipula um nmero ilimitado de usurios simultneos; Alta velocidade de execuo; Possui APIs C, C++, Eiffel, Java, Perl, PHP, Python e TCL; Trabalha com diferentes plataformas: Unix, Windows etc.; Disponibiliza diversos tipos de dados: INT (inteiros sinalizados e no-

    sinalizados de 1, 2, 3, 4 e 8 bytes), FLOAT, DOUBLE, CHAR, VARCHAR, TEXT, BLOB, DATE, TIME, DATETIME, TIMESTAMP, YEAR, SET e ENUM;

    Alta velocidade na execuo de joins usando multi-join otimizado; Suporte completo a operadores e funes nas clusulas SELECT e

    WHERE; Suporte s clusulas GROUP BY e ORDER BY e a funes de grupo

    (COUNT(), AVG(), STD(), SUM(), MAX() e MIN()); Suporte a LEFT OUTER JOIN com a sintaxe ANSI SQL e ODBC; Possibilidade de misturar tabelas de diferentes bancos de dados na

    mesma query; Sistema de privilgios flexvel, simples, eficiente e seguro, que permite

    verificao baseada em host. Suporte a ODBC (Open DataBase Connectivity) para Windows95 e suas

    funes. possvel, por exemplo, usar o Access para conectar ao servidor MySQL;

    Tabelas de disco sob a forma B-tree rpidas com compresso de ndices; Permite 16 ndices por tabela; Disponibiliza registros de tamanho

    fixos e variados; Manipula grandes bancos de dados com vastos volumes de informaes, na ordem de 50.000.000 registros; Escrita em C e C++. Testada

    com diferentes compiladores; Possui um sistema de alocao de memria extremamente rpido; Suporte total ao conjunto de caracteres ISO-8859-1 Latin1, todos os

    dados so salvos e ordenados neste formato; Permite a definio de aliases em colunas e tabelas como no padro SQL92; DELETE, INSERT, REPLACE e UPDATE devolvem o nmero de linhas afetadas pelo comando; Nomes de funes no entram em conflito com nomes de tabelas ou

  • colunas; O servidor pode emitir mensagens de erros em diversas linguagens; Clientes podem conectar ao servidor MySQL utilizando conexes

    TCP/IP, Unix sockets ou sob o Windows NT.

    1.2 - A Estrutura

    Um banco de dados nada mais do que uma hierarquia de estruturas de dados complexas. Em MySQL, como em muitos outros bancos de dados, o conceito da estrutura que mantm os blocos (ou registros) de informaes chamado de tabela. Estes registros, por sua vez, so constitudos de objetos menores que podem ser manipulados pelos usurios, conhecidos por tipos de dados (datatypes). Juntos, um ou mais datatypes, formam um registro (record). Uma hierarquia de banco de dados pode ser considerada como: Banco de dados > Tabela > Registro > Tipo de dados. Os tipos de dados possuem diversas formas e tamanhos, permitindo ao programador criar tabelas especficas de acordo com suas necessidades. MySQL prov um conjunto bem grande de tipos de dados, entre eles:

    CHAR(M): strings de tamanho fixo entre 1 e 255 caracteres; VARCHAR(M): strings de tamanho flexvel entre 1 e 255 caracteres.

    VARCHAR ocupa sempre o menor espao possvel, no entanto 50% mais lento que o tipo CHAR;

    INT(M) [Unsigned]: nmeros inteiros entre -2147483648 e 2147483647. Aopo "unsigned" pode ser usada na declarao mudando o intervalo para 0 e4294967295 para inteiros nosinalizados;

    FLOAT [(M,D)]: nmeros decimais com D casas decimais; DATE: armazena informao relativa a datas. O formato default 'YYYY-

    MM-DD' e as datas variam entre '0000-00-00' e '9999-12-31'. MySQL provum poderoso conjunto de comandos para formatao e manipulao de datas;

    TEXT/BLOB: strings entre 255 e 65535 caracteres. A diferena entre TEXT eBLOB que no primeiro o texto no sensvel ao caso e no segundo sim;

    SET: conjunto de valores strings; ENUM: conjunto de valores strings, difere do SET pois s so armazenados valores previamente especificados.

    Alm dos tipos de dados existem outras opes a serem usadas emconjunto com os tipos de dados para a criao de tabelas e especificao decolunas:

    Primary Key (Chave Primria): usada para diferenciar um registro do outro.Cada registro, desta forma, no pode ter a mesma chave primria.

    Auto_increment: uma coluna com esta opo automaticamente incrementada quando da insero de um registro; NOT NULL: no permite a insero de valores nulos.

  • 1.3 - O Sistema de privilgios

    Administrar o servidor MySQL, envolve a manuteno do banco de dadoscom as configuraes do servidor (hosts, usurios e bancos de dados), ou seja, osistema de privilgios. O conceito do sistema de privilgios simples, pelaatribuio de um conjunto de privilgios, um usurio em determinado host tempermisso para executar comandos sobre uma base de dados. Estes privilgiosestabelecem um conjunto de regras no qual o servidor MySQL se baseia, e estasregras podem ser, por exemplo, permisso para inserir, selecionar, excluirinformaes de uma tabela, ou criar, modificar tabelas etc. Portanto, o sistema deprivilgio, se resume em trs tabelas principais: host, user e db tendo comohierarquia, da mais alta para a mais baixa, a ordem apresentada.

    A tabela host determina quais os hosts que esto habilitados a acessar oservidor MySQL. Sua estrutura de colunas a seguinte: Host, Db, Select_priv,Insert_priv, Update_priv, Delete_priv, Create_priv, Drop_priv, sendo que asduas primeiras colunas estabelecem, de qual host o banco de dados pode seracessado e as colunas termindas em priv so privilgios de acessoespecificados com Y ou N (o default N).

    A tabela user determina os usurios que podem acessar o servidor e suassenhas de identificao a partir de um host. Sua estrutura de colunas : Host,User, Password, Select_priv, Insert_priv, Update_priv, Delete_priv,Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv, File_priv;

    A tabela db contm as informaes relativas a qual banco de dados um usuriode um certo host pode acessar: Host, Db, User, Select_priv, Insert_priv,Update_priv, Delete_priv, Create_priv, Drop_priv.

    1.4 - O Ambiente MySQL

    As tabelas acima funcionam exatamente como tabelas normais MySQL.Elas podem ser facilmente modificadas usando comandos como INSERT,UPDATE e DELETE.

    Para entrar no ambiente MySQL monitor, ou o programa cliente mysql, eacessar o servidor MySQL, o comando a ser executado o seguinte:

    shell> mysql h host u username p databasename

    A opo -h host significa especificar o nome do host, u usernamesignifica especificar o nome do usurio que est acessando, -p solicita um pedidode senha e o databasename o nome do banco de dados que se deseja acessar. Aresposta a este comando o pedido de identificao do usurio atravs da senha eem seguida a apresentao e o prompt do ambiente a espera de comandos:

    Enter password: ******

  • Welcome to the MySQL monitor. Commands end with ; or \g.

    Your MySQL connection id is 459 to server version: 3.22.20a-log

    Type 'help' for help.

    mysql>

    A partir do momento que se est conectado ao servidor, possvel realizarvrios comandos sobre os bancos de dados que se tem permisso, como selecionarum banco de dados (use db_name;), buscar de dados em tabelas atravs dequeries (consultas do tipo select * from uma_tabela;), inserir valores em uma tabela (insert into uma_tabela

    values(1,2);), criar bancos de dados (create uma_bd;), criar tabelas (createtable teste(id int, descricao varchar(50));), mostrar tabelas do banco de dados selecionado (show tables;), descrever a estrutura de uma tabela (describe uma_tabela; ou show columns from uma_tabela;), remover tabelas (drop table teste;) e outros comandos SQL comuns manipulao e controle de bancos de dados. O comando para desconectar-se do ambiente quit.

    1.5 - Exemplos

    [shell]$ mysql -u root

    Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2 to server version: 3.22.25

    Type 'help' for help.

    mysql> show databases; +----------+ | Database | +----------+ | mysql | | test | +----------+ 2 rows in set (0.00 sec)

    mysql> create database Curso; Query OK, 1 row affected (0.00 sec)

  • mysql> show databases; +----------+ | Database | +----------+

    | Curso | | mysql |

    | test |

    +----------+ 3 rows in set (0.00 sec)

    mysql> use Curso; Database changed

    mysql>

    Query OK, 0 rows affected (0.00 sec)

    mysql> show tables;

    +-----------------+ | Tables in Curso | +-----------------+ | Aluno | +-----------------+ 1 row in set (0.00 sec)

    mysql> desc Aluno; +-----------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-----------+-------------+------+-----+---------+----------------+

    | ID | int(11) | | PRI | 0 | auto_increment | | Nome | varchar(40) | YES | | NULL | | | Email | varchar(30) | YES | | NULL | | | DataNasc | date | YES | | NULL | | | Matricula | varchar(9) | YES | | NULL | |

    +-----------+-------------+------+-----+---------+----------------+5 rows in set (0.00 sec)

  • mysql> alter table Aluno drop Email; Query OK, 0 rows affected (0.00 sec) Records: 0 Duplicates: 0 Warnings: 0

    mysql> alter table Aluno add Endereco varchar(100) after Nome; Query OK, 0 rows affected (0.01 sec) Records: 0 Duplicates: 0 Warnings: 0

    mysql> desc Aluno; +-----------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-----------+--------------+------+-----+---------+----------------+ | ID | int(11) | | PRI | 0 | auto_increment | | Nome | varchar(40) | YES | | NULL | | | Endereco | varchar(100) | YES | | NULL | | | DataNasc | date | YES | | NULL | | | Matricula | varchar(9) | YES | | NULL | | +-----------+--------------+------+-----+---------+----------------+ 5 rows in set (0.00 sec)

    mysql> insert into Aluno values( NULL, 'Guilherme', 'Rua Pirineus, 43', '1979-11-18', '9723220-3' ); Query OK, 1 row affected (0.00 sec)

    mysql> insert into Aluno values( NULL, 'Fulano', 'Rua Pigmeus, 69', '1980-10-24', '9723299-9' ); Query OK, 1 row affected (0.01 sec)

    mysql> select * from Aluno; +----+-----------+------------------+------------+-----------+ | ID | Nome | Endereco | DataNasc | Matricula | +----+-----------+------------------+------------+-----------+ | 1 | Guilherme | Rua Pirineus, 43 | 1979-11-18 | 9723220-3 | | 2 | Fulano | Rua Pigmeus, 69 | 1980-10-24 | 9723299-9 | +----+-----------+------------------+------------+-----------+ 2 rows in set (0.00 sec)

    mysql> select ID, Nome from Aluno where ID < 10;

    +----+-----------+ | ID | Nome | +----+-----------+ | 1 | Guilherme | | 2 | Fulano |

  • +----+-----------+ 2 rows in set (0.00 sec)

    mysql> delete from Aluno where ID=2; Query OK, 1 row affected (0.00 sec)

    mysql> update Aluno set Nome='Guilherme Birckan' where ID=1; Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0

    mysql> select * from Aluno; +----+-------------------+------------------+------------+-----------+ | ID | Nome | Endereco | DataNasc | Matricula | +----+-------------------+------------------+------------+-----------+ | 1 | Guilherme Birckan | Rua Pirineus, 43 | 1979-11-18 | 9723220-3 | +----+-------------------+------------------+------------+-----------+ 1 row in set (0.00 sec)

    mysql> grant all privileges on Curso.* to visitante@localhost identified by senha2000; Query OK, 0 rows affected (0.02 sec)

    mysql> quit Bye

    [shell]$ mysql -u visitante;

    Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 3 to server version: 3.22.25

    Type 'help' for help.

    mysql> use Curso; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A

    Database changed mysql> show tables; +-----------------+

  • | Tables in Curso | +-----------------+ | Aluno | +-----------------+ 1 row in set (0.00 sec)

    mysql> select * from Aluno; +----+-------------------+------------------+------------+-----------+ | ID | Nome | Endereco | DataNasc | Matricula | +----+-------------------+------------------+------------+-----------+ | 1 | Guilherme Birckan | Rua Pirineus, 43 | 1979-11-18 | 9723220-3 | +----+-------------------+------------------+------------+-----------+ 1 row in set (0.00 sec)

    mysql> drop table Aluno; Query OK, 0 rows affected (0.00 sec)

    mysql> drop database Curso; Query OK, 0 rows affected (0.00 sec)

    mysql> show databases;

    +----------+ | Database | +----------+ | mysql | | test | +----------+ 2 rows in set (0.00 sec)

    mysql> quit Bye

    2 - PHP

    PHP uma linguagem de script no lado do servidor (server-side) embutidano HTML, portanto necessrio instalar o interpretador da linguagem no servidorde Web. PHP, assim como MySQL, esto disponveis para download para sistemasUNIX, mas para o sistema operacional Windows precisam de uma licena.

    PHP diferente de um script CGI escrito em linguagens como Perl ou Cpois, ao invs de escrever um programa com muitos comandos para sada emHTML, voc escreve um script HTML com um cdigo embutido para fazer amesma coisa. O cdigo PHP encapsulado em tags especiais de incio e fim quepermitem voc alternar para dentro e fora do modo PHP.

  • O que distingue PHP de algo como um Javascript no lado do cliente queo cdigo executado no servidor. Se voc tivesse um script PHP em seu servidor,o cliente iria receber os resultados da execuo deste script, e de maneira algumapoderia determinar qual o cdigo que est por baixo desta execuo. possvelconfigurar um servidor Web para processar todos os arquivos HTML com cdigoPHP, e ento realmente no h maneira de os usurios perceberem que existecdigo embutido na pgina HTML.

    No nvel mais bsico, PHP pode fazer qualquer outra coisa que umprograma CGI pode fazer, tal como coletar dados de um formulrio, gerarcontedo de pginas dinmicas, ou enviar e receber cookies.

    Talvez a maior e mais significante caracterstica em PHP seu suporte auma faixa muito ampla de bancos de dados. Escrever uma pgina Web baseada emum banco de dados muito simples. Os seguintes bancos de dados so atualmentesuportados: Adabas D, Interbase, Solid, Dbase, mSQL, Sybase, Empress, MySQL,Velocis, FilePro, Oracle, Unix dbm, Informix, PostgreSQL.

    PHP tambm tem suporte a comunicao para outros servios usandoprotocolos tais como IMAP, SNMP, NNTP, POP3, ou mesmo HTTP. Voc podetambm abrir sockets de rede e interagir usando outros protocolos.

    Um exemplo de um script dinmico que imprime a data atual est a seguir:

    Script de exemplo

    Bem-vindo ao script de exemplo:

  • TML>

    Assumindo que hoje dia 06 de maio de 2000, a sada do script acimaseria:

    Bem-vindo ao script de exemplo:

    Hoje : 2000-05-06.

    Alguns pontos a considerar:

    1 Todos os comandos PHP3.0 devem ser envolvidos pelas tags . Umasegunda maneira de denotar comandos PHP envolvendo-os nas tags ;

    2 Todas as sentenas de sada para a tela devem ser envolvidas por aspas () e conduzidas pelos comandos print ou echo;

    3 Quase todos os comandos PHP3.0 terminam com um ponto-e-vrgula; 4 Todo comando HTML dentro do comando print ser executado

    normalmente pelo browser e desempenhar sua funo usual; 5 Documentos incluindo cdigo PHP devem ser salvos com a extenso .php

    ou .php3, isto informar ao interpretador PHP3.0 para executar os comandos encontrados dentro das tags . possvel tambm utilizar extenses diferentes do padro, mas isso acarretar

    o uso das tags no sentido de informar ao servidor Web que ointerpretador PHP3.0 que se encarregar de executar o script, j que isto nopode ser identificado pela extenso do arquivo;

    6. A funo date apresentada no script acima uma das milhares de funes que oPHP disponibiliza, ela tem o formato: string date (string formato, inttimestamp);, ou seja, retorna um string e aceita dois parmetros: o tipo de

    formato a ser aprensentado e um valor timestamp1 de data opcional (quandoomitido, como no nosso caso, considera a data atual).

    Uma grande caracterstica de PHP3.0 a capacidade de construo detemplates HTML, que so muito teis quando se est desenvolvendo um site commuitas pginas. Isso possvel atravs do comando include que permite a inserode cdigo, provindo de um arquivo separado, dentro de um documento HTML.Desta maneira possvel estabelecer, por exemplo, um arquivo de rodap numarquivo chamado rodape.txt que aparecer em vrias pginas sem precisarreescrever o cdigo, apenas utilizando o comando include, como segue:

    1 Timestamp um formato especial de data, geralmente usado em sistemas UNIX,ele

  • armazena sob a forma de um nmero inteiro, os segundos, minutos, horas, dia,ms e ano de uma data. Sendo que a cada segundo ele incrementa o seu valor, tornando simples a manipulao de data a partir de operadores como soma, subtrao etc.

    Um outro aspecto importante de PHP a capacidade de modificarvariveis passadas de formulrios HTML, tornando possvel a realizao de vriastarefas como: envio de um e-mail (atravs da funo mail()) baseado eminformaes de uma pgina, impresso de pginas personalizadas, passagem earmazenamento de informaes em um banco de dados etc.

    Existem vrias outras caractersticas interessantes a destacar sobre PHP,entre elas pode-se citar: Suporte ao modelo de orientao a objetos, Interao combancos de dados, Criao de imagens GIF, Autenticao HTTP, Manipulao deerros, Manipulao de cookies, Suporte para upload de arquivos, Conexespersistentes de bancos de dados, Manipulao de arquivos remotos entre muitasoutras.

    Para se ter uma idia algumas classes de funes disponveis no PHP3.0so listadas a seguir: funes de suporte a bancos de dados, especficas ao Apache(servidor de Web), de array, matemticas, calendrio, data, diretrios, execuo deprogramas, HTTP, imagem, filesystem, hashes, Rede, NIS, PDF, Perl, expressesregulares, strings, URL, compresso, XML etc.

    2.1 - Um breve histrico de PHP

    PHP foi concebido num dia do outono de 1994 por Rasmus Lerdof. Aprimeira verso utilizada ficou disponvel no incio de 1995 e foi conhecida comoPersonal Home Page Tools. Ele consistia de um analisador muito simples queentendia somente algumas macros e um nmero de utilidades que estavam em usocomum nas home pages at ento, um livro de visitantes (Guestbook), umcontador e algumas outras coisas. O analisador foi escrito em meados de 1995 efoi chamado de PHP/FI verso 2. Rasmus combinou os scripts do Personal HomePage Tools com o Form Interpreter e adicionou suporte a mSQL. PHP/FI cresceue as pessoas comearam a contribuir com o seu cdigo.

    difcil dar estatsticas, mas estima-se que, no fim de 1996, PHP/FI estavaem uso em pelo menos 15.000 sites pelo mundo. Na metade de 1997 este nmerocresceu para mais de 50.000 e nesta poca ocorreram mudanas nodesenvolvimento do PHP. O analisador foi reescrito por Zeev Suraski e AndiGutmans e o novo analisador deles formou a base do PHP verso 3. 2.2 - Comentrios

    Todo programa deve possuir comentrios, visando o entendimento do cdigo em consultas posteriores. No PHP, existem trs tipos de marcadores de comentrio, que so:

  • // e # para comentrio de uma linha. Por exemplo:

    // atribui o nome varivel $nome = "Guilherme Birckan"; $email = "[email protected]"; # atribui o E-mail varivel

    e para comentrios que ocupem mais de uma linha, usamos os marcadores /* */.

    /* Nas linhas abaixo, atribuiremos os valores Do nome e do e-mail s respectivas variveis */ $nome = "Guilherme Birckan"; $email = "[email protected]";

    2.3 Variveis

    Para comear, vamos ver como o PHP trata suas variveis (ou constantes), que podem ser variveis escalares ou no-escalares. As variveis escalares so aquelas que podem ser retrabalhadas, ou "divididas em pedaos menores", enquanto as no escalares so as arrays (matrizes) e os objetos.

    A identificao de uma varivel, independente do seu tipo pelo sinal $ colocado como primeiro caractere, como abaixo:

    $nome = "Guilherme Birckan"; $matricula = 97232203;

    A primeira varivel do tipo string, e a segunda, inteiro (ambas escalares). Vale lembrar que, como a linguagem C, as variveis $nome e $Nome so consideradas diferentes, pois o PHP as trata como sensveis ao caso. 2.3.1 Inteiros e ponto flutuante

    As variveis inteiras so bastante simples de ser usadas, sem nenhumadiferena das demais linguagens que voc est habituado a usar. Segue as sintaxesabaixo:

    $a =123;$b =-123;

  • As variveis em ponto flutuante tambm so bem simples, lembrando queno lugar da vrgula devemos usar um ponto (.):

    $a = 1.23; // a recebe1,23 $a = 1.2e3;

    2.3.2 Arrays

    PHP suporta arrays simples e mltiplas dimenses (tambm chamadas dematrizes). Usa-se uma varivel simples indexada para denotar um array. Estaindexao pode ser feita por nmeros ou mesmo por strings usando colchetes:

    $a[1] =abc;$a[1] =def;$b[a]= 15;

    Para se adicionar valores no final do array voc pode simplesmente usaresta sintaxe:

    $c[] = abc; // $c[0] ==abc $c[] = def; // $c[1] ==def

    Existem funes j implementadas de ordenamento de vetores, tais como:sort()

    $fruits = array ("lemon", "orange", "banana", "apple"); sort($fruits);

    Os arrays multidimensionais so usados quase que da mesma forma que osarrays simples:

    $a[1][2] = $f; $b[1][bola] = $f // Voc pode misturar ndices $b[bar][5][mesa][2] = $f; //array de 4 dimenses Em PHP3 temos um problema de referenciar arrays

    multidimencionais dentro de strings. O exemplo a seguir no funciona: $a[1][5] = $f; echo Isto no vai funcionar: $a[1][5];

    Mas voc pode fazer isso usando a concatenao:

    echo Agora funciona: . $a[1][5];

  • 2.3.3 Strings

    Significado \n Nova linha \t Tab horizontal \\ Contra barra \$ Dollar

    Atribuies e concatenaes:

    $str = Abacate; $str = $str . grande; //concatena grande na string $str .= emadura; // concatena e madura na string

    Pegando um caracter dentro de uma string:

    $primeiro = $str[0]; $ultimo = $str[ strlen($str) 1 ];

    Alguns exemplos de converso de strings:

    $a = 1 + "10.5"; // $a um double (11.5) $b = 1 + "10 Small Pigs"; // $b um inteiro (11) $c = 1 + "10 Little Piggies"; // $c um inteiro (11) $d = "10.0 ratos " + 1; // $d um inteiro (11) $e = "10.0 ratos " + 1.0; // $e um double (11) 2.3.4 Variveis de variveis

    Algumas vezes conveniente voc utilizar valores de variveis comonomes de outras variveis, utilizando assim variveis de forma dinmica. Isto possvel em PHP!

    $a = hello; // Isto uma varivel simples $$a = world; /* Acabamos de criar uma varivel $hello com o contedo world */

    Voc tambm pode imprimir estas variveis de forma dinmica:

    echo $a ${$a};

    Ter como resultado: hello world

    2.3.5 Type casting

    Type casting em PHP funciona

  • praticamente como em C:

    $a = 10; # $a um inteiro $b = (double)$a; # $b um double

    (int), (integer) Converte para inteiro (real), (double), (float) Converte para double (string) Converte para string (array) Converte para array (object) Converte para objeto

    2.3.6 Variveis por referncia no PHP4

    Na verso 4 do PHP, as variveis podem receber valor por referncia. Istosignifica que ao para atribuir o valor a uma varivel no usamos um valor, mas um"ponteiro" para o valor em questo. Na verdade, este "ponteiro" uma outravarivel:

    $nome = "Guilherme Birckan"; $identificacao = &$nome;

    Deste modo, a varivel $identificacao recebe o valor de $nome e, se umadas duas for atualizada, a outra tambm ser, mantendo o mesmo valor em ambas.2.4 - Operaes Matemticas

    As operaes no PHP tambm seguem o padro das outras linguagens (+, -, *, /, %[modulo da diviso], sin(), cos()). Alm destas, o PHP tem um completo conjunto de operaes matemticas, que podem ser consultadas nesta pgina:

    http://br.php.net/manual/ref.math.php3

    Um exemplo para calcular o valor lquido de um preo, depois de aplicar 10% de desconto sobre o preo bruto:

    $valorbruto = 10; $desconto = 10 * $valorbruto / 100; $valorliquido = $valorbruto - $desconto;

    2.5 - Operadores

  • Operadores aritmticos:

    Exemplo Nome $a + $b Adio $a - $b Subtrao $a * $b Multiplicao $a / $b Diviso $a % $b Modulo da diviso

    Operador de atribuio:

    Exemplo Nome

    $a = $b

    Atribuio

    $a = ($b = 4) + 5; // $b recebe 4 e $a recebe 9 Operadores lgicos:

    Exemplo Operador $a and $b E $a && $a E $a or $b OU $a || $b OU $a xor $b XOR !$a NOT

    Operadores de comparao:

    Exemplo Nome $a == $b Igual $a === $b Idntico $a != $b No igual $a < $b Menor que $a > $b Maior que $a = $b Maior ou igual

    Operadores de execuo:

    $output = `ls l`; echo $output;

  • Operadores de incremento/decremento:

    Exemplo Nome Efeito ++$a Pr-incremento Incrementa $a, depois retorna seu valor $a++ Ps-incremento Retorna o valor de $a, depois incrementa --$a Pr-decremento Decrementa $a, depois retorna seu valor $a-- Ps-decremento Retorna o valor de $a, depois decrementa

    2.6 - Operaes com strings

    Operaes com strings so uma das caractersticas mais desenvolvidas doPHP. Para concatenar-se dois strings, usamos o operador . - Dentre as funesmais importantes esto:

    strlen(), que permite saber quantos caracteres possui a string:

    echo "A palavra 'internet' possui " . strlen("internet") . " caracteres ";

    substr(), que devolve uma substring da string informada:

    echo substr("abcde", 2 , 2); // Esta linha ir exibir os caracteres "cd";

    ucwords (string), converte os primeiros caracteres de strings emmaisculo.

    Exemplo:

    $nome = ucwords("valdir henrique dias leite"); echo($nome); //Esta linha exibir Valdir Henrique Dias Leite

    strpos (), para saber se determinado caractere (ou substring) est contidaem uma string:

    if strpos ($email, "@") {

    echo("Seu e-mail parece estar correto!\n"); } else {

    echo("O e-mail est invlido\n"); }

  • No exemplo acima, verificamos se o caractere "@" est contida em umavarivel $email. Se estiver, exibe a primeira mensagem. Do contrrio, exibe asegunda.

    Outras funes relacionadas operaes com strings podem serencontradas em

    http://br.php.net/manual/ref.strings.html 2.7 - Controlando o fluxo e LOOPS

    As funes usadas para controlar o fluxo do programa e execuo de "loops" so:

    if ... else ... else if, que segue o padro da linguagem C:

    if ($sexo == "m") { echo "Voc do sexo Masculino\n"; } elseif ($sexo == "f") { echo "Voc do sexo Feminino\n"; } else { echo "Por favor, informecorretamente seu sexo\n"; }

    switch, uma maneira de controlar o fluxo onde a varivel de controle do fluxo pode ter vrias opes de valores. Este tipo de controle poderia ser feito com uma seqncia de "ifs" e "elseifs", mas o uso do switch torna o cdigo mais legvel e faz com que seja executado mais rapidamente, pois a verificao da varivel "$sexo" s feita uma vez e depois comparada com as opes de cada "case". Se no estiver em nenhuma delas, executado o bloco sob o "default". J com o "elseif", a comparao feita novamente a cada sentena. Neste exemplo, a diferena no to grande, mas quando o tipo de verificao vai ficando mais complexo a velocidade comea a ser sentida. Na maioria dos casos, vale a pena optar pelo switch.

    switch ($sexo) {

    case "m": echo "Voc do sexo Masculino\n"; break;

    case "f" echo "Voc do sexo Feminino\n"; break;

  • case default: echo "Por favor, informe corretamente seu sexo\n"; break; }

    Sempre inclua o comando break no final do case. Caso contrrio, a execuo continuar at encontrar o final do switch (ou a instruo break), fazendo com queas instrues de mais de um case sejam executadas.

    while, que permite repetir o cdigo enquanto uma condio for verdadeira: while ($contador > 0) {

    $contador = $contador - 2; }

    for, para execuo de um loop determinada quantidade de vezes:

    for ($i==0; $i

  • $erro .= "Digite seu Nome\n"; }

    if ((strlen($telefone) > 8) or (strlen($telefone) < 7)) {

    $erro .= "O nmero do telefone deve ter sete ou oito caracteres\n"; }

    if strpos ($email, "@") = 0 {

    $erro .= "O e-mail digitado no vlido\n" }

    Esta primeira parte faz a consistncia dos dados e altera o valor da varivel$erro, caso alguma das condies no seja satisfeita. Para prosseguir, devemosverificar a ocorrncia de erros e ento enviar o e-mail se erros no tiveremocorrido ou enviar uma tela de resposta informando qual o erro aconteceu. Comoo valor de $erro antes da verificao dos campos "", basta testar se a varivelainda tem este valor para saber se aconteceu ou no um erro. Vamos continuar: echo("Envie o formulrio abaixo\n"); # Cabealho de resposta.

    if ($erro == "") { // No houve nenhum erro no preenchimento mail("[email protected]", "Dados do Formulrio"," Nome: $nome\n E-mail: $email\n Telefone: $telefone\n","From: $email\nDate: $date\n" );

    echo("Obrigado por enviar este formulrio!\n"); } else echo("No foi possvel enviar o formulrio!Verifique as mensagens abaixo $erro \n"); } echo("\n");

    Pronto!

    A novidades neste script :

    e-mail. Sua sintaxe a seguinte: mail(Destinatrio, Assunto, Mensagem, Informaes_Adicionais);

    Depois do script que envia e-mail, vamos fazer um outro que guarde as informaes de um formulrio HTML em um banco de dados.

  • 2.9 Funes

    As funes no PHP no diferem muito das outras linguagens. Algumas caractersticas das funes:

    Devem ser declaradas antes de serem usadas. Podem receber parmetros por valor ou por referncia. Podem ter quantidade varivel de parmetros (Apenas a partir da verso

    4). Os parmetros podem ser declarados com um valor default. Uma vez definida, uma funo no poder ser "redefinida".

    Alguns exemplos de funes:

    /* Esta funo retorna TRUE ou FALSE, dependendo da validade ou no do e-mail informado. */ function verifica_email($email){

    if strpos ($email, "@") = 0 { returnfalse; } else { returntrue; } }

    /* Neste exemplo calculamos o valor lquido, tendo o valor bruto e o desconto a ser aplicado. Se o desconto no for informado, utilizaremos 10% como padro. */ function valor_liquido($valor_bruto, $desconto = 10) {

    return ($valor_bruto - ($valor_bruto * $desconto/100)); }

    Os dois exemplos acima receberam seus parmetros por valor. Isso

  • significa que as alteraes de variveis realizadas dentro da funo s tero efeito no contexto da funo, e estas mudanas no refletiro no resto do script. Em alguns casos pode ser interessante que os valores dos parmetros sejam alterados pela funo, e que seus novos valores reflitam no script como um todo. Para conseguir isto, usamos a tcnica de passagem de parmetro por referncia. Vamos ver um exemplo:

    function completaURL(&$mv_URL){ $mv_URL .= "http://".$mv_URL; }

    $URL = "www.inf.ufsc.br";

    completaURL($URL);

    echo "A URL completa fica assim: $URL\n";

    2.10 Classes

    Como no poderia deixar de ter, PHP tambm possui suporte a criao de classes e objetos de forma simples:

    class carro {

    var $estado; // Estado do carro: ligado ou desligado

    function liga() { if ($this->estado != ligado) {

    $this->estado = ligado; return true;

    } else {returnfals

  • e; }}}

    $carro1 = new carro; $carro1->liga();

    O mtodo construtor da classe (mtodo que executado quando a classe criada) uma funo com o mesmo nome da classe:

    class Pessoa { var $idade; function Pessoa() {

    $idade = 0; //Todo objeto desta classe criado com 0 anos } }

    As classes podem herdar caractersticas de outras classes. Criando uma classe derivada de uma outra classe, como no exemplo a seguir da criao da classe Aluno, derivada da classe Pessoa:

    class Pessoa { var $nome; var $endereo;

    }

    class Aluno extends Pessoa { var $matricula; }

    Todas as caractersticas da classe me so herdadas pela classe filha. Aherana mltipla no suportada pelo PHP.

    2.11 - Acesso banco de dados

    Como foi dito na apresentao do PHP, o acesso banco de dados umdos pontos fortes desta linguagem. Ele possui acesso nativo a ADABAS,

  • ORACLE, SYBASE, SQL SERVER, DBASE, INFORMIX, mSQL, MySQL,POSTGRESQL, alm de suportar ODBC, fazendo com que o PHP possa trabalharpraticamente com todos os bancos de dados existentes.

    Neste mdulo vamos ver apenas as apenas as funes relativas ao banco MySQL,pois esta dupla PHP/MySQL est sendo preferida por uma boa parte dosdesenvolvedores, particularmente no ambiente Linux/Apache.

    O MySQL um servidor SQL e portanto devemos seguir algunsprocedimentos e regras para acesso aos seus dados. Se voc est acostumado como Oracle ou SQL Server no ter dificuldades, mas se voc usa somente bancos dedados do tipo Access ou DBF, poder ter dificuldades em entender o mecanismousado pelo MySQL.

    A primeira regra ter um banco de dados cadastrado e um usurio comacesso este banco de dados. Vale lembrar que o MySQL no um banco dedados, e sim um servidor de dados. Tenha isto em mente para entender o exemplo.

    Digamos que temos um banco de dados Curso com o usurio visitante esenha temp99. O primeiro passo "logar" ao servidor. Para isso usamos a funomysql_connect e informamos ao servidor login (usurio) e senha. Veja abaixo:

    $conn = mysql_connect ("localhost", "visitante", "temp99");

    Este comando abrir uma conexo com o MySQL da mquina local(localhost), usando o usurio visitante cuja senha temp99. Uma referncia a estaconexo ser gravada na varivel $conn.

    Depois de conectados ao servidor, devemos conectar ao banco de dadospropriamente dito, usando o comando mysql_select_db, que precisa de doisparmetros: O nome do banco de dados e a conexo. Caso a conexo no sejainformada, ele tentar usar a ltima criada. Em nossos exemplos, iremos sempreinformar os dois parmetros.

    $db = mysql_select_db("", $conn); Neste ponto j temos uma conexo com o servidor e j criamos um link

    com o banco de dados. Agora podemos enviar os comandos SQL que desejarmos. Se voc no souber SQL, aprenda :-)

    Agora segue nosso exemplo prtico: Vamos usar o script do mdulo passado e alter-lo de modo que os dados digitados no formulrio sejam gravados no banco de dados Curso antes de enviar o e-mail.

  • nmero do telefone deve ter 7 ou 8 caracteres\n"; }

    # Testar vamor do campo E-mail, verificando o caracter "@" if strpos ($email, "@") = 0 {

    $erro .= "O e-mail digitado no vlido\n"; }

    # Cabealho de resposta. echo("\n"); echo("\n");

    if ($erro == "") { $conn = mysql_connect("localhost", "visitante", "temp99"); $db = mysql_select_db("Curso", $conn); $sql = mysql_query("insert into Aluno (Nome, Email, Telefone) values

    ('".addslashes($nome). "','".addslashes($email)."', '".addslashes($email)."')" or die ("No foi possvel atualizar a tabela");

    mysql_close($conn); mail("[email protected]", "Dados do Formulrio"," Nome: $nome\n

    E-mail: $email\n Telefone: $telefone\n","From: $email\nDate: $date\n"); echo("Obrigado por enviar este

    formulrio!\n"); } else { echo("No foi possvel enviar o

    formulrio! Verifique as mensagens abaixo:

    \n"); echo("$erro \n"); echo("Voltar\n");

    } echo("");

    Este o procedimento padro para usar servidores de banco de dadoscom o PHP:

    Conectar ao servidor Abrir o banco de dados (um servidor SQL pode ter mais de um banco de

    dados) Enviar os comandos SQL Desconectar do servidor

    A novidade deste exemplo fica por conta do comando die que finaliza o scriptcaso a funo que o precede no possa ser executada.

    2.12 - FTP e HTTP

  • Algumas vezes pode ser til que nosso script execute um outro script ouento transfira um arquivo para outro servidor. Para isso, podemos executarcomandos HTTP e FTP de dentro do PHP. Veja os exemplos:

    HTTP: Podemos fazer, dentro do script PHP, uma chamada a outro script ouprograma CGI hospedado em outro servidor. Isto muito til quando queremosconsultar algum dado em um servidor remoto, ou at mesmo para abrir umapgina, usando o protocolo HTTP. Para isso, basta chamar a funoHeader("location: pagina.htm") para redirecionar para uma pgina especfica ouento o usar o comando abaixo para executar um CGI passando parmetros viaURL:

    header("location: http://server/cgi/script.pl?p=" . $param);

    Onde $param uma varivel que pode vir de uma consulta a banco dedados ou mesmo de um formulrio.

    Outra funo HTTP importante o uso de "cookies" para gravar algumainformao no browser de quem estiver visitando sua pgina. Para gravar um"cookie", usamos a funo setcookie(), como mostrado abaixo:

    setcookie("Visitou", "Sim", time()+3600);

    O comando acima gravar um cookie chamado "Visitou" com o valor "sim", com apenas uma hora de durao. Note que o 3600 o nmero de segundos alm do horrio atual que o cookie deve ficar ativo. Se no lugar de 3600,usssemos 36000, o cookie seria ativo por 10 horas.

    FTP: A seqncia de tarefas para uso do protocolo FTP Conectar ao Servidor, Identificar-se (Login e Senha), Enviar/Buscar arquivo(s), Desconectar. Os comandos para cada uma destas tarefas so:

    $conn = ftp_connect(ftp.inf.ufsc.br); $log = ftp_login($conn, 'login', 'pass'); ftp_put($con, 'arquivo_remoto', 'arquivo_local', FTP_ASCII/FTP_BINARY); ftp_quit($conn);

    2.13 - Sesses

    Sesses HTTP servem para preservar dados em acessos subseqentes, atravs de registros de variveis de sesso. Usamos basicamente trs funes:

    session_start();

  • session_register( VARIVEL" ); session_destroy();

    Exemplo:

    2.14 - Tratamento de Arquivos

    O PHP possui vrias funes para o tratamento de arquivos a fim de facilitar sua manipulao. A primeira coisa que se tem que saber que para se manipular arquivos, tem-se que abrir e fechar o arquivo. O PHP possui as seguintes funes para se abrir e fechar arquivos:

    fopen( nome_do_arquivo, mode, [diretrio] ) Abre o arquivo fclose( fp ) - Fecha o arquivo

    Estes modos de abrir o arquivo podem ser os seguintes:

    r somente leitura; posiciona-se no incio do arquivo.

    r+ leitura e escrita; posiciona-se no incio do arquivo.

    w somente escrita; posiciona-se no incio do arquivo e o trunca para tamanho zero. Caso o arquivo no exista o PHP tenta cri-lo.

    w+ leitura e escrita; posiciona-se no incio do arquivo e o trunca para tamanhozero. Caso o arquivo no exista o PHP tenta cri-lo.

    a somente escrita; posiciona-se no final do arquivo. Caso o arquivo no exista o PHP tenta cri-lo.

    a+ leitura e escrita; posiciona-se no final do arquivo. Caso o arquivo no

  • exista o PHP tenta cri-lo.

    Aps abrir um arquivo, pode-se ler o contedo ou escrever em seu contedo, de acordo com a forma que se abriu o arquivo.

    fread( fp, tamanho ) fgets( fp, tamanho ) fwrite( fp, string, [tamanho] )

    Exemplos:

    $nomedoarquivo = "/tmp/teste.txt";$fp = fopen ($nomedoarquivo, "r");$contents = fread ($fd, filesize ($nomedoarquivo)); fclose ($fp);

    $fp = fopen(/tmp/teste.txt, a); fwrite($fp, bla bla bla \n); fclose($fp);

    $fp = fopen ("/tmp/teste.txt", "r"); while ( !feof($fp) )

    { $buffer = fgets($fp, 4096); echo $buffer ;

    } fclose ($fp);

    Neste ltimo exemplo, pega-se linha a linha de um arquivo e imprime em HTML separando as linhas pela tag .

    2.15 - Tratamento de Erros

    O PHP tem um esquema especial de "debugging" (tratamento e verificaode erros), que acessado por uma porta TCP, que permite acompanhar a execuo dos scripts e ver quaisquer erros que estiverem acontecendo.

    Alm disso o tratamento de erros pode ser feito no prprio script, conforme explicado abaixo:

    O PHP possui 4 nveis de erros e avisos, que so:

  • 1 - Erros de normais de Funes 2 - Avisos Normais 4 - Erro de interpretao 8 - Avisos que voc pode ignorar, mas que podem causar danos execuo normal do script.

    O padro do PHP o nvel 7 (1 + 2 + 4), mas este nvel pode ser alterado tanto no arquivo de configurao quanto em tempo de execuo, chamando a funo error_reporting($nivel) com o nvel desejado.

    Se usarmos o valor 0 (zero) nenhum aviso ou mensagem de erro ser gerada em tempo de execuo. Neste caso, podemos usar uma varivel especial ($php_errormsg) que conter o ltimo erro gerado pelo script, para que possamos criar rotinas especficas para tratamento de erros. Podemos fazer uma analogia ao comando on error resume next do ASP, tcnica muito til para personalizarmos mensagens de erro para o usurio, entre outras coisas.

    Bibliografia

    http://www.ibestmasters.com.br

    http://www.weberdev.com

    http://www.php.net

    http://www.webmonkey.com

    http://www.devshed.com

    http://www.mysql.com

    http://www.phpbuilder.com

    TRIDAPALI, Graziela W. & SANTANNA, Juliana S. Trabalho de Concluso de Curso Construindo uma aplicao de Comrcio Eletrnico

    PHP Search Toolbar RSS Feeds

  • WeberDev.com - Latest PHP Code Examples WeberDev.com - Latest PHP Articles and Tutorials WeberDev.com - Latest Jobs WeberDev.com - Latest Project Matching WeberBlogs.com - Latest Web Logs

    WeberForums.com - PHP General Latest

    Weber Sites Posts

    Web Site Templates WeberForums.com - MySQL General Latest

    Posts

    Web Development Resources WeberForums.com - Apache General Latest

    Posts

    Learn PHP playing Trivia

    WeberForums.com - Java Script General PHP Web Logs (BLogs) Latest Posts PHP & MySQL Forums Web Development Index

    Web Development Content

    What is My IP? 2006-05-05 2006-05-18 PHP 101 (part

  • Web Site Uptime Monitor Secure URL $_GET 11): Sinfully

    Simple 2006-05-18

    Yahoo! Messenger Friend List 2006-04-16PHPClasses

    Using Codewalkers 2006-05-17 Transactions In

    Dynamic Dropdown for Country MySQL (part 2)

    PHP

    Editor and City List

    PHP Jobs 2006-04-03

    PHP Resources 2006-05-09 PHP 101 (part Ajax Tutorials

    Form Validation

    Using PHP to 10): A Session

    highlight non valid fields In The Cookie

    PHP

    Programming Help

    Web

    WeberDev WeberForums

    Think you are smart? Prove it!. Try your skills with these questions : 0 MySQL client programs 1 use default values for any connection parameter option that you do

    not specify, the default hostname is localhost. ( MySQL ) b The \"fdisk -l\" command

    displays the partition and the size of the partition in KB on the hard disk. ( Linux )

  • 2006-05-08 Jar The JavaScript Quick SQL Row Selection

    Anthology: 101

    2006-03-22 Essential Tips, Tricks & 2006-05-08 Using Adobe's

    Hacks Data Retrieve from mailbox and Flex Builder

    this is the most completegenerate the SQL Syntax tool to connect a

    question-and-answer book PHP backend to

    on JavaScript. It's a 2006-05-05 the front end collection of over 100 A Complete thoroughly-tested, table(ADD,EDIT,VIEW,DELETE)2006-03-18 customizable and elegant management System

    Using solutions that will show

    PHP,MYSQL, JAVASCRIPT Transactions In you how to add usable

    MySQL (part

    1) and

    accessible

    interactivity to your site:

    NewExamplesRSS 12% PHP Mysql Paging System from slick drop-down

    Adwords 5%

    More Articles menus, to style sheet

  • & Tutorials... switchers, to AJAX

    2006-05-04

    MyYahoo 4%

    Extract keywords from a string applications, and

    much more.Overture 4%

    having words in " " count as one phpn.org 4% string.

    More Sample Chapters

    NewArticlesRSS 3% 2006-05-01

    ph

    pc

    la

    ss

    es

    3

    %

    Data Retrievefrom Mysql using

  • OSContent

    2%AJAX with PHP SearchBox1%LearningManagement Programmer

    2006-04-

  • 27 Front End Engineer Small Business

    Submit a Job

    More jobs and freelance Zero-day Word flaw used Storing lists in mysql projects... in attack

    Hosting Domain Names Latest News Latest Forums Threads

    webmaster forums 2006-05-19 2006-05-22 03:12:59

    2006-05-21 13:39:04 Web design forum 2006-05-19 MySQL Schema Skype bug may expose

    Submit Site user data 2006-05-21 03:48:55

    Best Web Hosting CHMOD Not changing Reviews 2006-05-12

    Free

    Domain Names Apple flaws put both 2006-05-20

    16:46:26 Macs and

    PCs at risk

    Real

    Estate - Real Estate

    Listings 2006-05-11

    Ballmer: Google wants Dimension Se Green Card - Green Card

  • special treatment in IE

    Lottery Application 2006-05-20 00:13:21 Service 2006-05-10 Help

    with Mysql online casino Google has its eye on Database

  • Free Casino Games Vista search

    More Info

    Great Information Quick Seek Yellow Pages Free Ebay Marketing Ebooks

    the web developer's resource

  • HOW-TO LIBRARY Authoring Design Multimedia E-Business Programming Backend Jobs

    About Us QUICK REFERENCE JavaScript Code Library HTML Cheatsheet Special Characters Color Codes Browser Chart Stylesheets Guide

  • Unix Guide Glossary Domain Registries

    Sign up for our weekly newsletter, Elbow Grease.

    Lycos Worldwide Copyright 2005, Lycos, Inc. All RightsReserved. Lycos is a registered trademark of Carnegie Mellon University.

    About Terra Lycos | Help | Feedback | Jobs | Advertise | Business Development

    Your use of this website constitutes acceptance of the Lycos Network PrivacyPolicy and Terms & Conditions.

    [an error occurred while processing this directive]

    http://www.webmonkey.com/ [21/05/2006 22:42:06]

  • The world's most popular open source database

    Login / Register

    MySQL.com MySQL Network Developer Zone Partners Online Shop Products Training Consulting Support OEM News & Events Customers Why MySQL?

    1 How to Buy News Unisys to Deliver New Services for MySQL Open Source Database

    Software MySQL AB Sees Increased Growth & Momentum in EMEA UN's FAO Selects MySQL as its

    O

    pen

    Sou

    rce

    DB

    Sta

    nda

    rd

    Arti

  • cles

    Advanced MySQL Replication Techniques MySQL 5.1 New Features:

    MySQL Powers the World's MySQL Events

    Most Popular Web sites! Products

    MySQL 5.0 New! Learn how leading organizations are saving over $1 million MySQL Cluster using commodity hardware and open source software. Migration Toolkit Downloads Learn More Documentation Industries Retail

    Case Studies Telecom

    Case Studies Travel

    Case Studies Embedded

    Case Studies Web Seminars Embedding and Bundling MySQL Best Practices Register Now

    Cost-Effective Database Scale-Out Using MySQL (replay) Register Now MySQL Training

    MySQL 5.0 In-depth

  • Jun 27: Detroit Jul 25: San Francisco Jul 18: London MySQL 5.0 New Features Jun 27: Frankfurt Aug 28: Washington DC Sep 25: London White Papers Developer Zone Jobs at MySQL

    A Guide to High Availability VOIP

    About MySQL

    Careers

    Site Map

    Contact Us

    Privacy Policy Legal

    Login To PHPBuilder User Name: Password:

  • Join Up! 74847 members and counting!

    Linux Today Enterprise Linux Today Apache Today JustLinux.com Linux Planet PHPBuilder All Linux Devices Hiermenus DatabaseJournal jobs.linuxtoday.com 0 Developer International Internet Lists Internet News Internet

    Resources IT Linux/Open Source Personal Technology Small BusinessWindows Technology xSP Resources

    1 Search internet.com Advertise Corporate Info Newsletters Tech Jobs E-mail Offers

    Covalent Extends Apache 2.0 to Microsoft ASP.NET ShopWorX - Supportfor Windows PHP Security Advisory: Vulnerability in PHP versions 4.2.0 and

    4.2.1 Network Risk Assessment Full-Featured, Java-Based Apache GUI

    Partners & Affiliates

    1 Installing PHP under Xitami Using cURL With PHP Shell Scripting w/PHP Optimizing Postgresql PHP Web Blog - Part 3 HOME

  • Community Articles Code Library People Mail Archive My Account Contribute

    Open Source Database Feature Comparison Matrix Try Declarative Programming with Annotations and Aspects Locate All Stored Procedures and Their Objects/SQL Tables Building a Stored Procedure Generator Making Tables Read-only in Oracle

  • 24-hour Support Daily Backup Dedicated Servers JSP/Java

  • Servlets PHP MySQL Streaming Audio/Video Telnet/SSH Unix Hosting 24-hour Support

    visualEdit Now Available for Free -ActiveCampaign, Inc. Roadsend PHP

    Compiler v2.0 Released -Shannon Weyrick PHPKB Professional Edition 1.5

    Launched -Knowledgebase-Script.com Symfony 0.6.2 Released : AJAX Getting

    Easier for PHP Devs -Francois Zaninotto phpYellow Pro Edition 6.06

    Launched -Rob TYPO3 -- Version 4.0 Launched; Setting a New Standard in

    Appearance and Fun -Michelle Heizer NuSphere PhpED 4.5 is released

    -Natalie [Show All]

    In Case You Missed It...The Week of May 15th, 2006 By Elizabeth Naramore This busy week Elizabeth brings us news about security patches for PHP4 and PHP5, free PHP accounts at Dotgeek, OSCON's Lightning Talks, a new blog fromPHP IDE Eclipse, the release of phpMyAdmin 2.8.0.4, the latest PEAR/PECL releases and much more!

    In Case You Missed It...The Week of May 8th, 2006 By Elizabeth Naramore This week Elizabeth brings us news on the release of PHP 5.1.3, the announcement of Code Challenge 2006 and the upcoming An Introduction to Graphs Using PEAR's Image_Graph Package By Ian Gilfillan At some point, most developers find a need to create graphs for their projects. This article looks at PEAR's Image_Graph package, which is released under theLesser GPL. Find out how you can create highly customizable graphs with this useful package!

    In Case You Missed It...The Week of May 1st, 2006

  • By Elizabeth Naramore Our reporter Elizabeth brings us news this week from Zend on their change to a BSD license framework, Jim Plush's blog about the recent PHP boom, a new CEO for Zend, the latest PEAR/PECL releases and much more!

    Using XML, a PHP Developer's Primer: XML-RPC, PHP and Javascript, Part 2 By Adam Delves This is the second half of an article that began last week on XML-RPC and PHP. This week we put together the PHP RPC server and learn more about the emailValidator_validate function!

    In Case You Missed It...The Week of April 24, 2006 By Elizabeth Naramore This week Elizabeth brings us news of the upcoming PHP Vikinger code-fest, PHP Gotchas for the "Newb", PHP as an Official Mentor for Summer ofCode, the latest PEAR/PECL releases and much more!

    In Case You Missed It...The Week of April 17, 2006 By Elizabeth Naramore This week Elizabeth brings us news of the release of Zend Guard 4, Davey Shafik's PHP Thinktank, a security alert for phpMyAdmin, anannouncement about Google's Summer of Code, the latest PEAR/PECL releases and much more!

    Using XML, a PHP Developer's Primer, Part 4: XML-RPC, PHP and Javascript By Adam Delves In this article we will demonstrate how PHP can be used to call upon web services provided by third part sites via an XML-RPC server. We will also showyou how to create your own XML-RPC and use client-side Javascript to invoke procedures in your PHP scripts.

    HOT THREADS

    Topic By Replies Updated word association game jamesm87 2580 Today 10:57 AM Editor used for PHP Bunkermaster 287 5-17-2006 05:00 PM New Projects : Announce here Bunkermaster 93 5-12-2006 05:30 PM New to PHP FatStratCat 44 5-16-2006 02:58 PM Treasury Dept. announces new $20 bill.... dalecosp 36 5-12-2006 02:26 PM Problem with file paths Howard007 35 Yesterday 08:00 AM Ah!! Dell Looks like Apple!! Ahh!! bpat1434 29 5-19-2006 12:26 PM Building a LAMP server FatStratCat 25 5-15-2006 03:08 PM SESSIONS..just dont get it.. deezzer 20 5-17-2006 03:47 PM By the way of xhtml validator and GET

  • whisher06 20 5-17-2006 11:10 AM

    NEW THREADS

    Topic By Replies Updated

    getimagesize unable to open file... workaround? krotkruton 0 Never Install PHP5 & Apache2.2.2 Homecat 1 Today 10:05 PM

    Question about Arrays FatStratCat 1 Today 10:01 PMCaching Dynamic Pages Help. Rodney H. 0 NeverWhat is needed in HTTP header to output a picture Mgccl 0 Never

  • PHP5 speed tests... vaaaska 3 Today 09:01 PM[RESOLVED] Outside htdoc NeedaCart 3 Today 06:22 PMAdvice on passwording folders please Andy-T 0 Never[RESOLVED] chmod() question. shank 8 Today 07:28 PMsession file appears "locked" - can't call two pages @once sfullman 0 Never

    To start viewing messages, select the topic that you want to visit from the selection above.

    Columns / Articles | Tips / Quickies | News | News Linking and RSS Feeds |Shared Code Library

    Mail Archives | Support / Discussion Forums | Get Started! Links | Contribute! |Docs

    JupiterWeb networks:

    Search JupiterWeb: Jupitermedia Corporation has two divisions:

    Jupiterimages and JupiterWeb

    Copyright 2005-2006 Jupitermedia Corporation All Rights Reserved.

  • Legal Notices, Licensing, Reprints, & Permissions, Privacy Policy.

    Jupitermedia Corporate Info | Newsletters | Tech Jobs | Shopping | E-mail Offers

    What is PHP?

    PHP is a widely-used general-purpose scripting language that is especially suited for Web development and can be embedded into HTML. If you are new to PHP and want to get some idea of how it works, try the introductory tutorial. After that,check out the online manual, and the example archive sites and some of the otherresources available in the links section.

    Ever wondered how popular PHP is? see the Netcraft Survey.

    Thanks To

    easyDNS Directi pair Networks EV1Servers Server Central Hosted Solutions Spry VPS Hosting eZ systems / HiT OSU Open Source Lab Emini A/S Yahoo! Inc.

    Related sites

    Apache MySQL

  • Call to speaker for Paris "Forum PHP 2006"

    [17-May-2006] The AFUP, Association Franaise des Utilisateurs de PHP, is proud to announce the upcoming conference "Forum PHP 2006". For this unique event in France, we are looking for the best French speaking experts, who want to share their know-how and enthusiasm. This two day conference features one technical day, with the most advanced PHP techniques and a business day, with case studies and examples of successful projects.

    Date and location: the "Forum PHP 2006" will take place in Paris, at the SNHF (Socit Nationale d'Horticulture), on Thursday and Friday the 9th and 10thof November 2006.

    Upcoming Events

    [add]

    May

    User Group Events

    21. PHP Cairo Meeting 23. New York 23. AzPHP 23. San Antonio PHP Meetup

    25. Arabic PHP GroupMeeting 25. Malaysia PHP User Group Meet Up25. PHP Beer - Quebec 29. Long Island PHP Users Group 31. Munich

    Conferences

    27. Caminhos Certificacao PHP /Zend

    Training

    1 AlefBrain PHP Training 2006 2 PHP w/MySQL Bootcamp

    -USA 22. Formation PHP-MySQL

    1 Formation PHP - Mysql (Montreal)

    2 UK PHP Training

    23. Formation LAMP Rimouski 25. PHP Brasil - Training

    PostgreSQL Zend Technologies

    Community

    LinuxFund.org

    OSTG

    Syndication

    You can grab our news as an RSS feed via a daily dump in a file named news.rss .

  • NYPHPCon 2006 Program

    Announced

    [16-May-2006] We are pleased to announce the speaker, tutorial and keynote program for NYPHPCon 2006. The New York PHP Conference & Expo 2006 is taking place in New York City, at the historic New Yorker Hotel, June 14-16, 2006. There will be three full days of sessions, tutorials, exhibits, and networking events.

    We are also pleased to host the IBM Mashup Contest and Oracle PHPFest,

    and a special PHP Training package at this event.

    NYPHPCon 2006 focuses on the The PHP Business Community, with two featured parallel tracks plus tutorials: Business Strategy and Technical Solutions. Over 400 are expected to attend, including business and technical professionals from around the world.

    PHP 5.1.4

    Released

    [04-May-2006] A critical bug with $_POST array handling as well as the FastCGI sapi have been discovered in

    29. PHP/MySQL Training in SanFran. 29. Formation LAMP aMontreal

    29. PHP/MySQL/Apache/IIS in SanFran

    June

    User Group Events

    1. SDPHP (San Diego, CA) 1. Hannover 1. Meetup Day 1. Omaha PHP Users Group Meetup1. PHP London

    1. The Houston PHP Users Group 1. Boston PHP Meetup 1. Melbourne PHP User Group 1. The West Palm Beach PHP Group 1. Atlanta PHP User Group 1. Manchester UK - PHP Group 1. EdPUG - Edinburgh PHP UserGroup

  • 1. Sydney PHP Groupmeetings 1. PHP UG Meetup Auckland 1. PHP Quebec - Montreal

    1 Orange County PHP User Group

    2 Kln/Bonn 3 Encuentro PHP en Cceres

    (SPAIN) 4 PHP meeting online in China

    6. SW Florida Linux Users Group 1 PDXPHP monthly meeting 2 Central Iowa PHP Users

    PHP 5.1.3. A new PHP release 5.1.4 isnow available to address these issues. All PHP users are encouraged to upgrade to this release as soon as possible.

    Further details about this release can be found in the release announcement and the full list of changes is available in the PHP 5 ChangeLog. The tarballs were updated to include the PEAR's phar file, previously missing from the release.

    PHP 5.1.3

    Released

    [01-May-2006] The PHP development team is proud to announce the release of PHP 5.1.3. This release combines small number of feature enhancements with a significant amount of bug fixes and resolves a number of security issues. Some of the key changes of PHP 5.1.3 include:

    Disallow certain characters in session names. {

    Fixed a buffer overflow inside the wordwrap() function.

    Prevent jumps to parent directory via the 2nd parameter of the tempnam() function.

    Enforce safe_mode for the source parameter of the copy() function.

    Fixed cross-site scripting inside the phpinfo() function.

    Fixed offset/length parameter validation inside the substr_compare()

    function.

    Fixed a heap corruption inside

    Group 8. Meeting usergroupDortmund 8. PHP UsergroupFrankfurt/Main 8. AproPHP Lille 10. PHP User Group Nanaimo, BC/CA 13. Hamburg 13. Dallas PHP/MySQL Users Group 13. Dallas PHP Users Group(DPUG) 13. Austin PHP Meetup

    1 OKC PHP Meetup 2 Wash DC PHP Developers

    Group 3 TriPUG

    15. OINK-PUG (Cincinnati, Ohio) 15. Utah PHP Users GroupMeeting 17. Kansas City 17. Los Angeles LAMP SIG 17. Miami Linux Users Group 17. Twin Cities PHP

    1 Madison PHP User's Group 2 Miami PHP User Group

  • 21. Broward Php Usergroup 21. Chicago PHP User Group 21. Nashville PHP Users Group

    1 Long Island PHP Users Group 2 New York

    27. AzPHP 1 San Antonio PHP Meetup 2 Munich 3 Arabic PHP Group Meeting

    29. Malaysia PHP User Group MeetUp

    the session extension.

    Fixed a bug that would allow variable to survive unset().

    Fixed a number of crashes in the DOM, SOAP and PDO

    extensions. Upgraded bundled PCRE

    library to version 6.6 {

    The use of the var keyword to declare properties no longer raises a deprecation E_STRICT.

    FastCGI interface was completely reimplemented. Multitude of improvements to the SPL,SimpleXML, GD, CURL and

    Reflection extensions.

    Over 120 various bug fixes.

    Further details about this release can be found in the release announcement

    and the full list of changes is available in the PHP 5 ChangeLog.

    Summer of Code

    [01-May-2006] Proposals are now beingaccepted for Google's Summer of Code program. If you qualify and you are interested in working on a PHP-related project this summer, please

    consider applying. We have listed a couple of ideas, but we would encourage you to submit a proposal for any part of PHP you are interestedin. If your project is accepted we willmatch you up with a mentor and try to provide you with as much support as possible. To get started, read the FAQ and then go to Step 1.

    Conferences

    14. NYPHPCon 2006

    1 PHP@Strasbourg Journees du Libr

    2 PHP Vikinger Community Event

    24. PHP at FrOSCon 30. WebTech 2006

  • Training

    1. Curso de PHP Avanzado en Bilbao 1. Web Programming UsingPHP/MySQL. 1. PHP/MySQL Training in SanFran. 1. Formation LAMP a Montreal

    1 Ahmedabad PHP Group Training

    2 MySQL Spain

    5. Curso PHP Madrid

    5. PHP E-Learning/Germany 5. Curso on-line ActionScript / PHP 5. PHP & MySQL Training in Kassel

    5. PHP & MySQL com

    Dreamweaver MX 5. Curso on-line de PHP 5. Formation LAMP a Quebec

    5. PHP & MYSQL-

    Construindo WebSites

    1 Malaysia : Advanced PHP & MySQL

    Curso on-line de PHP-MySQL

    6. EVERY TUESDAY: PHP Class (FREE!)

    8. Intro to PHP

    PHP at FrOSCon Call for Papers

    [24-Apr-2006] The faculty for Computer Science of the college of higher education Bonn-Rhein-Sieg celebrates the first conference about free software in cooperation with the LUUSA and the FrOSCon e.V. 2006. The event takes place on June 24th/25th in Bonn, Germany and is organized completely free and open.

    The PHP user groups Kln/Bonn and Dortmund take part in the conference and organize a professional PHP track for both days. The call for papers is currently open and every interesting talk is highly appreciated.

    PHP Vikinger

    [24-Apr-2006] The PHP Vikinger is a community-driven PHP event that will

    be held in Skien, Norway from June 24th to 25th. Like the famous Foo Camp and Bar Camp, the people who attend get to choose and present the sessions at the

  • event.

    The event is meant to be affordable: registration is 20 Euros, and simple food and a place to sleep are provided for both days of the event. The major expense for most attendees will be the cost of traveling to Norway. 50 invitations have been sent to various PEAR and PHP contributors. General registration for the event opens on

    12. PHP & MySQL Training / Frankfurt 12. PHP para Expertos Curso on-line

    1 Curso PHP y MySQL

    2 PHP Training Philippines

    1 PHP & MySQL Training / Gieen

    2 Cursos de PHP en Bilbao

    22. PHP Brasil - Training 22. Intro to MySQL 26. PHP/MySQL/Apache/IIS inSan Fran 26. PHP and MySQLBootcamp Training 26. Advanced PHP w/MySQL -USA 27. UK PHP Training May 1st.

    International PHP Conference 2006 Call for Papers

    [24-Apr-2006] The Call for Papers for the International PHP Conference 2006, 5thto 8th November 2009 at Frankfurt/Main Germany, has been started. The Conference features two days full with six hours PowerWorkshops and two days main conference with sessions.

    The main focus of the conference will be Security through an own security track. Like last year, we'll provide a Management Day for businesses utilizing PHP or evaluating PHP.

    The Call for Papers will end at May, 21th.

    php|tek 2006

    [02-Mar-2006] The php|tek 2006 conference will take place in Orlando, Florida,

  • April 25-28.

    This year's speaker roster features many well-known PHP and open-source experts, including Rasmus Lerdorf, IBM's Rod Smith and Zend's Andi Gutmans, speaking on a variety of topics that highlight PHP's scalability, robustness and future.

    PHP Quebec 2006

    [26-Feb-2006] The PHP Quebec team is pleased to announce the 4th edition of the PHP Quebec Conference. This year, the conference will be held at the Montreal Plaza Hotel from March 29th to 31st. It features 2 days of technical learning and an additional day of workshop. Among the speakers, the well known PHP Experts such has Rasmus Lerdorf, Andrei Zmeivski, Derick Rethans and Ilia Alshanetsky.

    The conference will have three distinct tracks of session: Advanced Techniques, Professional Development and Databases. With over 31 sessions, including workshops, the PHP Qubec Conference is great opportunity to learn about the latest PHP techniques and professional development techniques to help you build high quality PHP software. The conference will also present the various storage solutions available such has IBM DB2, PostgreSQL, SQLite and MySQL.

    Early bird pricing are available until march 3rd. Learn more about this exciting conference.

    NYPHPCon 2006

  • [02-Feb-2006] The New York PHP Conference & Expo 2006 is taking place in New York City, at the historic New Yorker Hotel, June 14-16, 2006. There will be three full days of sessions, tutorials, exhibits, and networking events.

    NYPHPCon 2006 focuses on the The PHP Business Community, with two featured parallel tracks: Business Strategy and Technical Solutions. Over 400 are expected to attend, including business and technical professionals from around the world.

    We invite everyone - whether technical or non-technical - to participate in our Call For Papers.

    An early-bird discount is available until March 1st.

    WebTech 2006

    Third Bulgarian PHP Conference

    http://www.php.net/ (8 of 12) [21/05/2006 22:43:29] [19-Jan-2006] The third Web Technology conference and Expo in Bulgaria will be held in June 2006 in the city of Sofia. Within its framework, the Third Bulgarian PHP Conference willbe held. The event will take place on the 30th of June and the 1st of July at the conference area of the Kempinski Hotel Zografski.

    The purpose of this meeting is to discuss the new tendencies in this direction and to popularize the internet technologies in the spheres of business, education, and services. The range of subjects includes technologies like PHP, Perl, business systems through web, education through the internet, and others.

    FrOSCon 2006

    -Call for

    Papers

  • [19-Jan-2006] The first Free and Open Source Conference "FrOSCon" takes placeon 24th and 25th June 2006 in St. Augustin, near Bonn, Germany. Organized by a commited team, it aims to become a significant event for free software in the Rhineland. The conference is hosted by the faculty of computer science of the University of Applied Sciences Bonn-Rhein-Sieg in collaboration with the studentbody and the Linux/Unix User Group St. Augustin.

    In a Call for Papers, the organizers ask for submission of contributions. A broad variety of topics concerning free and open source software is desired. Particularly welcome are contributions about programming languages, free software on the desktop, security, systems administration and networks. Aspects of free software in business and industry are also a focus of the conference.

    Contributions can be submitted in English or German and should summarize the intended talk concisely and succinctly; talks should range from 45 to 60 minutes in length. Deadline for submission is 15th March 2006.

    UK PHP Conference 2006

    UK PHP Conference 2006

    [17-Jan-2006] The first UK PHP Conference is going to be held on February 10th 2006, organized by the PHP London user group. This is a one day event at South Bank University, plus networking events. The list of speakers: Derick Rethans, Pawel Kozlowski, Harry Fuecks, Chris Kunz and Matt Zandstra. Not bad for 50 quid.

    PHP 4.4.2

    Released

    [13-Jan-2006] The PHP development team is proud to announce the release of PHP 4.4.2. This release address a few small security issues, and also corrects some regressions that occurred in PHP 4.4.1. All PHP 4 users are encouraged to upgrade to this release. Some of the key changes of PHP 4.4.2 include:

  • HTTP Response Splitting has been addressed in the header() function. An XSS problem inside the error reporting functionality has been

    removed. Apache 2 regression with sub-request handling on non-Linux systems has

    been fixed. A regression with the key() and current() functions have been fixed. Over 30 various bug fixes.

    Further details about this release can be found in the release announcement and the full list of changes is available in the PHP 4 ChangeLog.

    PHP 5.1.2

    Released

    [12-Jan-2006] The PHP development team is proud to announce the release of PHP 5.1.2. This release combines small feature enhancements with a fair number of bug fixes and addresses three security issues. All PHP 5 users are encouraged to upgrade to this release. Some of the key changes of PHP 5.1.2 include:

    HTTP Response Splitting has been addressed in ext/session and in the header() function.

    Fixed format string vulnerability in ext/mysqli. Fixed possible cross-site scripting problems in certain error conditions. Hash & XMLWriter extensions added and enabled by default. Upgraded OCI8 extension. Over 85 various bug fixes.

    Further details about this release can be found in the release announcement and the full list of changes is available in the PHP 5 ChangeLog.

    News Archive

  • Copyright 2001-2006 The PHP Group This mirror generously provided by:Yahoo! Inc.

    All rights reserved. Last updated: Sun May 21 18:20:41 2006 PDT