Sei sulla pagina 1di 35

Desenvolvimento Server Side

Programação para a Internet


Prof. Vilson Heck Junior
Server Side
• Muitas vezes é necessário executar
instruções do lado do servidor:
– Instruções no cliente são mais vulneráveis!
– O servidor pode ter acesso a mais recursos;
– Roda em ambiente controlado:
• != versões de browsers!
Dados de 2012
Algumas Linguagens
• ASP – Active Server Pages;
• CGI – Common Gateway Interface;
• JSP – JavaServer Pages;
• PHP – PHP Hypertext Preprocessor;
• Ruby on Rails;
Server Side

PHP
PHP - Definição
• Linguagem de criação de scripts do lado servidor;
• Criada em 1994 por Rasmus Lerdorf;
• Foi projetada especificamente para a Web;
PHP - Definição
• Dentro de um arquivo “HTML” você pode embutir
código PHP, que será executado sempre que algum
usuário solicitar aquele arquivo;
• A execução deste script é feita pelo software servidor:
– Maioria das vezes por um “Módulo PHP” no Apache;
Combo mais comum da Web
Vantagens do PHP
• Rápido e fácil de programar;
• É muito popular:
– Maior comunidade Web;
• Sintaxe familiar com C/C++/Java;
• Roda na maioria das servidores;
Desvantagens do PHP
• Configurações globais podem afetar a semântica
da linguagem;
• Mudanças constantes:
– Já foi completamente reescrito ao menos 3 vezes!
– Você atualiza para resolver um problema e cai em outro!
– Muitos nomes diferentes para fazer as mesmas coisas!
• Custa mais hardware que linguagens compiladas.
Escrevendo PHP
• Código PHP deve preferencialmente ser
escrito em arquivo .php:
• Formatação HTML;
• Dentro da tag: <?php .... ?>

• PHP é sensível a maiúsculas ou minúsculas!


Variáveis PHP
• Toda variável, antes do seu nome, deve
utilizar um caractere de cifrão;
• Não se definem tipos de dados, PHP é
dinâmico;
– Exemplo para criar e atribuir valor:
• $campus = “Lages”;
• $idade = 20;
– Exemplo para mostrar valor:
• echo $campus;
Exemplo
<!DOCTYPE html>
<html>
<body>
<?php
$campus = "Lages";
echo "Bom dia!<br>";
?>

<?php Ponto é
echo "IFSC " . $campus; utilizado para
?> concatenar!
</body>
</html>
Escopo das Variáveis
• Podem ser:
– Global:
• Criada fora de funções, está disponível a todo código
depois de sua criação;
– Local:
• Criada dentro de uma função, está disponível apenas
enquanto a função estiver executando. É apagada ao
finalizar a função.
– Estática:
• Criada dentro de uma função, está disponível apenas
dentro da função. NÃO é apagada ao finalizar a
função.
Variável Estática e Função
<?php
function myTest()
{
static $x=0;
echo $x . “<br>”;
$x++;
}
myTest();
myTest();
myTest();
?>
echo / print
• echo serve para inserir elementos no HTML
(ainda no servidor) que será enviado ao
cliente para exibição. Existem várias formas
diferentes de usar:
<?php
$campus = "Lages";
echo "IFSC - " . $campus . "<br>";
echo "IFSC - $campus<br>";
echo "IFSC - ", $campus, "<br>";
echo "fim";
?>
Aritmética Básica
<?php
$x = 5;
$y = 2;

$z = $x + $y;
echo "Adição: $z <br>";

$z = $x - $y;
echo "Subtração: $z <br>";

$z = $x * $y;
echo "Multiplicação: $z <br>";

$z = $x / $y;
echo "Divisão: $z <br>";

$z = (int)($x / $y);
echo "Divisão inteira: $z <br>";

$z = $x % $y;
echo "Resto de divisão: $z <br>";
?>
Classes e Objetos
class Carro
{
var $cor;
function Carro($cor = "verde")
{
$this->cor = $cor;
}
function getCor()
{
return $this->cor;
}
}

// Instanciar o objeto
$herbie = new Carro("branco");
$cor = $herbie->getCor();
echo $cor . "<br>";
Operações Lógicas
• Como PHP não é fortemente tipado, as
comparações podem ser em relação aos
valores e também aos tipos de dados!
– Igual ao Javascript:

==
===
!=
!==
If, else.... elseif
<?php
$hora = date("H");
if ($hora < 12) {
echo "Bom dia!";
} elseif ($hora < 19) {
echo "Boa tarde!";
} else {
echo "Boa noite!";
}
?>
switch é igual em Java ou
Javascript
Array
//Cria um objeto Array vazio - Serializable
$cores = new ArrayObject();
//Inserir elemento no Array
$cores->append("Amarelo");
//Mostra o elemento no índice 0 - “Amarelo”
echo $cores[0];
//Número de elementos
echo $cores->count();
• Onde:
– append() - > inserir elemento no fim;
– offsetUnset($indice) - > remove elemento no $indice;
– offsetGet($indice) - > retorna elemento do $indice;
– offsetSet($índice, $valor) - > define $valor no $indice;
• Mais informações no Manual PHP online.
Repetições
• while(), do while() e for() possuem mesma sintaxe
que Java ou Javascript.
– foreach para conjunto de dados:

<?php
$cores = Array("Amarelo", "Azul", "Vermelho", "Verde");
foreach ($cores as $corAtual) { ?>
<h1> <?php echo $corAtual; ?> </h1>
<?php
}
?>
Arrays Associativos
• Um recurso muito utilizado em PHP são os arrays
associativos.
• Neste tipo de array, você pode indexar os dados
não apenas por números, mas também por
strings:

<?php
$idade = Array("Fulano"=>20, "Ciclano"=>18, "Beutrano"=>25);
echo $idade["Fulano"];
echo $idade["Ciclano"];
echo $idade["Beutrano"];
?>
Iterando Arrays Associativos
• Para iterar em arrays associativos, temos
ambos os valores de CHAVE e CONTEÚDO:

<?php
$idade = Array("Fulano"=>20, "Ciclano"=>18, "Beutrano"=>25);
foreach ($idade as $nome=>$nome_idade) {
echo "Nome=" . $nome . ", Idade=" . $nome_idade;
echo "<br>";
}
?>
PHP

BANCO DE DADOS
Criar BD
• PHPmyAdmin:
cad/index.php
<!doctype html>
<html>
<head>

</head>
<body>

</body>
</html>
cad/index.php - <body> (1/4)
<?php
//CRIAR A CONEXÃO COM O SGBD MySQL
try {
$cbd = new PDO("mysql:host=localhost; dbname=alunoX", "alunoX", "aluno");
$cbd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Conectado ao BD!<br>";
} catch (PDOException $e) {
echo "Erro: " . $e->getMessage() . " <br>";
die();
}
?>
Recebendo dados de Formulário

• $_GET[‘nome’]
• $_POST[‘nome’]

• Verificar se um valor foi recebido:


– isset($_GET[‘nome’])
cad/index.php - <body> (2/4)
<?php
//Se recebemos dados por POST para serem inseridos
if (isset($_POST['nome']) && isset($_POST['idade'])) {
//Inserir dados com Prepared Statements
$inserirPS = $cbd->prepare("INSERT INTO pessoa (nome, idade) VALUES (:nome,
:idade);");
$inserirPS->bindParam(':nome', $_POST['nome'], PDO::PARAM_STR);
$inserirPS->bindParam(':idade', $_POST['idade'], PDO::PARAM_INT);
$inserirPS->execute();
}
?>
cad/index.php - <body> (3/4)

<h1>Inserir dados:</h1>
<!--Formulário de entrada de dados-->
<form name="inserir" action="index.php" method="post">
Nome: <input type="text" name="nome">
Idade: <input type="text" name="idade">
<input type="submit" value="Inserir">
</form>
cad/index.php - <body> (4/4)
<!--EXIBIR TUDO QUE HÁ NO BD EM TABLE-->
<h1>Dados cadastrados:</h1>
<table border="1">
<tr> <th>Código</th> <th>Nome</th> <th>Idade</th> </tr>
<?php
$resultado = $cbd->query("SELECT * FROM pessoa;");
while($linha = $resultado->fetch(PDO::FETCH_ASSOC)) { ?>
<tr> <?php
echo "<td>" . $linha['codigo'] . "</td>";
echo "<td>" . $linha['nome'] . "</td>";
echo "<td>" . $linha['idade'] . "</td>";
?> </tr>
<?php } /*fim while*/ ?>
</table>
Programação Server Side

TRABALHO
Trabalho
• Crie uma tabela no MySQL chamada produtos;
– Código (id, PK), Descrição, Valor de Venda e Quantidade.
• Construa um website para gerenciar os produtos
disponibilizados pela empresa. As seguintes opção
devem ser contempladas:
– Cadastrar produto;
– Pesquisar produto por descrição;
– Remover produto;
– Alterar dados de um produto;
– Listar produtos.
• Utilize layouts CSS para organizar suas páginas;
• Utilize javascript para validar os campos.
Controle de Produtos

Menu Listagem de Produtos


Cadastrar
Pesquisar Código Descrição Valor Quantidade Alterar Remover
Listar 1 Mouse R$ 10,00 30
2 Teclado R$ 20,00 20
3 HD 1TB R$ 200,00 10

Aluno: XXXXXXXXXXXXXXX
Instituto Federal de Santa Catarina
Campus Lages
Trabalho TALTALTAL – Ano YYYY

Potrebbero piacerti anche