apostila de linguagem de programaÇÃo...

34
Universidade Guarulhos Página 1 APOSTILA DE LINGUAGEM DE PROGRAMAÇÃO IV CIÊNCIA DA COMPUTAÇÃO PROF. ERWIN ALEXANDER UHLMANN

Upload: phungbao

Post on 28-Jan-2019

253 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: APOSTILA DE LINGUAGEM DE PROGRAMAÇÃO IVinstitutosiegen.com.br/documentos/euhl.1333992012806.pdf · APOSTILA DE LINGUAGEM DE PROGRAMAÇÃO IV CIÊNCIA DA COMPUTAÇÃO PROF. ERWIN

Universidade Guarulhos Página 1

APOSTILA DE LINGUAGEM DE PROGRAMAÇÃO IV

CIÊNCIA DA COMPUTAÇÃO

PROF. ERWIN ALEXANDER UHLMANN

Page 2: APOSTILA DE LINGUAGEM DE PROGRAMAÇÃO IVinstitutosiegen.com.br/documentos/euhl.1333992012806.pdf · APOSTILA DE LINGUAGEM DE PROGRAMAÇÃO IV CIÊNCIA DA COMPUTAÇÃO PROF. ERWIN

Universidade Guarulhos Página 2

Agradecimentos

Agradeço a todos os alunos que com suas contribuições me

ajudaram a criar este pequeno trabalho e à UnG que me

abriu esta oportunidade.

Page 3: APOSTILA DE LINGUAGEM DE PROGRAMAÇÃO IVinstitutosiegen.com.br/documentos/euhl.1333992012806.pdf · APOSTILA DE LINGUAGEM DE PROGRAMAÇÃO IV CIÊNCIA DA COMPUTAÇÃO PROF. ERWIN

Universidade Guarulhos Página 3

Conteúdo Agradecimentos ................................................................................................................................................................... 2

Objetivo ................................................................................................................................................................................. 4

Linguagens de estudo......................................................................................................................................................... 4

PHP .................................................................................................................................................................................... 4

O que é o PHP? ......................................................................................................................................................... 4

SQL .................................................................................................................................................................................... 4

Pré-requisitos .................................................................................................................................................................. 4

Softwares .......................................................................................................................................................................... 6

PHP Editor .................................................................................................................................................................. 6

Kompozer .................................................................................................................................................................... 6

Microsoft Expression Web 3 .................................................................................................................................. 7

Adobe Dreamweaver CS4 ....................................................................................................................................... 8

Bloco de Notas ........................................................................................................................................................... 9

O QUE É UM APLICATIVO PARA WEB? ............................................................................................................... 9

COMO FUNCIONA UM APLICATIVO PARA A WEB .......................................................................................... 9

Aula 2 .................................................................................................................................................................................... 14

Consultas ......................................................................................................................................................................... 14

Inserção de dados.......................................................................................................................................................... 14

Aula 3 .................................................................................................................................................................................... 17

Exclusão de dados ......................................................................................................................................................... 17

Método do while. ..................................................................................................................................................... 17

Método for. ................................................................................................................................................................ 19

Aula 4 .................................................................................................................................................................................... 21

Página do usuário ......................................................................................................................................................... 21

Exclusão de registros .................................................................................................................................................... 21

AULA 5 ................................................................................................................................................................................ 24

Edição de dados ............................................................................................................................................................ 24

AULA 6 ................................................................................................................................................................................ 25

Login ................................................................................................................................................................................ 25

Ranqueamento do menu ............................................................................................................................................ 25

AULA 7 ................................................................................................................................................................................ 26

Upload de arquivos ...................................................................................................................................................... 26

AULA 8 ................................................................................................................................................................................ 27

Login, logout e proteção de sessão ......................................................................................................................... 27

Página index.php (login.php) ............................................................................................................................... 27

valida_sessao.php ..................................................................................................................................................... 29

Page 4: APOSTILA DE LINGUAGEM DE PROGRAMAÇÃO IVinstitutosiegen.com.br/documentos/euhl.1333992012806.pdf · APOSTILA DE LINGUAGEM DE PROGRAMAÇÃO IV CIÊNCIA DA COMPUTAÇÃO PROF. ERWIN

Universidade Guarulhos Página 4

logout.php ................................................................................................................................................................. 30

BIBLIOGRAFIA: .................................................................................................................................................................. 34

BÁSICA: .......................................................................................................................................................................... 34

SUPLEMENTAR: ........................................................................................................................................................... 34

PERIÓDICOS: ................................................................................................................................................................ 34

Objetivo Desenvolver um site dinâmico com uso de Banco de Dados que atenda a qualquer situação.

Linguagens de estudo PHP e SQL.

PHP

O que é o PHP?

PHP originalmente significa “Personal Home Page Tools” ou também conhecido como PHP/FI com o

mesmo significado porém “/Forms Interpreter” e evoluiu para “Hypertext Preprocessor”.

Foi criado em 1994 por Rasmus Lerdorf, com código aberto, por tanto gratuito.

Em 1997 mais de 50.000 só no Estados Unidos já utilizavam esta tecnologia.

Atualmente contamos com a 5ª versão que foi lançada em 2007.

Por que e o quê? Rápido, robusto, cross-plataform, ou seja, funciona em qualquer sistema operacional, estável e gratuito!

O que ele pode fazer? Praticamente tudo o que uma linguagem de computação pode fazer.

SQL SQL é uma linguagem que vem do acrônimo inglês Structured Query Laguage, ou seja, Linguagem de

Consulta Estruturada.

Essa linguagem é utilizada por diversos Sistemas Gerenciadores de Banco de Dados (SGBD).

Um SGBD é importante por permitir a fácil interação com o Banco de Dados (BD).

Neste curso utilizaremos o SGBD MySQL, que é gratuito, pequeno, rápido, robusto e tem a maior

interação com o PHP.

Pré-requisitos Antes começar a trabalhar com o PHP, são necessários alguns passos.

Primeiro você precisará do programa PHP que fará a linguagem ser interpretada pelo computador e um

servidor.

Mas existem programas que já trazem estes programas embutidos e mais alguns.

Page 5: APOSTILA DE LINGUAGEM DE PROGRAMAÇÃO IVinstitutosiegen.com.br/documentos/euhl.1333992012806.pdf · APOSTILA DE LINGUAGEM DE PROGRAMAÇÃO IV CIÊNCIA DA COMPUTAÇÃO PROF. ERWIN

Universidade Guarulhos Página 5

O Vertrigo será o utilizado ao longo do curso, mas exitem outros, como é o caso do XAMPP que pode

até ser instalado em um PEN DRIVE.

Vá até o site do Vertrigo e baixe a versão mais recente.

http://vertrigo.sourceforge.net/

Para instalar é fácil e basta seguir os passos recomendados pelo programa.

Inicie sempre o Vertrigo, antes de começar a trabalhar com o PHP. Caso ele não consiga iniciar e

informe problemas com a porta 80, no Painel de Controle do Windows, em Ferramentas

Administrativas, e em seguida em Serviços, interrompa os programas que utilizem esta porta.

Na maioria dos casos são os softwares de comunicação como o Messenger, Skype, entre outros e

também o servidor ISS, caso o tenha.Este modelo de relatório está completo com estilos para um

sumário e um índice.

Também é importante lembrar que nos sistemas operacionais Windows Vista e Windows 7 (Seven), ao

instalar é necessário aplicar as permissões de segurança à pasta, em Propriedades, na guia Segurança.

Veja na figura 1.

Figura 1 - Propriedades de pastas do Windows

Page 6: APOSTILA DE LINGUAGEM DE PROGRAMAÇÃO IVinstitutosiegen.com.br/documentos/euhl.1333992012806.pdf · APOSTILA DE LINGUAGEM DE PROGRAMAÇÃO IV CIÊNCIA DA COMPUTAÇÃO PROF. ERWIN

Universidade Guarulhos Página 6

Softwares Além é claro do servidor Web, como o Vertrigo, Xampp, Easy PHP e outros, podemos trabalhar com os

seguintes editores de PHP:

PHP Editor

Nota: 7,5.

O PHP Editor é um dos melhores editores de PHP em modo texto, com assistente de programação, em

Português brasileiro, grátis, estável e com apoio ao HTML e ao Javascript também. Veja o software na

figura 2.

Figura 2 - PHP Editor

Faça o Download do PHP Editor aqui.

Kompozer

Nota: 6.0

O Kompozer é um editor do tipo WYSIWYG (What You See Is What You Get), ou seja, ele é visual, o

que você programa é o que aparecerá. Desenvolvido pela Mozilla, é gratuito, pequeno, estável e com

suporte ao HTML e CSS. Aceita a programação PHP e Javascript, porém não tem suporte. Trabalhar em

conjunto com o PHP Editor é recomendável. Veja sua interface na figura 3.

Page 7: APOSTILA DE LINGUAGEM DE PROGRAMAÇÃO IVinstitutosiegen.com.br/documentos/euhl.1333992012806.pdf · APOSTILA DE LINGUAGEM DE PROGRAMAÇÃO IV CIÊNCIA DA COMPUTAÇÃO PROF. ERWIN

Universidade Guarulhos Página 7

Figura 3 - Kompozer

Para fazer o download do Kompozer, clique aqui.

Microsoft Expression Web 3

Nota: 8,5.

A Microsoft vem tentando e conseguindo concorrer com a Adobe, proprietária do Dreamweaver. Com o

Expression Web, ou seu estúdio completo, a Microsoft progrediu muito seja na qualidade do software

como com seu apoio a diversas linguagens como PHP, Javascript, ASP, HTML, XML, entre outras.

Interface medianamente intuitiva, mas de fácil adaptação para quem tem conhecimento dos recursos da

Web, também sendo WYSIWYG.

Saiba mais sobre o Expression Studio em:

http://www.microsoft.com/portugal/expression/features/default.aspx?key=studio

Para os alunos regularmente matriculados, a Universidade Guarulhos mantém um acordo com a

Microsoft que fornece gratuitamente alguns softwares, entre eles o Expression Web, Saiba mais em:

http://www.ung.br/servicos_softwares.php

Veja a interface do Expression Web na figura 4.

Page 8: APOSTILA DE LINGUAGEM DE PROGRAMAÇÃO IVinstitutosiegen.com.br/documentos/euhl.1333992012806.pdf · APOSTILA DE LINGUAGEM DE PROGRAMAÇÃO IV CIÊNCIA DA COMPUTAÇÃO PROF. ERWIN

Universidade Guarulhos Página 8

Figura 4 - Expression web

Adobe Dreamweaver CS4

Nota: 10,0.

O Dreamweaver é o mais importante e famoso software de edição de páginas Web WYSIWYG. Com um

vasto apoio a diversas linguagens, dispensa muitas apresentações. Complexo e com interface

medianamente intuitiva, mas de fácil manuseio para quem conhece o mundo Web.

Para teste, pode ser baixado diretamente do site da Adobe. www.adobe.com.br

Veja a Interface do Dreamweaver CS3 na figura 5.

Page 9: APOSTILA DE LINGUAGEM DE PROGRAMAÇÃO IVinstitutosiegen.com.br/documentos/euhl.1333992012806.pdf · APOSTILA DE LINGUAGEM DE PROGRAMAÇÃO IV CIÊNCIA DA COMPUTAÇÃO PROF. ERWIN

Universidade Guarulhos Página 9

Figura 5 - Dreamweaver

Bloco de Notas

Nota: 2,5.

Fácil, mas sem nenhum suporte à nenhuma linguagem o Bloco de Notas permite escrever qualquer

programa. Disponível no Windows nativamente.

Ao longo do curso vamos estudar utilizando principalmente o PHP Editor e o Dreamweaver, que serão

identificados com o PE para PHP Editor e DW para o Dreamweaver.

Ainda no campo dos softwares, é importante também instalar alguns navegadores, como o Firefox, da

Mozilla, o Opera e o Safari da Apple, pois alguns recursos aqui apresentados podem se comportar de

forma diversa em cada um dos navegadores.

O QUE É UM APLICATIVO PARA WEB? Um aplicativo para a web é um site que contém páginas armazenadas em um servidor com conteúdo

parcialmente ou totalmente indeterminado. O conteúdo final de uma página será determinado somente

quando o usuário solicitar uma página do servidor web. Uma vez que o conteúdo final da página varia

de acordo com cada pedido de ação do usuário, este tipo de página é chamado página dinâmica.

Os aplicativos para a web são criados para solucionar diversos desafios e problemas. Esta seção

descreve usos comuns de aplicativos para a web e fornece um exemplo simples.

COMO FUNCIONA UM APLICATIVO PARA A WEB Um aplicativo para a Web é um conjunto de páginas normais e dinâmicas. Uma página normal é um

página que não é modificada quando solicitada pelo usuário: o servidor web envia a página ao

navegador que a solicitou sem modificá-la. Em contraste, uma página da web dinâmica é modificada

pelo servidor antes de ser enviada ao navegador. Chama-se página dinâmica devido à sua natureza

variável.

Page 10: APOSTILA DE LINGUAGEM DE PROGRAMAÇÃO IVinstitutosiegen.com.br/documentos/euhl.1333992012806.pdf · APOSTILA DE LINGUAGEM DE PROGRAMAÇÃO IV CIÊNCIA DA COMPUTAÇÃO PROF. ERWIN

Universidade Guarulhos Página 10

Por exemplo: é possível criar uma página para exibir resultados do programa de boa forma e deixar

certas informações (nome do funcionário e resultados) a serem determinadas quando a página for

solicitada por um funcionário.

Processamento de páginas estáticas.

Figura 6 - Processamento de páginas estáticas.

Figura 7 - Processamento de páginas dinâmicas

Vamos começar com a criação do BD, para tanto inicie o sua suíte php preferida. Ao longo deste curso

utilizaremos telas e exemplos com uso do Vertrigo, mas não se preocupe, como são apenas programas

de interação com os programas base como PHP, MySQL e PhpMyAdmin, pouco mudará.

Page 11: APOSTILA DE LINGUAGEM DE PROGRAMAÇÃO IVinstitutosiegen.com.br/documentos/euhl.1333992012806.pdf · APOSTILA DE LINGUAGEM DE PROGRAMAÇÃO IV CIÊNCIA DA COMPUTAÇÃO PROF. ERWIN

Universidade Guarulhos Página 11

Abra o PhpMyAdmin, o usuário é root e a senha é vertrigo, por padrão, caso você useo XAMPP o

usuário é root e a senha é em branco e no caso de se utilizar o SQLite o usuário é admin e a senha

admin.

Vamos criar um BD com o criativo nome ung_lpiv. Note que escrevi com letras minúsculas.

Figura 8 - Iniciar o PhpMyAdmin

Page 12: APOSTILA DE LINGUAGEM DE PROGRAMAÇÃO IVinstitutosiegen.com.br/documentos/euhl.1333992012806.pdf · APOSTILA DE LINGUAGEM DE PROGRAMAÇÃO IV CIÊNCIA DA COMPUTAÇÃO PROF. ERWIN

Universidade Guarulhos Página 12

Figura 9 - Interface do PhpMyAdmin

A princípio vamos criar apenas uma tabela chamada usuarios e com os seguintes campos:

usu_id - int(11) – auto_increment – key

usu_nome – varchar(50)

usu_email – varchar(50)

usu_senha - varchar(32)

usu_foto – varchar(50)

Agora vamos conectar o PHP ao MySQL.

Abra seu editor PHP e escreva:

<?php

//escolha a qual BD se conectar

//na ordem, onde está o BD, o login e a senha

$conexao = mysql_pconnect("localhost", "root", "vertrigo");

//escolha o BD

mysql_select_db("ung_lpiv");

?>

Note que você pode utilizar a função mysql_connect para realizar uma ação pontual ou a função

mysql_pconnect que permitirá realizar diversas ações, porém deverá, ao final, fecahr a conexão,

pois a diferença é que ela é persistente.

Poderemos fazer essa codificação em todas as páginas, no entanto, se um dia modificarmos o BD ou o

endereço, deveremos mudar todas as páginas, para isso vamos utilizar a função include:

<?php include("conecta.php"); ?>

Para fechar utilize:

<?php mysql_close($conexao); ?>

Ao final da estrutura </html>.

Page 13: APOSTILA DE LINGUAGEM DE PROGRAMAÇÃO IVinstitutosiegen.com.br/documentos/euhl.1333992012806.pdf · APOSTILA DE LINGUAGEM DE PROGRAMAÇÃO IV CIÊNCIA DA COMPUTAÇÃO PROF. ERWIN

Universidade Guarulhos Página 13

Page 14: APOSTILA DE LINGUAGEM DE PROGRAMAÇÃO IVinstitutosiegen.com.br/documentos/euhl.1333992012806.pdf · APOSTILA DE LINGUAGEM DE PROGRAMAÇÃO IV CIÊNCIA DA COMPUTAÇÃO PROF. ERWIN

Universidade Guarulhos Página 14

Aula 2

Consultas Para realizar consultas no BD (MySQL) com o PHP, vamos utilizar o código:

<?php

$dados = mysql_query('SELECT * FROM usuarios');

$linhas = mysql_num_rows ($dados);

echo "A tabela usuários tem $linhas linhas.<br />";

$colunas = mysql_num_fields ($dados);

echo "A tabela usuários tem $colunas colunas.<br />";

$nome_col0 = mysql_field_name($dados, 0);

echo "O noma da primeira coluna é <strong>$nome_col0 </strong>, ela é

identificada pelo índice 0.<br />";

$nome_col1 = mysql_field_name($dados, 1);

echo "O nome da segunda coluna é <strong>$nome_col1 </strong>, ela é

identificada pelo índice 1.<br />";

?>

A linha $dados = mysql_query('SELECT * FROM usuarios'); realiza a função de fazer

uma consulta (mysql_query) e a instrução SQL é 'SELECT * FROM usuarios'.

Ao armazenar a consulta na variável $dados, podemos utilizá-la em diversas partes do programa.

Na linha $linhas = mysql_num_rows ($dados); a função mysql_num_rows retorna

quantas linhas existem no BD, se valendo dos dados armazenados na variável $dados, criada na linha

anterior.

mysql_num_fields, número de campos, mysql_field_name, o nome do campo e neste caso,

os parâmetros são, $dados criado no início e a coluna desejada, 0, 1, 2, etc.

Agora vamos consultar os dados do BD.

<?php

$usu_id = mysql_result($dados, 0, "usu_id");

echo "<br /> O Id do primeiro usuário é: $usu_id<br />";

?>

A função mysql_result é a responsável pela consulta. Os parâmetros são:

$dados – criado no início;

0 – o registro, a linha;

usu_id – o campo, coluna.

Exercício:

Crie o BD, a conexão, a página índex e retorne todos os dados do registro 0.

Inserção de dados Bem, consultar não é lá tão interessante, nem ao menos desafiador. Vamos inserir dados no BD.

Para inserir dados no BD é simples. Crie um formulário na página gravar.php.

<form method="POST">

<input type="text" name="usu_nome" id="usu_nome" size="20" />

Page 15: APOSTILA DE LINGUAGEM DE PROGRAMAÇÃO IVinstitutosiegen.com.br/documentos/euhl.1333992012806.pdf · APOSTILA DE LINGUAGEM DE PROGRAMAÇÃO IV CIÊNCIA DA COMPUTAÇÃO PROF. ERWIN

Universidade Guarulhos Página 15

<input type="submit" name="Gravar" id="Gravar" value="Submit" />

</form>

Crie um link na página índex para a página gravar.php desta forma:

<a href="gravar.php">Gravar</a>

E da mesma forma para a index.

<a href="index.php">Index</a>

É claro que temos de incluir a programação para conexão ao BD e seu fechamento.

Vamos criar a programação, antes do <html> para receber os dados do formulário, assim:

$usu_nome = $_POST['usu_nome'];

$usu_email = $_POST['usu_email'];

$usu_senha = $_POST['usu_senha'];

$usu_foto = $_POST['usu_foto'];

Para gravar, escreva:

mysql_query("INSERT INTO usuarios (usu_nome, usu_email, usu_senha,

usu_foto) VALUES ('$usu_nome', '$usu_email', '$usu_senha',

'$usu_foto')");

Explicando...

mysql_query – comando o php para o mysql.

INSERT INTO tabela (campos) VALUES (‘variáveis do formulário’) – comando SQL

Questão.

Mas para cada visita que se fizer a esta página, um registro em branco será gravado, isto não é lá

muito legal... Solucione.

Ok, eu sei, você quis resolver, mas a preguiça falou mais alto, volte e FAÇA!

Agora sim, você aprendeu, mas quer ter certeza, confira.

<?php

include("conecta.php");

$gravar = $_POST['Gravar'];

if($gravar == 'Submit'){

$usu_nome = $_POST['usu_nome'];

$usu_email = $_POST['usu_email'];

$usu_senha = $_POST['usu_senha'];

$usu_foto = $_POST['usu_foto'];

mysql_query("INSERT INTO usuarios (usu_nome, usu_email, usu_senha,

usu_foto) VALUES ('$usu_nome', '$usu_email', '$usu_senha',

'$usu_foto')");

}

?>

Questão.

Como exibir todos os dados do BD?

Olha que idéia boa!

Vamos construir um menu que será incluído em todas as páginas?

Page 16: APOSTILA DE LINGUAGEM DE PROGRAMAÇÃO IVinstitutosiegen.com.br/documentos/euhl.1333992012806.pdf · APOSTILA DE LINGUAGEM DE PROGRAMAÇÃO IV CIÊNCIA DA COMPUTAÇÃO PROF. ERWIN

Universidade Guarulhos Página 16

Page 17: APOSTILA DE LINGUAGEM DE PROGRAMAÇÃO IVinstitutosiegen.com.br/documentos/euhl.1333992012806.pdf · APOSTILA DE LINGUAGEM DE PROGRAMAÇÃO IV CIÊNCIA DA COMPUTAÇÃO PROF. ERWIN

Universidade Guarulhos Página 17

Aula 3

Exclusão de dados Questão, qual item deverá ser excluído?

Então vamos exibi-los. Todos!

Vamos criar duas páginas, uma chamada excluir.php e outra para confirmar a exclusão e evitar

exclusões por engano, chamada excluir_confirm.php.

Método do while.

excluir.php

<?php include("conecta.php"); ?>

<HTML>

<HEAD>

<TITLE>Linguagem de Programação IV - 2010 B1</TITLE>

</HEAD>

<BODY>

<h1>Excluir dados (e exibi-los também!)</h1>

<?php include("menu.php");

$dados = mysql_query('SELECT * FROM usuarios ORDER BY usu_id ASC');

$registros = mysql_num_rows($dados);

$registro = 0;

do

{

$usu_id = mysql_result($dados, $registro, "usu_id");

$usu_nome = mysql_result($dados, $registro, "usu_nome");

$usu_email = mysql_result($dados, $registro, "usu_email");

$usu_foto = mysql_result($dados, $registro, "usu_foto");

echo "<table width='50%' border='1' cellpadding='1' cellspacing='1'>

<tr>

<td>$usu_id</td>

<td>$usu_nome</td>

<td>$usu_email</td>

<td>$usu_foto</td>

<td align='right'><a

href='excluir_confirm.php?usu_id=$usu_id'>Excluir</a></td>

</tr>

</table>";

$registro++;

}

while ($registro < $registros);

?>

</BODY>

</HTML>

<?php mysql_close($conexao); ?>

Vamos estudar esta parte.

Primeiro criamos uma variável $registro como valor 0 para que o comando do while comece por

este valor, então iniciamos este com o do.

A partir da { até a } tudo será feito ao menos uma vez, mas oquê?

$usu_id = mysql_result($dados, $registro, "usu_id");

$usu_nome = mysql_result($dados, $registro, "usu_nome");

Page 18: APOSTILA DE LINGUAGEM DE PROGRAMAÇÃO IVinstitutosiegen.com.br/documentos/euhl.1333992012806.pdf · APOSTILA DE LINGUAGEM DE PROGRAMAÇÃO IV CIÊNCIA DA COMPUTAÇÃO PROF. ERWIN

Universidade Guarulhos Página 18

$usu_email = mysql_result($dados, $registro, "usu_email");

$usu_foto = mysql_result($dados, $registro, "usu_foto");

Realizamos todas as consultas ao BD.

echo "<table width='50%' border='1' cellpadding='1' cellspacing='1'>

<tr>

<td>$usu_id</td>

<td>$usu_nome</td>

<td>$usu_email</td>

<td>$usu_foto</td>

<td align='right'><a

href='excluir_confirm.php?usu_id=$usu_id'>Excluir</a></td>

</tr>

</table>";

Então solicitamos a impressão com o comando echo de uma tabela com todas as variáveis criadas

acima. Observe o comando <td align='right'><a

href='excluir_confirm.php?usu_id=$usu_id'>Excluir</a></td>, que serve para

criar um link para a página do usuário.

$registro++;

}

Depois a variável $registro++, adiciona 1 ao último registro encontrado e se encerra o do.

while ($registro < $registros);

excluir_confirm.php

<?php include("conecta.php"); ?>

<HTML>

<HEAD>

<TITLE>Confirmação de exclusão</TITLE>

</HEAD>

<BODY>

<?php

include("menu.php");

//note que o id do usuário vem pela URL, logo, não use $_POST e sim

$_GET

$registro = $_GET['usu_id'];

$dados = mysql_query("SELECT * FROM usuarios WHERE usu_id=$registro");

$id = mysql_result($dados, '$registro', "usu_id");

$nome = mysql_result($dados, '$registro', "usu_nome");

$email = mysql_result($dados, '$registro', "usu_email");

$foto = mysql_result($dados, '$registro', "usu_foto");

?>

<form name="form" id="form" method="post" action="">

<?php

echo "O usuário $nome, id $id, email $email <img src='$foto'> vai ser

excluído!!! Ha! Ha! Ha! Já era!!!!<br />Tem certeza?";

//$excluir = "DELETE FROM usuarios WHERE usu_id = '$registro'";

?><br />

<input type="submit" name="submit" value="sim">

</form>

<?php

$confirma = $_POST['submit'];

if($confirma == "sim") {

$excluir = "DELETE FROM usuarios WHERE usu_id = '$registro'";

mysql_query($excluir);

Page 19: APOSTILA DE LINGUAGEM DE PROGRAMAÇÃO IVinstitutosiegen.com.br/documentos/euhl.1333992012806.pdf · APOSTILA DE LINGUAGEM DE PROGRAMAÇÃO IV CIÊNCIA DA COMPUTAÇÃO PROF. ERWIN

Universidade Guarulhos Página 19

}

?>

</BODY>

</HTML>

<?php mysql_close($conexao); ?>

Onde está o problema?

Se simplesmente dispararmos o comando $excluir = "DELETE FROM usuarios WHERE

usu_id = '$registro'";, ao acessar a página o registro será excluído. Para evitar tal ação,

criamos um formulário que peça a confirmação.

<form name="form" id="form" method="post" action="">

<?php

echo "O usuário $nome, id $id, email $email <img src='$foto'> vai ser

excluído!!! Ha! Ha! Ha! Já era!!!!<br />Tem certeza?";

?><br />

<input type="submit" name="submit" value="sim">

</form>

Coloque uma frase para alertar e um botão com o valor “sim”.

Por fim, ao receber o valor “sim”, o comando irá ser executado.

<?php

$confirma = $_POST['submit'];

if($confirma == "sim") {

$excluir = "DELETE FROM usuarios WHERE usu_id = '$registro'";

mysql_query($excluir);

}

?>

Método for.

Este problema foi levantado pelo Marcos Paulo Alvarenga e o script desenvolvido pela Jéssica Barbara

da Silva Ribas ([email protected]).

<?php include("conecta.php"); ?>

<HTML>

<HEAD>

<TITLE>Linguagem de Programação IV - 2010 B1</TITLE>

</HEAD>

<BODY>

<h1>Excluir dados (e exibi-los também!)</h1>

<?php

$dados = mysql_query('SELECT * FROM usuarios ORDER BY usu_id ASC');

$linhas = mysql_num_rows($dados);

$colunas = mysql_num_fields($dados);

echo "<table border='1' cellpadding='1' wicht='50%'>";

echo "<tr><th>Identificação</th>";

echo "<th>Nome</th>";

echo "<th>email</th>";

echo "<th>senha</th>";

echo "<th>Foto</th></tr>";

for($registro=0; $registro < $linhas; $registro++){

echo "<tr>";

for ($campo=0; $campo < $colunas; $campo++){

$usuario=mysql_result($dados ,$registro ,$campo);

echo "<td width=20%> $usuario </td>";

}

Page 20: APOSTILA DE LINGUAGEM DE PROGRAMAÇÃO IVinstitutosiegen.com.br/documentos/euhl.1333992012806.pdf · APOSTILA DE LINGUAGEM DE PROGRAMAÇÃO IV CIÊNCIA DA COMPUTAÇÃO PROF. ERWIN

Universidade Guarulhos Página 20

echo "</tr>";

}

echo "</table>";

?>

</BODY>

</HTML>

<?php mysql_close($conexao); ?>

Com a metodologia for é muito mais simples, mas...

O problema:

Crie um novo site que servirá de apostila de tudo que iremos aprender.

Crie um BD com uma tabela usuários e outra chamada aulas, com os campos que considerar

necessário.

Faça uma página index e uma página chamada menu com a técnica aprendida anteriormente. Cada

nova aula deverá exibir um novo item no menu.

Utilize a metodologia for, mas crie uma tabela com os nomes das colunas e um link no nome do

usuário para a página de detalhe.

Faça o algoritmo!

Page 21: APOSTILA DE LINGUAGEM DE PROGRAMAÇÃO IVinstitutosiegen.com.br/documentos/euhl.1333992012806.pdf · APOSTILA DE LINGUAGEM DE PROGRAMAÇÃO IV CIÊNCIA DA COMPUTAÇÃO PROF. ERWIN

Universidade Guarulhos Página 21

Aula 4

Página do usuário

<?php include("conecta.php"); ?>

<HTML>

<HEAD>

<TITLE>Página do usuário</TITLE>

</HEAD>

<BODY>

<?php

include("menu.php");

//note que o id do usuário vem pela URL, logo, não use $_POST e sim

$_GET

$registro = $_GET['usu_id'];

$dados = mysql_query("SELECT * FROM usuarios WHERE usu_id=$registro");

$id = mysql_result($dados, '$registro', "usu_id");

$nome = mysql_result($dados, '$registro', "usu_nome");

$email = mysql_result($dados, '$registro', "usu_email");

$foto = mysql_result($dados, '$registro', "usu_foto");

echo "<img src='img/$foto'><br />Bem vindo à página do $nome !<br />O

id dele é: $id <br />Mande um e-mail para ele!!! $email .<br />";

echo "<a href='editar.php?usu_id=$usu_id'>Editar</a>";

?>

</BODY>

</HTML>

<?php mysql_close($conexao); ?>

E como cheguei a esta página?

Na página excluir, que vimos acima, veja o link:

echo "<table width='50%' border='1' cellpadding='1' cellspacing='1'>

<tr>

<td width='5%'><a

href='usuario.php?usu_id=$usu_id'>$usu_id</a></td>

<td width='30%'><a

href='usuario.php?usu_id=$usu_id'>$usu_nome</a></td>

<td width='30%'>$usu_email</td>

<td width='30%'>$usu_foto</td>

<td width='5%' align='right'><a

href='excluir_confirm.php?usu_id=$usu_id'>Excluir</a></td>

</tr>

</table>";

Como funciona?

Na barra de endereço, para acessar um registro específico, basta adicionar ?campo=registro, ou seja, no

nosso caso, usuarios.php?usu_id=1.Para navegar entre registros, basta mudar o nº da url.

Para enviar para o registro certo, cri um link com a página?campo=$variável do registro.

Mas o objetivo é excluir os registros, então...

Exclusão de registros

<?php include("conecta.php"); ?>

<HTML>

<HEAD>

<TITLE>Linguagem de Programação IV - 2010 B1</TITLE>

Page 22: APOSTILA DE LINGUAGEM DE PROGRAMAÇÃO IVinstitutosiegen.com.br/documentos/euhl.1333992012806.pdf · APOSTILA DE LINGUAGEM DE PROGRAMAÇÃO IV CIÊNCIA DA COMPUTAÇÃO PROF. ERWIN

Universidade Guarulhos Página 22

</HEAD>

<BODY>

<h1>Excluir dados (e exibi-los também!)</h1>

<?php

//método do while....

include("menu.php");

$dados = mysql_query('SELECT * FROM usuarios ORDER BY usu_id ASC');

$registros = mysql_num_rows($dados);

$registro = 0;

do

{

$usu_id = mysql_result($dados, $registro, "usu_id");

$usu_nome = mysql_result($dados, $registro, "usu_nome");

$usu_email = mysql_result($dados, $registro, "usu_email");

$usu_foto = mysql_result($dados, $registro, "usu_foto");

echo "<table width='50%' border='1' cellpadding='1' cellspacing='1'>

<tr>

<td width='5%'><a

href='usuario.php?usu_id=$usu_id'>$usu_id</a></td>

<td width='30%'><a

href='usuario.php?usu_id=$usu_id'>$usu_nome</a></td>

<td width='30%'>$usu_email</td>

<td width='30%'>$usu_foto</td>

<td width='5%' align='right'><a

href='excluir_confirm.php?usu_id=$usu_id'>Excluir</a></td>

</tr>

</table>";

$registro++;

}

while ($registro < $registros);

?>

</BODY>

</HTML>

<?php mysql_close($conexao); ?>

Criamos a função de listagem de dados e um novo link > Excluir < que leva à página

excluir_confirm.php, assim garantiremos que não se exclua apenas por acessar a página excluir.php.

Na página excluir_confirm.php

<?php include("conecta.php"); ?>

<HTML>

<HEAD>

<TITLE>Confirmação de exclusão</TITLE>

</HEAD>

<BODY>

<?php

include("menu.php");

//note que o id do usuário vem pela URL, logo, não use $_POST e sim

$_GET

$registro = $_GET['usu_id'];

$dados = mysql_query("SELECT * FROM usuarios WHERE usu_id=$registro");

$id = mysql_result($dados, '$registro', "usu_id");

$nome = mysql_result($dados, '$registro', "usu_nome");

$email = mysql_result($dados, '$registro', "usu_email");

$foto = mysql_result($dados, '$registro', "usu_foto");

?>

<form name="form" id="form" method="post" action="">

<?php

Page 23: APOSTILA DE LINGUAGEM DE PROGRAMAÇÃO IVinstitutosiegen.com.br/documentos/euhl.1333992012806.pdf · APOSTILA DE LINGUAGEM DE PROGRAMAÇÃO IV CIÊNCIA DA COMPUTAÇÃO PROF. ERWIN

Universidade Guarulhos Página 23

echo "O usuário $nome, id $id, email $email <img src='$foto'> vai ser

excluído!!! Ha! Ha! Ha! Já era!!!!<br />Tem certeza?";

?><br />

<input type="submit" name="submit" value="sim">

</form>

<?php

$confirma = $_POST['submit'];

if($confirma == "sim") {

$excluir = "DELETE FROM usuarios WHERE usu_id = '$registro'";

mysql_query($excluir);

}

?>

</BODY>

</HTML>

<?php mysql_close($conexao); ?>

Page 24: APOSTILA DE LINGUAGEM DE PROGRAMAÇÃO IVinstitutosiegen.com.br/documentos/euhl.1333992012806.pdf · APOSTILA DE LINGUAGEM DE PROGRAMAÇÃO IV CIÊNCIA DA COMPUTAÇÃO PROF. ERWIN

Universidade Guarulhos Página 24

AULA 5

Edição de dados

<?php include("conecta.php");

$registro = $_GET['usu_id'];

$gravar = $_POST['Gravar'];

if($gravar == 'Submit'){

$Eusu_nome = $_POST['usu_nome'];

$Eusu_email = $_POST['usu_email'];

$Eusu_senha = $_POST['usu_senha'];

$Eusu_foto = $_POST['usu_foto'];

mysql_query("UPDATE usuarios SET usu_nome='$Eusu_nome',

usu_email='$Eusu_email', usu_senha='$Eusu_senha',

usu_foto='$Eusu_foto' WHERE usu_id=$registro");

}

?>

<HTML>

<HEAD>

<TITLE>Página do usuário</TITLE>

</HEAD>

<BODY>

<?php

include("menu.php");

//note que o id do usuário vem pela URL, logo, não use $_POST e sim

$_GET

$dados = mysql_query("SELECT * FROM usuarios WHERE usu_id=$registro");

$id = mysql_result($dados, '$registro', "usu_id");

$nome = mysql_result($dados, '$registro', "usu_nome");

$email = mysql_result($dados, '$registro', "usu_email");

$foto = mysql_result($dados, '$registro', "usu_foto");

//echo "<img src='img/$foto'><br />Bem vindo à página do $nome !<br

/>O id dele é: $id <br />Mande um e-mail para ele!!! $email .";

?><br />

<form method="POST">

<input type="text" name="usu_id" id="usu_id" size="20" value="<?php

echo $id; ?>" />

<input type="text" name="usu_nome" id="usu_nome" size="20"

value="<?php echo $nome; ?>" />

<input type="text" name="usu_email" id="usu_email" size="20"

value="<?php echo $email; ?>" />

<input type="text" name="usu_foto" id="usu_foto" size="20"

value="<?php echo $foto; ?>" />

<input type="submit" name="Gravar" id="Gravar" value="Submit" />

</form>

</BODY>

</HTML>

<?php mysql_close($conexao); ?>

Editar os dados é muito simples. Exiba-os dentro de um formulário, nos campos textfield e apenas

reescreva as variáveis.

Page 25: APOSTILA DE LINGUAGEM DE PROGRAMAÇÃO IVinstitutosiegen.com.br/documentos/euhl.1333992012806.pdf · APOSTILA DE LINGUAGEM DE PROGRAMAÇÃO IV CIÊNCIA DA COMPUTAÇÃO PROF. ERWIN

Universidade Guarulhos Página 25

AULA 6

Login

<?php include("conecta.php");

$usu_email = $_POST["usu_email"];

$usu_senha = $_POST["usu_senha"];

$resultado = mysql_query("SELECT * FROM usuarios where

usu_email='$usu_email'");

$linhas = mysql_num_rows ($resultado);

if($linhas==0)

{

echo "<html><head><title>Ops!</title></head><body>";

echo "<p align=\"center\">Cara, você não consegue lembrar nem

seu usuário???</p>";

echo "<p align='center'><a href='login.html'>Tente de novo,

burro!</a></p>";

echo "</body></html>";

}

else

{

if ($usu_senha != mysql_result($resultado, 0, "usu_senha"))

{

echo "<html><head><title>Ops!</title></head><body>";

echo "<p align='center'>Agora é a senha?! Caramba!!!</p>";

echo "<p align=\"center\"><a href=\"login.html\">Vai tente

mais uma vez...</a></p>";

echo "</body></html>";

}

else

{

setcookie("email", $usu_email);

setcookie("senha", $usu_senha);

header ("Location: usuarios.php");

}

}

mysql_close($conexao); ?>

Ranqueamento do menu Em construção...

mysql_query("UPDATE scs_paginas SET pag_clic=pag_clic+1 WHERE

pag_id='$_GET[pag_id]'");

Page 26: APOSTILA DE LINGUAGEM DE PROGRAMAÇÃO IVinstitutosiegen.com.br/documentos/euhl.1333992012806.pdf · APOSTILA DE LINGUAGEM DE PROGRAMAÇÃO IV CIÊNCIA DA COMPUTAÇÃO PROF. ERWIN

Universidade Guarulhos Página 26

AULA 7

Upload de arquivos Para criar um formulário de upload de arquivos, com gravação em BD, primeiro vamos criar um

formulário da seguinte forma:

<form method="post" action="" enctype="multipart/form-data">

<p>Nome<br>

<input type="text" name="usu_nome" id="usu_nome" size="20"

/></p>

<p>e-mail<br>

<input type="text" name="usu_email" id="usu_email" size="20"

/></p>

<p>Senha<br>

<input type="password" name="usu_senha" id="usu_senha"

size="20" /></p>

<p>Foto<br>

<input type="file" name="usu_foto" id="usu_foto" size="20"

/></p>

<input type="submit" name="Gravar" id="Gravar" value="Submit" />

</form>

Note que no form adicionamos a função enctype="multipart/form-data" que serve para

realizar o envio do arquivo.

Agora a parte do PHP. Semelhante ao que já fizemos, para gravar dados simples, mas com o adendo do

arquivo.

<?php

include("conecta.php");

//gatilho de disparo

$gravar = $_POST['Gravar'];

if($gravar == 'Submit'){

//recebe os dados

$usu_nome = $_POST['usu_nome'];

$usu_email = $_POST['usu_email'];

$usu_senha = $_POST['usu_senha'];

//$usu_foto = $_POST['usu_foto']; substituída pela variável $arq

//upload

$dir = "img";

$arq = $_FILES['usu_foto']['name'];

$arq_temp = $_FILES['usu_foto']['tmp_name'];

move_uploaded_file($arq_temp,"$dir/$arq");

//grava no BD

mysql_query("INSERT INTO usuarios (usu_nome, usu_email, usu_senha,

usu_foto) VALUES ('$usu_nome', '$usu_email', '$usu_senha', '$arq')");

}

?>

A diferença ficou por conta da variável $arq que substituiu a variável $usu_foto no comando SQL.

Page 27: APOSTILA DE LINGUAGEM DE PROGRAMAÇÃO IVinstitutosiegen.com.br/documentos/euhl.1333992012806.pdf · APOSTILA DE LINGUAGEM DE PROGRAMAÇÃO IV CIÊNCIA DA COMPUTAÇÃO PROF. ERWIN

Universidade Guarulhos Página 27

AULA 8

Login, logout e proteção de sessão A função do login e do logout são de extrema importância para a segurança dos sites, seus usuários e

dados.

Existem duas maneiras básicas de se “logar” numa página, via cookies e propagação de páginas. Com o

uso de cookies, maneira de iremos estudar, é mais seguro e invisível para o usuário, no entando, o

outro lado da moeda é que o usuário deve ter esta opção ativa no navegador, que por padrão já vem

ativa, isto não gera trabalho ao usuário.

O promeiro passo é ter um BD com uma tabela de usuários e senhas, exemplo:

Agora vamos construir as páginas que irão interagir com o BD.

Página index.php (login.php)

Esta é a página de login. Ela deve ter um formulário com um campo par ao usuário digitar o e-mail e

outro para a senha, veja o html.

<form name="form1" method="post" action="">

<p>e-Mail<br />

<input type="text" name="email" id="email" /></p>

<p>Senha<br />

<input type="password" name="senha" id="senha" /></p>

<input type="submit" name="entrar" id="entrar"

value="Submit" />

</form>

Agora vamos ao PHP

Faça a requisição de conexão com o BD.

<?php require_once("conecta.php");?>

Page 28: APOSTILA DE LINGUAGEM DE PROGRAMAÇÃO IVinstitutosiegen.com.br/documentos/euhl.1333992012806.pdf · APOSTILA DE LINGUAGEM DE PROGRAMAÇÃO IV CIÊNCIA DA COMPUTAÇÃO PROF. ERWIN

Universidade Guarulhos Página 28

Agora vamos criar a sessão. Primeiro precisamos pensar que o usuário deverá digitar o login e senha e

somente APÓS clicar em “ENTRAR” o sistema deverá criar a sessão, para isto, crie a função de disparo

if(isset($_POST['entrar'])){

<?php

//dispara somente depois de clicar em "entrar"

if(isset($_POST['entrar'])){

//recebe os dados do form

$email = $_POST['email'];

$senha = $_POST['senha'];

//realiza a pesquisa do e-mail

$usuario = mysql_query("SELECT * FROM usuarios WHERE

usu_email='$email'");

//retorna o nº de linhas

$registros = mysql_num_rows($usuario);

//se for 0, nehum registro, retorna à página de login

if ($registros == 0){

//retorno à página login com o disparo de erro

"?usu_inex=true"

header("location: index.php?usu_inex=true");

}else{

//senão, se existir o usuário, compara a senha e retorna o

erro

if($senha != mysql_result($usuario, 0, "usu_senha")){

header("location: index.php?senha_errada=true");

}else{

//se tudo estiver certo, cria a sessão, os cookies

session_start();

$_SESSION['usu_email'] = $email;

$_SESSION['usu_senha'] = $senha;

header("location: protegida.php");

}

}

}

?>

Você notou esta estranha função header("location:index.php?usu_inex=true"); ?

Para que serve?

Como ela está condicionada ao if anterior, se não for obedecido irá retornar com uma informação na

URL que será disparada no formulário. O mesmo vale para a header("location:

index.php?senha_errada=true");.

E o formulário então ficará assim:

<form name="form1" method="post" action="">

<p>e-Mail<br />

<input type="text" name="email" id="email" accesskey="e"

tabindex="1"></p>

<!-- a frase de erro gerada pelo PHP (linha 15) -->

<?php if(isset($_GET['usu_inex'])){?>

<font color="red">e-Mail inexistente. Tente outro e-

mail.</font>

<!-- somente aparecerá se digitar algo errado -->

<?php } ?>

<p>Senha<br />

Page 29: APOSTILA DE LINGUAGEM DE PROGRAMAÇÃO IVinstitutosiegen.com.br/documentos/euhl.1333992012806.pdf · APOSTILA DE LINGUAGEM DE PROGRAMAÇÃO IV CIÊNCIA DA COMPUTAÇÃO PROF. ERWIN

Universidade Guarulhos Página 29

<input type="password" name="senha" id="senha" accesskey="s"

tabindex="2"></p>

<?php if(isset($_GET['senha_errada'])){?>

<font color="red">Senha errada. Tente novamente.</font>

<?php } ?><br />

<input type="submit" name="entrar" id="entrar"

value="Submit" accesskey="l" tabindex="3">

</form>

Criamos uma função simples no PHP que se a URL contiver a frase informada na função “estranha”,

aqui o PHP disparará uma frase amigável ao usuário. Veja a URL:

http://localhost/ung/index.php?usu_inex=true

Agora vamos criar a página protegida pelo sistema:

<?php include("conecta.php"); ?>

<?php include("valida_sessao.php"); ?>

<?php include("logout.php"); ?>

<html>

<head>

<title>Protegida</title>

</head>

<body>

<h1>Protegida!</h1>

<form method="post" action="">

<input type="submit" id="logout" name="logout"

value="logout" />

</form>

</body>

</html>

<?php mysql_close($conexao); ?>

Se você for sagaz deve ter notado que existem vários includes, mas programação que é bom, nada!

Vamos cria-las em páginas separadas para poder reaproveitar os códigos em diversos pontos, bastando

colocar estes includes, sabichão...

valida_sessao.php

Veja os comentários

<?php

//inicia a sessão

session_start();

//recebe os dados criados na página login

if(isset($_SESSION['usu_email']))

$usu_email = $_SESSION['usu_email'];

if(isset($_SESSION['usu_senha']))

$usu_senha = $_SESSION['usu_senha'];

//se não forem vazios(empty) realiza a busca no BD

if(!(empty($usu_email) OR empty($usu_senha)))

{

$busca = mysql_query("SELECT * FROM usuarios WHERE

usu_email='$usu_email'");

//se encontrar 1 registro...

if(mysql_num_rows($busca)==1)

{

//...e se esse registro tiver a senha diferente do BD...

if($usu_senha != mysql_result($busca, 0, "usu_senha"))

Page 30: APOSTILA DE LINGUAGEM DE PROGRAMAÇÃO IVinstitutosiegen.com.br/documentos/euhl.1333992012806.pdf · APOSTILA DE LINGUAGEM DE PROGRAMAÇÃO IV CIÊNCIA DA COMPUTAÇÃO PROF. ERWIN

Universidade Guarulhos Página 30

{

//...desfaça a sessão

unset($_SESSION['usu_email']);

unset($_SESSION['usu_senha']);

header("location: index.php");

exit;

}

}

else

{

unset($_SESSION['usu_email']);

unset($_SESSION['usu_senha']);

header("location: index.php");

exit;

}

}

//se o usuário simplesmente copiar e colar o endereço, será

redirecionado

else

{

header("location: index.php");

exit;

}

?>

logout.php

<?php

//logout. Depende do disparo do botão "logout" no <form>

if(isset($_POST['logout']))

{

session_start();

$_SESSION = array();

session_destroy();

header("location: index.php");

}

?>

É claro que os nomes dependem dos formulários criados.

Como eu espero que você fique rico de tantas páginas que for criar, pense no seguinte, não seria

interessante criar um padrão para os nomes para poder reaproveitar sempre os mesmos códigos?

Page 31: APOSTILA DE LINGUAGEM DE PROGRAMAÇÃO IVinstitutosiegen.com.br/documentos/euhl.1333992012806.pdf · APOSTILA DE LINGUAGEM DE PROGRAMAÇÃO IV CIÊNCIA DA COMPUTAÇÃO PROF. ERWIN

Universidade Guarulhos Página 31

Aula 9

XML O eXtensible Markup Language é um arquivo desenvolvido pelo W3C segue os padrões do HTML, no

entanto, as tags básicas do html como <body>, <h1>, <img>, entre outras são substituídas por tags

criadas pelo desenvolvedor, mas claro que não serão interpretadas pelo navegador. A principal função

do XML é a comunicação entre sistemas. Veja o exemplo:

Figura 10 - exemplo de XML

Neste caso, os nomes das tags foram escolhidas para atenderem os metadados do banco de dados,

assim será possível gerar, ler e importar dados de um XML.

Para gerar o XML com o PHP é preciso seguir o mesmo princípio de geração de um txt.

<?php

//atribua o nome e a extensão do arquivo a ser criado

$arquivo = "usuarios.xml";

$cria = fopen($arquivo, "w");

//monte o cabeçalho do XML

$xml = "<?xml version='1.0' encoding='ISO-8859-1'?>";

fwrite($cria, $xml);

fwrite($cria, "<registro> ");

do

{

$usu_id = mysql_result($dados, $registro, "usu_id");

$usu_nome = mysql_result($dados, $registro, "usu_nome");

Page 32: APOSTILA DE LINGUAGEM DE PROGRAMAÇÃO IVinstitutosiegen.com.br/documentos/euhl.1333992012806.pdf · APOSTILA DE LINGUAGEM DE PROGRAMAÇÃO IV CIÊNCIA DA COMPUTAÇÃO PROF. ERWIN

Universidade Guarulhos Página 32

$usu_email = mysql_result($dados, $registro, "usu_email");

$usu_senha = mysql_result($dados, $registro, "usu_senha");

$usu_foto = mysql_result($dados, $registro, "usu_foto");

$tag = "<usuario> ";

$tag.= "<id>$usu_id</id> ";

$tag.= "<nome>$usu_nome</nome> ";

$tag.= "<email>$usu_email</email> ";

$tag.= "<senha>$usu_email</senha> ";

$tag.= "<foto>$usu_email</foto> ";

$tag.= "</usuario> ";

fwrite($cria, $tag);

$registro++;

}

while ($registro < $registros);

fwrite($cria, "</registro>");

fclose($cria);

Leitura do XML

<?php

include("menu.php");

$xml = simplexml_load_file('usuarios.xml'); /* Lê o arquivo XML e

recebe um objeto com as informações */

/* Percorre o objeto e imprime na tela as informações de cada contato

*/

foreach ($xml as $contato){

$a = "Id: " . $contato->id . "<br />";

$a .= "Nome: " . $contato->nome . "<br />";

$a .= "Email: " . $contato->email. "<br />";

$a .= "Senha: " . $contato->senha. "<br />";

$a .= "Foto: " . $contato->foto. "<br />";

echo "$a <hr />";

}

?>

Importar XML para o MySQL

<?php

//gatilho de disparo para a importação

if(isset($_POST['submit'])){

$arq = $_FILES['arquivo']['name'];

$arq_temp = $_FILES['arquivo']['tmp_name'];

//neste caso o arquivo terá nome determinado

move_uploaded_file($arq_temp,"docs/usuarios.xml");

//função de carregamento do XML

$xml = simplexml_load_file('docs/usuarios.xml');

$x = 0;

foreach ($xml as $regs){

mysql_query("INSERT INTO usuarios (usu_id, usu_nome, usu_email,

usu_senha, usu_foto)

VALUES ('$regs->id', '$regs->nome', '$regs->email', '$regs-

>senha', '$regs->foto')");

if(mysql_affected_rows() != -1){

$x++;

}

Estes são os

nomes das tags

criadas no XML

Campos do BD

Page 33: APOSTILA DE LINGUAGEM DE PROGRAMAÇÃO IVinstitutosiegen.com.br/documentos/euhl.1333992012806.pdf · APOSTILA DE LINGUAGEM DE PROGRAMAÇÃO IV CIÊNCIA DA COMPUTAÇÃO PROF. ERWIN

Universidade Guarulhos Página 33

}

echo "$x contatos importados com sucesso!";

}else{

echo "<form method='POST' enctype='multipart/form-data'>

<input type='file' name='arquivo' size='20'>

<input type='submit' name='submit' value='Upload'>

</form>";

}

?>

Page 34: APOSTILA DE LINGUAGEM DE PROGRAMAÇÃO IVinstitutosiegen.com.br/documentos/euhl.1333992012806.pdf · APOSTILA DE LINGUAGEM DE PROGRAMAÇÃO IV CIÊNCIA DA COMPUTAÇÃO PROF. ERWIN

Universidade Guarulhos Página 34

BIBLIOGRAFIA:

BÁSICA: NIEDERAUER, J. Web Interativa com AJAX e PHP. São Paulo: Novatec, 2007.

NIEDERAUER, J. Desenvolvendo Websites com PHP : aprenda a criar Websites dinamicos e interativos

com PHP e bancos de dados. São Paulo: Novatec, 2004.

SILVA, M. S. Construindo sites com CSS e (X)HTML. São Paulo: Novatec, 2008.

COMPLEMENTAR:

SILVA, Camila C. da. Lógica de programação: Aprendendo a programar. Santa Cruz do Rio Pardo:

Editora Viena, 2007.

NIEDERAUER, J. Web interativa com Ajax e PHP. São Paulo, SP : Novatec, 2007

SUPLEMENTAR: Dall'Oglio, P. PHP : programando com orientação a objetivos. São Paulo, SP : Nova-tec, 2007

PERIÓDICOS: Info

PHP Magazine