You are on page 1of 14

UNOPAR VIRTUAL (pgina: 1)

Anlise e Desenvolvimento de Sistemas




Disciplina: Programao Web I
Prof.(a): Veronice de Freitas
Aula: 03 - PHP / MYSQL
Semestre: 3 Sem - Flex e 4 Sem

Aula Atividade

Objetivo da Atividade:

Revisar conceitos abordados na disciplina.

Atividade:
Atividade 01: passagem de parmetro por VALOR ............................................................................ 1
Atividade 02: passagem de parmetro por REFERNCIA ................................................................. 2
Atividade 03: passagem de parmetro por VALOR e por REFERNCIA ......................................... 3
Atividade 04 formulrio (recuperando e inserindo dados) .......................................................... 3
Atividade 05: listagem geral tabela alunos ..................................................................................... 4
Atividade 06: listagem de produtos com preco menor ou igual a 100. ................................................ 6
Atividade 07: UPDATE ....................................................................................................................... 7
Atividade 08: DELETE ........................................................................................................................ 8
Atividade 09: GET e POST ................................................................................................................. 9

Orientao:
Caro aluno

Essa atividade contm alguns exerccios para reviso de contedos (esto com resposta).

Passagem de parmetros por valor e por referncia
http://linkedej.com.br/wp-content/uploads/2012/01/Apostila_curso.pdf (adaptado)

Quando passado um parmetro para uma funo, temos a opo de alterar ou no, a
varivel que foi passada no momento da chamada da funo. Quando o parmetro for
passado por valor, cria-se uma cpia da varivel que foi passada, fazendo com que seu
valor no se altere originalmente.

Atividade 01: passagem de parmetro por VALOR

1) function alteraValor ($valor) {
2) $valor = 250;
3) echo O valor dentro da funo . $valor;
4) }

5) -------------------------- PROGRAMA PRINCIPAL -----------------------
6) $valor = 100; //O valor original 100

7) alteraValor($valor);

Parmetro Real
Parmetro Formal





UNOPAR VIRTUAL (pgina: 2)

Anlise e Desenvolvimento de Sistemas


8) /* O valor depois da chamada da funo no se altera */
9) echo O valor .$valor;


1) Qual o que ser impresso na linha 9 aps a chamada da funo alteraValor($valor);

Resposta:
O valor impresso aps a chamada da funo ser 100 devido a passagem de parmetro
ser por VALOR (a alterao efetuada dentro da funo na linha 2 no alterou o valor
original que foi definido na linha 6 do programa principal.

No exemplo, apesar da funo alterar o valor dentro do seu bloco de cdigo, o valor
original no alterado fora da funo. Por outro lado, em algumas situaes pode-se
tornar necessrio que este valor seja alterado dentro de uma funo. Para isso utiliza-se a
passagem de parmetro por referncia, na qual toda a alterao que a funo realizar no
valor passado como parmetro afetar a varivel de origem (parmetro real).

A passagem por referncia pode ser feita de duas maneiras. Na prpria funo ou apenas
na chamada da funo. Nos dois casos utiliza-se o smbolo &.

Atividade 02: passagem de parmetro por REFERNCIA

1) function alteraValor (&$num1,$num2) {
2) $num1 +=5; // $num1 = $num1 + 5;
3) $num2 +=5; // $num2 = $num2 + 5;
4) }

5) -------------------------- PROGRAMA PRINCIPAL -----------------------
6) $a = 1;
7) $b = 2;
8) alteraValor ($a,$b);
9) echo Valor de a: .$a. Valor de b: . $b;

10) alteraValor ($a,&$b);
11) echo Valor de a: .$a. Valor de b: . $b;

1) Qual o que ser impresso na linha 9 aps a chamada da funo alteraValor ($a,$b);

Valor impresso para $a 6, $b 2


2) Qual o que ser impresso na linha 11 aps a chamada da funo alteraValor ($a,$b);

Valor impresso para $a 6, $b 7


Observao:






UNOPAR VIRTUAL (pgina: 3)

Anlise e Desenvolvimento de Sistemas


Na primeira impresso na tela, teremos somente o valor de $a alterado para 6, pois foi
passado por referncia. J na segunda impresso, temos os dois valores alterados. O
valor de $a na funo j espera uma varivel sendo passada por referncia, e o valor de
$b, foi passado utilizando o modificado &;

Atividade 03: passagem de parmetro por VALOR e por REFERNCIA

1) function alteraValor (&$num1,$num2) {
2) $num1 +=5; // $num1 = $num1 + 5;
3) $num2 +=5; // $num2 = $num2 + 5;
4) }

5) -------------------------- PROGRAMA PRINCIPAL -----------------------
6) $a = 1;
7) $b = 2;
8) alteraValor ($a,$b);
9) echo Valor de a: .$a. Valor de b: . $b;

3) Qual o que ser impresso na linha 9 aps a chamada da funo alteraValor ($a,$b);

Valor impresso para $a 6, $b 2


FORMULRIO MTODO POST / INSERT

Atividade 04 formulrio (recuperando e inserindo dados)

<html>
<body>
<form action="bem_vindo.php" method="post">

Nome:
<input type="text" name="nome" />

Idade:
<input type="text" name="idade" />

<input type="submit" />
</form>
</body>
</html>

1) O exemplo do formulrio anterior ir submeter os dados utilizando o mtodo post.
Informe as instrues para recuperar e imprimir os dados submetidos pelo formulrio?

Etapa 01:
// recuperando dados da matriz $_POST
$nome = $_POST["nome"];
Ao submeter ir
chamar o arquivo
bem_vindo.php





UNOPAR VIRTUAL (pgina: 4)

Anlise e Desenvolvimento de Sistemas


$idade = $_POST["idade"];

// imprimindo dados os dados recuperados
echo $nome;
echo $idade;
Obs: pode ser usado para mensagem de Bem vindo.

<html>
<body>
Bem vindo <?php echo $_POST["nome"]; ?>!<br />
Voce tem <?php echo $_POST["idade"]; ?> anos de idade.
</body>
</html>

2) Faa com que os dados do formulrio seja gravado (INSERT) em uma tabela com
nome alunos no banco de dados bdDados.

Etapa 02:
//Conexo com o banco de dados
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
die('No foi possvel conectar: ' . mysql_error());
}

//Selecionando o banco de dados
mysql_select_db("bdDados") or die (mysql_error());

//Instruo SQL
$sql = "INSERT INTO alunos (nome, idade) VALUES ('$nome', $idade)";

//Executando a instruo SQL
mysql_query($sql) or die (mysql_error());

//Fechando a conexo
mysql_close($link);

3) Defina mtodo post.

Segue uma definio:
http://www.comocriarsites.com/html/como-funciona-os-metodos-get-e-post-diferencas/

Obs: veja tambm o mtodo GET

Atividade 05: listagem geral tabela alunos

Considere a tabela abaixo:

Tabela : alunos





UNOPAR VIRTUAL (pgina: 5)

Anlise e Desenvolvimento de Sistemas


Codigo Nome Formacao Telefone
1 Maria Aparecida Graduao 33234455
2 Jos da Silva Mestrado 33235555
3 Rida Rocha Graduao 33245556
4 Linda Maria Mestrado 55884411

1) Crie um programa que apresente todos os dados da tabela alunos classificados por
Nome (use a funo mysql_fetch_array)

Segue um exemplo de cdigo:

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
die('No foi possvel conectar: ' . mysql_error());
}

mysql_select_db("bdDados");

$result = mysql_query("SELECT id, name FROM mytable");

while ($row = mysql_fetch_array($result)) {
printf("ID: %s Name: %s", $row[0], $row[1]);
}

mysql_free_result($result);
?>

Crie seu cdigo:
















Resposta:
<?php
Poder usar o
echo para
impresso.





UNOPAR VIRTUAL (pgina: 6)

Anlise e Desenvolvimento de Sistemas


$link = mysql_connect('localhost', root, '');
if (!$link) {
die('No foi possvel conectar: ' . mysql_error());
}

mysql_select_db("bdDados");

$result = mysql_query("SELECT * FROM alunos ORDER BY Nome");

while ($row = mysql_fetch_array($result)) {
printf("ID: %s Name: %s", $row[0], $row[1]);
}

mysql_free_result($result);

mysql_close($link);
?>

Atividade 06: listagem de produtos com preco menor ou igual a 100.

Complete o cdigo abaixo para apresentar todos os dados da tabela de produtos preco
maior ou igual a 100.

<?php

$con = mysql_connect('localhost', 'banco', 'abc123') or die('No foi possvel conectar');

mysql_select_db("my_db", $con)

$result = mysql_query('select CODIGO, DESCRICAO, QTDE, PRECO FROM produtos WHERE
preco >= 100');

// -------- crie o bloco contendo a estrutura de repetio para apresentar todos os dados da tabela
produto -------






mysql_free_result($result);
mysql_close($con);
mysql_close($con);
?>

Reposta:

while($row = mysql_fetch_array($result)){
echo $row['CODIGO']. "<br />";
echo $row['DESCRICAO'] "<br />";





UNOPAR VIRTUAL (pgina: 7)

Anlise e Desenvolvimento de Sistemas


echo $row['QTDE'] "<br />";
echo $row['PRECO'] "<br />";
}

Atividade 07: UPDATE

1) Inclua as linhas de cdigo para atualizar (ALTERAR) a cidade do cliente com o codigo
= 1 para Londrina.

Obs: use uma varivel para armazenar a instruo SQL e depois o SQL usando a funo
mysql_query.

<?php
$codigo = $_POST[CODIGO];

// conexo e seleo do banco de dados
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
die('No foi possvel conectar: ' . mysql_error());
}

mysql_select_db("bdDado");

// ----------------- alterao ---------------








// ----------------- fechar a conexo ---------------
mysql_close($con);
?>

Reposta: UPDATE
<?php
$codigo = $_POST[CODIGO];

// conexo e seleo do banco de dados
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
die('No foi possvel conectar: ' . mysql_error());
}
echo 'Conexo bem sucedida';

mysql_select_db("bdDados");

// ----------------- alterao ---------------
Considere que o valor
$_POST[CODIGO] foi
submetido pelo formulrio
Considere que o valor
$_POST[CODIGO] foi
submetido pelo formulrio





UNOPAR VIRTUAL (pgina: 8)

Anlise e Desenvolvimento de Sistemas



$sql = "UPDATE Clientes SET Cidade=Londrina WHERE codigo=$codigo"

mysql_query($sql);

// ----------------- fechar a conexo ---------------
mysql_close($con);
?>


Atividade 08: DELETE

2) Inclua as linhas de cdigo para EXCLUIR o cliente com cdigo = 1.

Obs: use uma varivel para armazenar a instruo SQL e depois o SQL usando a funo
mysql_query.

<?php
$codigo = $_POST[CODIGO];

// conexo e seleo do banco de dados
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
die('No foi possvel conectar: ' . mysql_error());
}

mysql_select_db("bdDados");

// ----------------- EXCLUIR ---------------






// ----------------- fechar a conexo ---------------
mysql_close($con);
?>

Reposta: DELETE
<?php
$codigo = $_POST[CODIGO];

// conexo e seleo do banco de dados
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
die('No foi possvel conectar: ' . mysql_error());
}

mysql_select_db("bdDado");
No foi tratado se existe relacionamento
com outras tabelas.
Obs: no exemplo DELETE teleaula 03
foi exemplificado a excluso de categoria
com relacionamento na tabela de produtos.
Considere que o valor
$_POST[CODIGO] foi
submetido pelo formulrio
Considere que o valor
$_POST[CODIGO] foi
submetido pelo formulrio





UNOPAR VIRTUAL (pgina: 9)

Anlise e Desenvolvimento de Sistemas



// ----------------- alterao ---------------
$sql = "DELETE FROM Clientes WHERE codigo=$codigo"

mysql_query($sql);

// ----------------- fechar a conexo ---------------
mysql_close($con);
?>




Atividade 09: GET e POST

Artigo 01:

Questo 01: fale sobre o mtodo GET e POST utilizado para compartilhamento de
informaes entre pginas.

Resposta:
O mtodo GET funciona da seguinte maneira - seus argumentos so passados em forma de
string pela URI (Uniform Resource Indicator) tambm conhecido por muitos como URL.

O GET sempre acompanha a URI logo o que vocs constumam ver nos links assim deste
jeito, http://www.mtodoget.br/usandoget.php?ID=10, so os argumentos GET, que neste
caso sempre o primeiro argumento precedido de uma interrogao "?" e os demais de um
& para separ-los. O argumento em questo o ID e seu valor 10.

O POST mais utilizado para tratamento de formulrios. Usa-se de forma muito semelhante
ao GET em formulrios. Se eu digitar algo na caixa de texto do input e apertar o boto
"enviar" a URI continuar da mesma forma pois o POST no trabalha com a URI. Os
argumentos podem ser recuperados pelo PHP atravs das seguintes variveis
$_POST['nome_do_argumento'].

Questo 02: cite as vantagens de utilizar o mtodo POST no envio de formulrio?

O POST mais seguro que o GET porque as informaes passadas pelos usurios no so
visveis na URI. (devemos tomar cuidado com as informaes nos dois casos, porque
existem ferramenta que capturam as informaes tanto do GET quanto do POST que
trafegam na rede).

ARTIGO 01: Compartilhando informaes
entre pginas com GET e POST
Fonte: http://www.htmlstaff.org/ver.php?id=15850
Por que preciso do PHP para fazer isso? Como se sabe o HTTP (protocolo) propriamente
dito no armazena informaes de estado, por isso se faz necessrio o uso do PHP.
$totalRows = mysql_num_rows(mysql_query("SELECT
Produtos.categoria FROM produtos WHERE
Produtos.categoria = $codigo"));

if ($totalRows == 0){
//excluir
}





UNOPAR VIRTUAL (pgina: 10)

Anlise e Desenvolvimento de Sistemas


Vamos citar alguns casos onde podemos compartilhar informaes: No uso de session,
usando mtodos GET e POST, cookies e outras.
O mtodo GET funciona da seguinte maneira - seus argumentos so passados em forma
de string pela URI (Uniform Resource Indicator) tambm conhecido por muitos como URL.
O endereo URL tem limitao (geralente com comprimento mximo de 255 caracteres).
O qual limita um pouco o uso do GET! [Nota do editor] Na verdade a maioria dos browsers
no tem mais esse limite de 255 caracters numa URL [Nota do editor]. (ateno: rever
essas limitaes).
Como usar um mtodo GET
O GET sempre acompanha a URI logo o que costumamos observar nos links
dessa forma:http://phpbrasil.com/artigo/TK55UcdkZF73/1/compartilhando-
informacoes-entre-paginas-com-get-e-post. Como exemplificado na URL, os
argumentos do GET, o primeiro argumento precedido de uma interrogao
"?" e os demais de um & para separ-los. O argumento em questo o ID e
seu valor 10.
Outro exemplo: http://www.mtodoget.br/usandoget.php?ID=10&CH=Texto. Argumentos:
ID e CH com valores 10 e Texto respectivamente.
Podemos utilizar o mtodo GET nos links ou em formulrios lembrando sempre da
limitao e que estes dados sero visivis pelos usurios pois ele sempre fica junto a URI.
Em links use:
http://www.metodoget.br/pagina.php?argumento=valor">meu link get</a>

Em formulrios use:
<form action="http://www.metodoget.br/pagina.php" method="GET">
<input name="argumento" type="text" value="valor">
<input name="enviar" type="submit" value="enviar">
</form>

Ao executar os casos acima sero anexados ao URI as seguintes instrues
respectivamente:
http://www.metodoget.br/pagina.php?argumento=valor
http://www.metodoget.br/pagina.php?argumento=valor&enviar=enviar

Os argumentos GET podem ser recuperados pelo PHP atravs da seguinte varivel:
<?php
echo $_GET['nome_do_argumento'];
?>





UNOPAR VIRTUAL (pgina: 11)

Anlise e Desenvolvimento de Sistemas


A seguir ser abordado o mtodo POST.
Como usar o POST:
O POST mais utilizado para tratamento de formulrios. Usa-se de forma muito
semelhante ao GET em formulrios, por exemplo:
<form action="http://www.metodoget.br/pagina.php" method="POST">
<input name="argumento" type="text" value="valor">
<input name="enviar" type="submit" value="enviar">
</form>

Repare que agora o atributo "method" do formulrio igual a "POST". Se eu digitar algo
na caixa de texto do input e clicar no boto "enviar" a URI continuar da mesma forma
pois o POST no trabalha com a URI. Certo, mais onde foram parar os dados?
Os argumentos podem ser recuperados pelo PHP atravs das seguintes variveis:
<?php
echo $_POST['nome_do_argumento'];
echo $_POST['nome_do_argumento'];
?>

A dica mais importante: Nunca utilize o metodo GET para formulrios de login, ou para
quaisquer dados sigilosos, pois os mesmos sero visveis pela URL.
Exemplos completos (arquivo: pagina.php):
Usando POST:
<html>
<body>
<?php
if (isset($_POST['enviar'])) {
$texto = $_POST['argumento'];
// ser impresso o que for digitado no campo
echo($texto);
} else {
?>
<form action="http://www.metodoget.br/pagina.php" method="POST">
<input name="argumento" type="text">
<input name="enviar" type="submit" value="enviar">
</form>
<?php
}
?>
</body>
</html>

Usando GET:





UNOPAR VIRTUAL (pgina: 12)

Anlise e Desenvolvimento de Sistemas


<html>
<body>
<?php
if (isset($_GET['enviar'])) {
$texto = $_GET['argumento'];
// ser impresso o que for digitado no campo
echo($texto);
} else {
?>
<form action="http://www.metodoget.br/pagina.php" method="GET">
<input name="argumento" type="text">
<input name="enviar" type="submit" value="enviar">
</form>
<?php
}
?>
</body>
</html>

Ou:
<html>
<body>
<?php
if (isset($_GET['argumento'])) {
$texto = $_GET['argumento'];
// ser impresso quando o link for clicado
echo("Este mais um ".$texto." do que o GET capaz");
} else {
?>
http://www.metodoget.br/pagina.php?argumento=exemplo">Meu Link</a>
<?php
}
?>
</body>
</html>

Entendendo a diferena entre os Mtodos GET e POST no PHP
http://www.diegomacedo.com.br/entendendo-a-diferenca-entre-os-metodos-get-e-post-no-
php/

de extrema importncia saber bem a diferena desses dois mtodos, para
que se possa utiliz-los de forma correta e na hora certa. De certa forma, os
dois fazem o envio de dados atravs do HTTP.

GET

Este mtodo utilizado quando queremos passar poucas/pequenas
informaes para realizar uma pesquisa ou simplesmente passar uma
informao para outra pgina atravs da URL (barra de endereos). O que no





UNOPAR VIRTUAL (pgina: 13)

Anlise e Desenvolvimento de Sistemas


pode acontecer as suas requisies resultarem em mudanas no contedo da
resposta. A funo do mtodo GET pura e simplesmente recuperar um
recurso existente no servidor. O resultado de uma requisio GET
cachevel pelo cliente, ou seja, fica no histrico do navegador.

Exemplo do GET http://www.umsite.com.br/?cat=3&pag=2&tipo=5

Para que voc possa entender melhor este exemplo, voc s precisa olhar para
as informaes que vem logo aps a interrogao ?, pois o smbolo que
indica o incio dos dados passados atravs da URL, ou seja, pelo mtodo GET.
Se voc prestar ateno, notar que sempre vem um ndice e um valor logo
aps o sinal de igualdade (Ex.: cat=3) e quando queremos incluir mais de uma
informao, acrescentamos o smbolo & para concatenar o restante (Ex.:
cat=3&pag=2&tipo=5).

Este mtodo bem restrito quanto ao tamanho e quantidade das informaes
que so passadas pela URL. Voc poder enviar no mximo 1024 caracteres, o
que limita bastante suas possibilidades com esse mtodo. Caso voc passe
desse limite, voc corre o risco de obter um erro da sua pgina, j que as
informaes foram passadas de forma incompleta.

Como voc j percebeu, as informaes enviadas ficam visveis ao visitante, o
que uma brecha na segurana, pois um visitante malicioso pode colocar
algum cdigo de SQL Injection e fazer um belo estrago com o seu site, ou at
mesmo o servidor. Ento, quando queremos passar parmetros confidenciais,
como exemplo as senhas, no devemos utilizar esse mtodo. Para isso temos
o POST.

POST

Este mtodo mais seguro e tem uma capacidade de dados melhor que o GET.
Nesse mtodo uma conexo paralela aberta e os dados so passados por ela.
No h restrio referente ao tamanho e os dados no so visveis ao usurio.

Este mtodo feito atravs de formulrios (Tag), onde passamos informaes
para outra pgina que ir receb-las e fazer o que o desenvolvedor quiser,
como tratamento dos dados, armazenamento no banco de dados, etc.

Por passar dados invisveis ao usurio, ela se torna mais segura e devemos
utilizar este mtodo quando criamos sistemas de acesso restrito com sesses
(login/senha).

Para enviarmos algumas informaes de um formulrio para outra pgina,
devemos incluir no atributo method o valor POST e no atributo action o
nome do arquivo que ir receber as informaes.





UNOPAR VIRTUAL (pgina: 14)

Anlise e Desenvolvimento de Sistemas



Exemplo do POST:

<form name="formContato" method="POST" action="enviar_email.php">
<p>
Nome: <input type="text" name="nome" /><br />
E-mail: <input type="text" name="email" /><br />
Mensagem:<br />
<textarea name="mensagem" id="mensagem" cols="45" rows="5"></textarea>
</p>

<p>
<input type="submit" name="button" id="button" value="Enviar Mensagem" />
</p>
</form>

Posts Relacionados:

Enviado dados para o PHP atravs de formulrio
http://www.diegomacedo.com.br/enviado-dados-para-o-php-atraves-de-formulario/

Cadastros de dados no MySQL
http://www.diegomacedo.com.br/cadastro-de-dados-no-mysq/

Validao de dados no PHP
http://www.diegomacedo.com.br/validacao-de-dados-no-php/


Outros exemplos:

Exemplos - HTML
http://www.w3schools.com/html/html_examples.asp
Exemplos - CSS
http://www.w3schools.com/css/css_examples.asp


Sugesto de leitura:

Como funcionam as aplicaes web
http://www.devmedia.com.br/como-funcionam-as-aplicacoes-web/25888
Infra-estrutura Web:
http://www.futurepages.org/wiki/lib/exe/fetch.php?media=quickstart:teoria_web.pdf
CSS
http://maujor.com/tutorial/cssmenu.php

Observaes:
Caro Aluno,
Pea para o tutor de sala enviar suas dvidas pelo Chat Atividade para que o professor
possa esclarec-las.

Tenham um timo trabalho!
Prof .Veronice de Freitas

You might also like