SlideShare uma empresa Scribd logo
1 de 102
• Vantagens
– Fácil aprendizagem
– Acesso a dados
– Velocidade e robustez
– Multi-plataforma
– Código-fonte aberto
Tem a desvantagem de ter muitas versões e por
vezes encontrar a função para a versão certa é
complexo.
• Curiosidades
– No inicio significava Personal Home Pages, mais
tarde evoluiu para PHP Hypertext Processor
– Linguagem bastante popular
– Utilizada por Facebook, Flickr, Wikipedia, Digg e
mais de 20 milhões de sites
– Mantida pela Zend
– Criada em meados de 1994 por Rasmus Lerdorf
– Currente versão – 5.4.10
• Instalação:
– WAMP Server (http://www.wampserver.com/en/)
• Apache 2.2.22
• Mysql 5.5.24
• PHP 5.3.13 XDebug 2.1.2 XDC 1.5
• PhpMyadmin 3.4.10.1
• SQLBuddy 1.3.3
• webGrind 1.0
Por vezes na pagina de download, é referido que também é
necessário instalar o Visual C++ 2010 SP1.
• Sintaxe
– Fortemente influenciada pela linguagem c
– Um ficheiro php tem que ter a extensão .php
– Todas as linhas(exceto as que têm else ou if) acabam
com ;
– Tem normalmente tags html e algum codigo scripting
– O script PHP começa sempre por <?php e acaba sempre
com ?>. Pode ser colocado em qualquer parte do
documento e mais que uma vez.
– Para melhor compatibilidade recomenda-se sempre a
utilização de <?php ao inves da forma mais simplificada
<?.
• Hello World program
<html>
<body>
<?php
echo "Hello World";
?>
</body>
</html>
• Comentários
<html>
<body>
<?php
//This is a comment
/*
This is
a comment
block
*/
?>
</body>
</html>
• Tipos de Variaveis
– O PHP não tem comando para declarar uma variavel.
– Uma variavel é criada no momento em que se atribui
um valor:
– Exemplo :
• $myCar="Volvo";
• $x = 10;
• Não é necessário definir o tipo da variável!
• O PHP é uma linguagem fracamente tipificada ou
dinamicamente tipada, ou seja durante a execução do
programa, pode alterar o tipo de dados contidos numa
variável.
• Quando se cria variaveis, temos que respeitar 4 regras:
– Os nomes de variáveis têm que começar pela letra do alfabeto ou por
_(underscore).
– Os seus nomes podem apenas conter os caracteres: a-z, A-Z, 0-9, e _
(underscore).
– Não podem conter espaços no seu nome. Se por acaso um nome tiver
mais que uma palavra, recomenda-se que essa palavara seja separada
por um _ (underscore) (e.g., $user_name).
– São case-sensitive. Por exemplo uma variável nomeada como
$High_Score é diferente de outra nomeada $high_score.
• Contudo existem 2 tipos de strings que são
suportadas pelo php.
• $info = 'Preface variables with a $ like this: $variable';
• echo "There have been $count presidents of the US";
Façam o codigo e vejam o que dá!
• Utilização de variáveis, exemplos:
– $count = 17
– $count = 17.5
– $team = array('Bill', 'Joe', 'Mike', 'Chris', 'Jim')
– $username = "Fred Smith"
– $current_user = $username
– $username = 1
• Scope das Variáveis:
– Os tipos de scope pode ser:
• Local
• Global
• Static
• Parameter
• Local Scope
– Uma variavel declarada dentro de uma função é assim local e apenas pode ser acedida dentro de
essa função
<?php
$temp = "The date is ";
echo longdate(time());
function longdate($timestamp)
{
return $temp . date("l F jS Y", $timestamp);
}
?>
• Pode-se ter variaveis locais com o mesmo nome em funções diferentes, porque elas, sendo variáveis
locais apenas podemn ser reconhecidas na função onde são declaradas
• Variáveis locais são apagadas assim que função é executada
• Scope Global refere-se a qualquer variável que é definida fora de qualquer
função.
• Variáveis globais podem ser acedidas de qualquer parte do script que não esteja
dentro da função.
• Para se aceder a uma variavel global dentro de uma função utiliza-se a instrução
global:
<?php
function test() {
$foo = "local variable";
echo '$foo in global scope: ' . $GLOBALS["foo"] . "n";
echo '$foo in current scope: ' . $foo . "n";
}
$foo = "Example content";
test();
?>
• Static Scope
– Quando uma função é executada,normalmente, todas as
suas variáveis são apagadas, contudo, por vezes é possivel
que a gente queira que uma variável local não seja
apagada.
• Para se poder fazer isso, utiliza-se a
instrução static primeiramente quando se declara a variável:
• Exemplo:
– static $rememberMe;
• Exercicio para Global e Local Scope:
<?php
$a = 5;
function test()
{
$a = 3;
echo $a;
echo $GLOBALS["a"];
$a = $a + 1;
echo $a;
echo $GLOBALS["a"];
}
test();
echo($a);
?>
• Exemplo de static scope:
<?php
function foo(){
static $int = 0; // correct
static $int = 1+2; // wrong (as it is an expression)
static $int = sqrt(121); // wrong (as it is an expression too)
$int++;
echo $int;
}
foo();
?>
• Parameter
– Um parameter é uma variável local cujo valor é passado para uma
através do seu código de chamar função.
– Parameters são declaradas numa lista de parâmetros como parte da
declaração da própria função:
function myTest($para1,$para2,...)
{
// function code
}
• Parameters também pode ser chamados de arguments. Isso será
melhor explicado mais à frente quando se abordarem as funções.
• Super Globais
– São variáveis já predefinidas do PHP
– Sendo assim fornecidas pelo proprio ambiente do PHP e
podem ser acedidas de absolutamente de qualquer
localização do programa, sendo assim globais tambem
– Todas elas têm no seu nome um unico underscore no inicio
e no resto letra grande
– Neste caso temos que ter o mesmo cuidado na nomeação
das nossas variaveis para evitar confusão
– Cuidado especial na sua segurança, devido ao seu grande
potencial scope
• As super variaveis globais são:
– $_SERVER – informação como por exemplo headers, caminhos e localizações de scripts. As entradas
de este arrary são criadas poelo servidor de web, por isso não há garantia que todos os servidores
providenciem essa informação
– $_GET - variaveis enviadas pelo currente script via Metodo HTTP GET
– $_POST - variaveis enviadas pelo currente script via Metodo HTTP POST
– $_FILES – items que vão no upload do current e script via the HTTP POST method.
– $_COOKIE – variavaies enviadas pelo currente script via HTTP cookies.
– $_SESSION – variáveis de sessão que são disponiblizadas no current script.
– $_REQUEST – conteúdo da informação enviado do browser :pr defeito , $_GET, $_POST e $_COOKIE.
– $_ENV - variáveis enviasas do currente script via o metodo de ambiente web
• Os seguintes exemplos dão o mesmo output?
<?php
$temp = "The date is ";
echo longdate(time());
function longdate($timestamp)
{
return $temp . date("l F jS Y", $timestamp);
}
?>
<?php
$temp = "The date is ";
echo longdate(time());
function lonGDate($timestamp)
{
return $temp . date("l F jS Y", $timestamp);
}
?>
• Operadores:
• Aritméticos
• Atribuição
• String
• Comparação
• Lógicos
• Condição
• Operadores aritméticos
– São usados para efetuar operações matemáticas. Podemos usá-los para as 4 operações principais (
subtração, adição, divisão multiplicação) assim como e muito util para descobrir o resto de uma divisão
e tambem incrementar ou decrementar o valor de uma variável.
Tabela de operadores aritméticos
Operador Descrição Exemplo
+ Adição $j + 1
- subtração $j - 6
* multiplicação $j * 11
/ divisão $j / 4
% resto de divisão $j % 9
++ incrementar ++$j
-- decrementar --$j
Alguém sabe a utilidade do resto de uma divisão, em que situações é bastante útil?
• Resposta sobre uma das utilidades do operador % (resto de
uma divisão inteira)
<?php
for($n=0;$n<10;$n++)
{
if($n % 2 ==0)
{
echo "<hr color='red' size='10'/>";
}
else
{
echo "<hr color='green' size='10'/>";
}
}
?>
• Operadores de atribuição
– Estes operadores são utilizados para atribuir valores às variáveis.
Começam com um simples simples “=“ e depois com “+=“, -=, e por ai
fora, como exemplificado em baixo.
Operador Exemplo Equivalente a
= $j = 15 $j = 15
+= $j += 5 $j = $j + 5
-= $j -= 3 $j = $j - 3
*= $j *= 8 $j = $j * 8
/= $j /= 16 $j = $j / 16
.= $j .= $k $j = $j . $k
%= $j %= 4 $j = $j % 4
• Operadores de Comparação
– São normalmente usados dentro de um construtor como por exemplo “if” ou
tambem “while”, em que existe necessidade de comparar 2 itens, ou se uma
variaável chegou a um certo valor na incrementação, ou se o valor é inferior,
etc.
Operador Descrição Exemplo
== é igual a $j == 4
!= é diferente de $j != 21
> é maior que $j > 3
< é menor que $j < 100
>= é maior ou igual que $j >= 15
<= é menor ou igual que $j <= 8
• Operadores lógicos
– Tem um pouco a ver com própria lingua. Por exemplo, se a hora for mais tarde
que 12 horas e mais cedo que 2 da tarde, então vamos almoçar! Segue a
lógica do proprio raciocinio.
Operador Descrição Exemplo
&& And $j == 3 && $k == 2
and Low-precedence and $j == 3 and $k == 2
|| Or $j < 5 || $j > 10
or Low-precedence or $j < 5 or $j > 10
! Not ! ($j == $k)
xor Exclusive or $j xor $k
• Atribuição de variáveis
– $x += 10;
– $y -= 10;
• Incrementação e decrementação de variáveis
– ++$x;
– --$y;
• Com if
– if (++$x == 10) echo $x;
– if ($y-- == 0) echo $y;
• Com while
– while(++$x < 10)
– While (--$y>5)
• Operadores de strings
– Concatenação
• echo "You have " . $msgs . " messages.";
• $bulletin .= $newsflash; // exemplo tambem valido!
• Curiosidade: Porque o “.” serve como concatenador.
– Resposta: echo 1 . 2;
» Na realidade este echo produz não um numero real no ecran, mas sim
uma string
– A utilização de outro operador, como por exemplo “+” :
» echo "a string" + "another string"; // produz “a string another string”
» echo 1 + 2; // aqui já produziria o valor 3, em vez de 12.
– Exercicio, diga que valor produz cada output
<php
$var = 3;
echo "Result: " . $var + 3;
?>
<php
$var = 3;
echo "Result: " . ($var + 3);
?>
• Mais sobre a concatenação de strings
$text = "This is a Headline
This is the first line.
This is the second.
Written by $author."; // concatenar texto com mais que uma linha
$text = 'My sister's car is a Ford'; // Errado
$text = 'My sister's car is a Ford'; // forma de fazer escape dos caracteres
$text = “This is the first line. <br>This is the second”. // com line feed
$text = “This is the first line.n This is the second”. // com line feed
As ultimas 2 linhas são equivalentes?
• Operadores de Condição
– if
<?php
If(condicao verdadeira) Executa a;
If(condicao verdadeira)
{
Executa b;
}
else
{
Executa c;
}
?>
• Continuação de mais exemplos de if
<?php
if(!condicao falsa) Executa a;
if(!condicao falsa)
{
Executa b;
}
else
{
Executa c;
}
?>
• if Program Flow
• Exemplos de ifs encadeados
<?php
if ($a > $b)
{
echo "a is bigger than b";
}
elseif ($a == $b)
{
echo "a is equal to b";
}
else
{
echo "a is smaller than b";
}
?>
• else Program Flow
• Elseif Program Flow
• Operador de condição “switch”
<?php
switch (variavel):
case valor1: echo expressao; break;
// etc...
default: açao por defeito ; break; //caso não se verifique nenhuma condição, garantimos
assim a execução de esta instrução
endswitch;
?>
Este tipo de operador substitui um outro, quando se torna muito
complexo a verificação de todas as variaveis.
• Exemplo de “switch”
<?php
if ($page == "Home") echo "You selected Home";
elseif ($page == "About") echo "You selected About";
elseif ($page == "News") echo "You selected News";
elseif ($page == "Login") echo "You selected Login";
elseif ($page == "Links") echo "You selected Links";
else echo “You selected Blank”;
switch ($page)
{
case "Home": echo "You selected Home"; break;
case "About": echo "You selected About"; break;
case "News": echo "You selected News“; break;
case "Login": echo "You selected Login"; break;
case "Links": echo "You selected Links"; break;
default : echo “You selecetd Blank”;
}
?>
• Operador de condição “?”
– Tambem conhecido por operador ternário, o que não deixa
de ser pouco comum, ao inves de utilizar 2 operadores,
mas por vezes acontece.
<?php
echo $fuel <= 1 ? "Fill tank now" : "There's enough fuel";
?>
<?php
instrucao ? Verdadeiro : Falso;
?>
• Ciclos (Looping) – while
while (condicao)
{
// Keep driving ...
echo "There's enough fuel";
}
<?php
$count = 1;
while ($count <= 12)
{
echo "$count times 12 is " . $count * 12 . "<br />";
++$count;
}
?>
• while Program Flow
• Looping – do while
<?php
$count = 1;
do
echo "$count times 12 is " . $count * 12 . "<br />";
while (++$count <= 12);
?>
• Nota: Este ciclo é sempre efetuado 1x.
• Looping – for
for (inicio ; criterio de paragem; incrementação/decrementação)
{
instrução
}
<?php
for ($count = 1 ; $count <= 12 ; ++$count)
{
echo “$count times 12 is “ . $count * 12 . “<br />”;
}
?>
• Instruçoes importantes num ciclo!
– break
for ($j = 0 ; $j < 100 ; ++$j)
{
if($i== 20) break;
}
– continue
while ($j > −10)
{
$j--;
if ($j == 0) continue;
echo (10 / $j) . "<br />";
}
• Exercicio para ciclo for
– Fazer um ciclo com inicio em 1 e que acabe em 20 e que
cada linha de altura 10px par faça de cor vermelha e cada
impar verde. A cada 5 incrementações faça uma linha
amarela e com altura 20px.
• Exercicio livre:
– Elabore um programa faça um ciclo de 1 a 10 pelo
menos 1x até um limite que é sorteado um
numero entre os mesmos valores.
• Exercicio for:
<?php
for($n=1;$n<=20;$n++)
{
$height= 10;
if($n % 5 == 0)
{
$height= 20;
$cor = "yellow";
}
elseif($n % 2 == 0)
{
$cor ="red";
}
else
{
$cor ="green";
}
echo "<hr color='$cor' size='$height'/>";
}
?>
• Exercicio …
<?php
$number = rand(0,10);
$i=0;
do
{
$i++;
echo "<br/>$i";
}
while($i!=$number);
echo "<hr/>O numero sorteado foi $number";
?>
• Arrays
– Trata-se de uma variável especial, que pode guardar
valores multiplos em apenas uma variavel.
$cars1="Saab";
$cars2="Volvo";
$cars3="BMW";
Pode ficar
$cars=array("Saab","Volvo","BMW”);
Assignar por indice
$cars[0]="Saab";
$cars[1]="Volvo";
$cars[2]="BMW";
• Looping – foreach
– É muito usado para looping de arrays
– Sintaxe:
foreach ($array as $value)
{
code to be executed;
}
<?php
$cars=array("Saab","Volvo","BMW”);
foreach ($cars as $car)
{
echo $car . "<br>";
}
?>
• Mais tipos de Arrays:
– Associativos
$paper['copier'] = "Copier & Multipurpose";
$paper['inkjet'] = "Inkjet Printer";
$paper['laser'] = "Laser Printer";
$paper['photo'] = "Photographic Paper";
echo $paper['laser'];
– MultiDimensionais
$data = array( array( "Mike", "3" => 1, "4" => 0, "5" => 0),
array( "Steve", "3" => 0, "4" => 0, "5" => 0),
array("John", "3" => 0, "4" => 0, "5" => 0), );
• Funções
– Servem para separar melhor o código e para serem reutilizadas.
Principal objetivo é devolver sempre um valor.
• Exemplo
function functionName()
{
código a executar;
}
function longdate($timestamp)
{
return date("l F jS Y", $timestamp);
}
• Tipos de funções
• Array functions
• Calendar functions
• Date functions
• Directory functions
• Error functions
• Filesystem functions
• Filter functions
• FTP functions
• HTTP functions
• LibXML functions
• Mail functions
• Math functions
• Misc functions
• MySQL functions
• SimpleXML functions
• String functions
• XML Parser functions
• Zip functions
• Funções de strings
<?php
echo strrev(" .dlrow olleH"); // Reverse string
echo str_repeat("Hip ", 2); // Repeat string
echo strtoupper("hooray!"); // String to uppercase
$str = 'abcdef';
$sub = substr($str, 3, 5);
echo '<br>'.$sub; // returns "def"
echo str_shuffle(“isto é uma misturada”); //shuffles the string
echo trim(“ isto retira espaços “); //removes blank spaces in the end and in the
beginning
?>
• Funções de strings
<?php
echo strpos("Hello world!","wo"); //return position of first occurence
echo ‘<br>’.strlen("Hello world!"); // count the string length
echo "<br>".similar_text("Hello World","Hello Peter"); // returns the number of
matching characters of two strings.
echo "<br>".similar_text("Hello World","Hello Peter",$percent); // It can also
calculate the similarity of the two strings in percent.
echo $percent;
?>
… e muitas mais
• Funções de Calculo
<?php
echo(abs(6.7) . "<br />");
echo(abs(-3) . "<br />");
echo(abs(3)). "<br />");
echo(floor(5.1) . "<br />");
echo(floor(-5.1).”<br/>”);
echo(exp(5) . "<br />");
echo(exp(10) . "<br />");
echo pow(4,2) . "<br />";
echo pow(6,2) . "<br />“;
?>
• Funções do Tempo
<?php
$t=time();
echo($t . "<br />");
echo(date("D F d Y",$t));
echo(“<br/>”.microtime());
$my_t=getdate(date("U"));
echo("<br/>$my_t[weekday], $my_t[month] $my_t[mday],
$my_t[year]");
?>
• Funções de Arrays
<?php
$a=array("a"=>"Dog","b"=>"Cat","c"=>"Horse");
print_r(array_reverse($a));
echo "<hr/>";
$my_array = array("Dog","Cat","Horse");
list($a, , $c) = $my_array;
echo "Here I only use the $a and $c variables.";
echo "<hr/>";
$my_array = array("a" => "Dog", "b" => "Cat", "c" => "Horse");
sort($my_array);
print_r($my_array);
?>
• Funções Várias
<?php
echo $_SERVER['HTTP_USER_AGENT'] . "<br /><br />";
$browser = get_browser(null,true);
print_r($browser);
//sleep for 10 seconds
sleep(10);
//start again
echo date('h:i:s');
$str = "Hello";
$number = 123;
printf("%s world. Day number %u",$str,$number);
php_info();
?>
• Funções de E-Mail
<?php
$to = "someone@example.com";
$subject = "Test mail";
$message = "Hello! This is a simple email message.";
$from = "someonelse@example.com";
$headers = "From:" . $from;
mail($to,$subject,$message,$headers);
echo "Mail Sent.";
?>
• Funções de Include
-ficheiro vars.php
<?php
$color='red';
$car='BMW';
?>
-ficheiro teste.html
<html>
<body>
<h1>Welcome to my home page.</h1>
<?php include 'vars.php';
echo "I have a $color $car"; // I have a red BMW
?>
</body>
</html>
• Exercicio.
– Faça um programa que sorteie um numero de 1 a
100 e mostre todos os numeros primos existentes
nesse intervalo.
• Formularios
– São feitos em HTML
– Servem para passar informação ao servidor
– Métodos utilizados no Forms:
• GET
• POST
– Existem mais métodos de passar informação mas para
funcionarem têm que ser simulados de outra forma como por
exemplo atraves de uma REST Console. Métodos adicionais:
» PUT (usa-se para efetuar o UPDATE)
» DELETE (usa-se para efetuar o DELETE – pouco
recomendado, normalmente é bloqueado pelo IIS,
APACHE
• Objetos de um form (HTML Form Tags)
Tag Description
<form> Defines an HTML form for user input
<input> Defines an input control
<textarea> Defines a multiline input control (text area)
<label> Defines a label for an <input> element
<fieldset> Groups related elements in a form
<legend> Defines a caption for a <fieldset> element
<select> Defines a drop-down list
<optgroup> Defines a group of related options in a drop-dowdownlist
<option> Defines an option in a drop-down list
<button> Defines a clickable button
<datalist>New Specifies a list of pre-defined options for input controls
<keygen>New Defines a key-pair generator field (for forms)
<output>New Defines the result of a calculation
• NEW : HTML5
• Formulario exemplo
<form action=“getform.php” method=“POST”>
First name: <input type="text" name="firstname"><br>
Last name: <input type="text" name="lastname">
<br><input type=“submit”>
</form>
• Aceder aos valores dos objetos de um formulario:
– Ler variaveis do metodo “POST”
<?php
echo($_POST["firstname"]." ".$_POST["lastname“]);
?>
– Ler variaveis do metodo “GET”:
<?php
echo($_GET["firstname"]." ".$_GET["lastname“]);
?>
• Objetos de um Formulario
– input (pode ainda ter o tipo file, button, image e password)
<input type=“text” name=“”/>
– textarea
<textarea name=“x” rows=”x” cols=“x”></textarea>
- button
<button type="button">Click Me!</button>
- label
< label id="butao">Label</label>
- select, optiongroup e options
- <select>
<optgroup label="Swedish Cars">
<option value="volvo">Volvo</option> <option value="saab">Saab</option>
</optgroup>
<optgroup label="German Cars">
<option value="mercedes">Mercedes</option> <option value="audi">Audi</option>
</optgroup>
</select>
• Tipos do input
– Input Button object
– Input Checkbox object
– Input FileUpload object
– Input Hidden object
– Input Password object
– Input Radio object
– Input Reset object
– Input Submit object
– Input Text object
– Input Image object
• Como se implementam esses inputs
<input type=“button” value=“Prima”/>
<input type=“checkbox” value=“valor”/>
<input type=“file” name=“filename”/>
<input type=“hidden” name=“Id” valor=“120” />
<input type=“password” name=“password” />
<input type=“radio” value=“Male” />
<input type=“reset” value=“Apagar” />
<input type=“submit” value=“Enviar” />
<input type=“text” name=“Login” />
<input type=“image” src=“path_of_image” />
• Exercicio:
– Elabore um formulario que resgiste nome, apelido,
morada, sexo, pais(10 à escolha a partir de um array) e
linguas que domina (com ingles, frances, espanhol e
alemão para escollher).
– Escolha para o efeito os campos adequados.
– Elaborar uma pagina para post dos campos preenchidos.
• Upload de Ficheiros
<html>
<body>
<form action="upload_file.php" method="post"
enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file"><br>
<input type="submit" name="submit" value="Submit">
</form>
</body>
</html>
• Upload (continuação)
<?php
if ($_FILES["file"]["error"] > 0)
{
echo "Error: " . $_FILES["file"]["error"] . "<br>";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br>";
echo "Type: " . $_FILES["file"]["type"] . "<br>";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
echo "Stored in: " . $_FILES["file"]["tmp_name"]
?>
• $_FILES["file"]["name"] - the name of the uploaded file
• $_FILES["file"]["type"] - the type of the uploaded file
• $_FILES["file"]["size"] - the size in kilobytes of the uploaded file
• $_FILES["file"]["tmp_name"] - the name of the temporary copy of the file stored on the server
• $_FILES["file"]["error"] - the error code resulting from the file upload
• Upload (exemplo completo)
<?php
$allowedExts = array("jpg", "jpeg", "gif", "png");
$extension = end(explode(".", $_FILES["file"]["name"]));
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/png")
|| ($_FILES["file"]["type"] == "image/pjpeg"))
&& ($_FILES["file"]["size"] < 20000)
&& in_array($extension, $allowedExts))
{
if ($_FILES["file"]["error"] > 0)
{
echo "Return Code: " . $_FILES["file"]["error"] . "<br>";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br>";
echo "Type: " . $_FILES["file"]["type"] . "<br>";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br>";
• if (file_exists("upload/" . $_FILES["file"]["name"]))
{
echo $_FILES["file"]["name"] . " already exists. ";
}
else
{
move_uploaded_file($_FILES["file"]["tmp_name"],
"upload/" . $_FILES["file"]["name"]);
echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
}
}
}
else
{
echo "Invalid file";
}
?>
• Deve-se sempre restringir o upload ao tipo de ficheiro (extensões ) e tambéo quanto ao tamanho.
• Cookies
– setcookie(name, value, expire, path, domain);
• Tem que ser feito antes da tag <html>
<?php
$expire=time()+60*60*24*30;
setcookie("user", "Alex Porter", $expire);
?>
<?php
// Print a cookie
echo $_COOKIE["user"];
// A way to view all cookies
print_r($_COOKIE);
?>
• Não esquecer que para se utilizar esta tecnologia, estamos dependentes que o
browser os suporte!
• Cookies – exemplo
<html>
<body>
<?php
if (isset($_COOKIE["user"]))
echo "Welcome " . $_COOKIE["user"] . "!<br>";
else
echo "Welcome guest!<br>";
?>
</body>
</html>
• Apagar um cookie
<?php
// set the expiration date to one hour ago
setcookie("user", "", time()-3600);
?>
• Sessions
– Alternativa aos cookies
<?php
session_start();
// store session data
$_SESSION['views']=1;
?>
<html>
<body>
<?php
//retrieve session data
echo "Pageviews=". $_SESSION['views'];
?>
</body>
</html>
• Sessions
< ?php
session_start();
if(isset($_SESSION['views']))
$_SESSION['views']=$_SESSION['views']+1;
else
$_SESSION['views']=1;
echo "Views=". $_SESSION['views'];
?>
– Destruindo uma sessão
<?php
session_start();
if(isset($_SESSION['views']))
unset($_SESSION['views']);
?>
- Destuindo todas
<?php
session_destroy();
• E-Mail
mail(to,subject,message,headers,parameters)
Parameter Description
To Required. Specifies the receiver / receivers of the email
Subject Required. Specifies the subject of the email.
Note: This parameter cannot contain any newline characters
Message Required. Defines the message to be sent. Each line should be separated with a
LF (n). Lines should not exceed 70 characters
Headers Optional. Specifies additional headers, like From, Cc, and Bcc. The additional
headers should be separated with a CRLF (rn)
Parameters Optional. Specifies an additional parameter to the sendmail program
Exercicio: Fazer um formulario para envio de mail.
• HTML – Hypertext Markup Language
– Linguagem por defeito das paginas de internet, que por sua vez é interpetada por
browsers. Nasceu do padrão HyTime com SGML.
– Vamos ver exemplos mais com a versão 4.01 e alguns 5.0
–
Exemplo de uma pagina simples
< !DOCTYPE html>
<html>
<body>
<h1>My First Heading</h1>
<p>My first paragraph.</p>
</body>
</html>
• HTML
– Headings
<h1>This is a heading</h1>
<h2>This is a heading</h2>
– Paragraphs
<p>This is a paragraph.</p>
<p>This is another paragraph.</p>
– Links
<a href="http://www.w3schools.com">This is a link</a>
– Images
<img src="w3schools.jpg" width="104" height="142">
– Formatting Tags
• Usa as tags <b>, <i>, <u>,<sub> e <sup>
<b>bold</b>
<i>italico</i>
<u>underline</u>
<sup>2</sup><sub>2</sub>
• HTML - <head> Element
– pode ter as tags:
<title>, <style>, <meta>, <link>, <script>, <noscript>, e <base>.
– Titles
<head>
<title>My first HTML page</title>
</head>
<head>
<style type="text/css">
body {background-color:yellow}
p {color:blue}
</style>
</head>
<head>
<link rel="stylesheet" type="text/css" href="mystyle.css">
</head>
• HTML-Tables
Exemplo
<table border="1” cellspacing=“0” cellpadding=“0”>
<tr>
<th>Header 1</th>
<th>Header 2</th>
</tr>
<tr>
<td>row 1, cell 1</td>
<td>row 1, cell 2</td>
</tr>
<tr>
<td>row 2, cell 1</td>
<td>row 2, cell 2</td>
</tr>
</table>
• HTML – Lists
– Unordered Lists
<ul>
<li>Coffee</li>
<li>Milk</li>
</ul>
– Ordered Lists
<ol>
<li>Coffee</li>
<li>Milk</li>
</ol>
– Definition Lists
<dl>
<dt>Coffee</dt>
<dd>- black hot drink</dd>
<dt>Milk</dt>
<dd>- white cold drink</dd>
</dl>
• HTML - Grouping tags
– DIV
<div style=“background-color:salmon;width:300px;height:200px;”></div>
– PRE
<pre>Este texto não altera
a formatação</pre>
– SPAN
<span style=“color:red”>Isto é uma span
a
Formatação
não se altera</span>
– IFRAME
<iframe src=“http://www.sporting.pt “ width=“800” height=“400” frameborder=“0”></iframe>
• HTML – Multimedia Tags
– Youtube
<iframe width="420" height="345“ src="http://www.youtube.com/embed/XGSy3_Czz8k">
</iframe>
– Video
<video width="320" height="240" controls>
<source src="movie.mp4" type="video/mp4">
<source src="movie.ogg" type="video/ogg">
Your browser does not support the video tag.
</video>
- Audio
<audio controls>
<source src="horse.ogg" type="audio/ogg">
<source src="horse.mp3" type="audio/mpeg">
Your browser does not support the audio tag.
</audio>
• HTML – Colors
– http://www.w3schools.com/tags/ref_colornames.asp
– Tem cerca de 16 milhões de cores. Sendo a sua obtenção através de Red, Green,e Blue
valores de 0 a 25 (256 x 256 x 256).
• Exemplos de sua utilização:
<span style=“color: red”>Não gosto de esta cor</span>
<div style=“background-color: #FF0099”> que cor é esta?</span>
<font color=“cyan”>Olha a cor</font>
<body style=“background-color: salmon”>cor de fundo</span>
<table bordercolor=“brown”…>
• Todos os objetos do HTML têm algum atributo com cor.Ex: color, background-color,
bordercolor, etc.
• JavaScript
– JavaScript é uma linguagem de script baseada em ECMAScript padronizada pela Ecma
international nas especificações ECMA-262[2] e ISO/IEC 16262 e é atualmente a
principal linguagem para programação client-side em navegadores web.
– Foi concebida para ser uma linguagem script com orientação a objetos baseada em
protótipos, tipagem fraca e dinâmica e funções de primeira classe. Possui suporte à
programação funcional e apresenta recursos como fechamentos e funções de alta
ordem comumente indisponíveis em linguagens populares como Java e C++.
• Mais linguagens de script
-VBScript, Ruby, Python, Tcl, ActionScript
<script>
document.write("Hello World!")
</script>
<noscript>Sorry, your browser does not support JavaScript!</noscript>
• JavaScript
– Eventos
<button type="button" onclick=“alert('clicked')">Click Me!</button>
• Tipos de eventos
– http://www.w3schools.com/tags/ref_eventattributes.asp
– Existem eventos para window, forms, keyboard, mouse e media
– Manipulando HTML
<script>document.write("<p>This is a paragraph</p>");</script>
– Manipulando estilos
<span id=“demo”>teste</span>
<script>document.getElementById("demo").style.color="#ff0000";</script>
• SQL
– Significa Structured Query Language
• é a linguagem de pesquisa declarativa padrão
para banco de dados relacional (base de dados
relacional). Muitas das características originais do SQL
foram inspiradas na álgebra relacional.
• Existem 4 operações fundamentais no SQL, que
tambem são conhecidas por CRUD (Create, Read,
Update e Delete)
– Insert, criar registo numa tabela
– Select, obter registo(s( de uma tabela
– Update, atualizar um registo numa tabela
– Delete, apagar um registo de uma tabela
• SQL
– O sql é comum a todas as bases de dados,
simplesmente cada tipo de repositório tem o seu
tipo de dialecto.
• Exemplos:
– SQL Server – T-SQL
– Oracle – PL/SQL
– MySQL – MySQL transactional
– As diferenças nos comandos do SQL são mais sentidas não a
nivel das operações CRUD, mas no que se refere mais com
funções, procedures, triggers e outras funcionalidades. Certos
tipos de dados, tambem não são comuns entre alguns
• SQL
– Comando Select
• Select campo1,campo2,… from nome_Tabela
ou
• Select * from nome_tabela
– Comando Insert
• Insert into nome_Tabela(campo1,campo2) values
(valor1, valor2,…)
ou
• Insert into nome_Tabela value (valor1,valor2,…)
• SQL
– Comando Update
• Update nome_tabela set campo1 =valor1,
campo2=valor2… where chave = valor_chave *
– Comando Delete
• Delete from nome_Tabela where chave = valor_chave *
• *: recomendado uso do query recorrendo ao campo
chave da tabela, para garantir que é afetado o registo
pretendido
• Nestes comandos esquecer o uso do comando where, é
a morte do artista!
• PHPMyAdmin
– é um Aplicativo Web desenvolvido em PHP para administração
do MySQL pela Internet.
– A partir deste sistema é possível criar e remover bases de
dados, criar, remover e alterar tabelas, inserir, remover e editar
campos, executar códigos SQL e manipular campos chaves.
– É muito utilizado por programadores web que muitas vezes
necessitam manipular bases de dados. Normalmente, o
phpMyAdmin é tratado como uma ferramenta obrigatória em
quase todas as hospedagens da web, além de pacotes off-line,
como o WAMPServer, XAMPP, EasyPHP e PHP Triad.
• SQL – Imagem do PHPMyAdmin
• SQL - O repositório MySQL
• MySQL
– Portabilidade (suporta praticamente qualquer plataforma atual);
– Compatibilidade (existem drivers ODBC, JDBC e .NET e módulos de interface para
diversas linguagens de programação, como Delphi, Java, C/C++, C#, Visual
Basic, Python, Perl, PHP,ASP e Ruby)
– Excelente desempenho e estabilidade;
– Pouco exigente quanto a recursos de hardware;
– Facilidade de uso;
– É um Software Livre com base na GPL (entretanto, se o programa que acessar o Mysql
não for GPL, uma licença comercial deverá ser adquirida)[6];
– Contempla a utilização de vários Storage Engines como MyISAM, InnoDB, Falcon, BDB,
Archive, Federated, CSV, Solid…
– Suporta controle transacional;
– Suporta Triggers , Cursors (Non-Scrollable e Non-Updatable), Stored Procedures e
Functions;
– Replicação facilmente configurável;
– Interfaces gráficas (MySQL Toolkit) de fácil utilização cedidos pela MySQL Inc.
• SQL – PHP
– Connect to Database
<?php
$host = "localhost";
$username = "root";
$password = "";
$db = "test";
$con = mysql_connect($host,$username,$password);
if (!$con) die("Unable to connect to MySQL: " . mysql_error());
mysql_select_db($db)
or die("Unable to select database: " . mysql_error());
?>
• SQL – SELECT com PHP
<?php
include_once "connect.php";
$query="select * from banda";
$result = mysql_query($query);
if (!$result) die ("Database access failed: " . mysql_error());
$rows = mysql_num_rows($result);
for ($j = 0 ; $j < $rows ; ++$j)
{
echo 'Id: ' . mysql_result($result,$j,'Id') . '<br />';
echo 'Nome: ' . mysql_result($result,$j,'Nome') . '<br />';
}
?>
• SQL – INSERT com PHP
<?php
include_once "connect.php";
$sql = "INSERT INTO Banda (Nome) VALUES (‘nome da banda')";
mysql_query($sql);
mysql_close($con);
?>
• SQL – UPDATE com PHP
<?php
include_once "connect.php";
$update = "UPDATE BANDA SET NOME='METALLICA' WHERE ID = 3";
mysql_query($update);
mysql_close($con);
?>
• SQL – DELETE com PHP
<?php
include_once "connect.php";
$delete = "DELETE FROM BANDA WHERE ID = 4";
mysql_query($delete);
mysql_close($con);
?>
Outra forma é com TRUNCATE TABLE BANDA;
Mais rapido que o anterior, fazendo ainda o drop e o recreate, tem a
vantagem acrescida de o autoincremente ser feito reset, ao contrario do
DELETE.
• Sites importantes sobre PHP:
– http://php.net/
– http://www.mysql.com/
– http://www.w3schools.com/
– http://www.wampserver.com/en/
– http://www.apache.org/

Mais conteúdo relacionado

Mais procurados

Mais procurados (20)

Php 02 Primeiros Passos
Php 02 Primeiros PassosPhp 02 Primeiros Passos
Php 02 Primeiros Passos
 
Linguagem PHP
Linguagem PHPLinguagem PHP
Linguagem PHP
 
PHP 7
PHP 7PHP 7
PHP 7
 
M5 php rc
M5 php rcM5 php rc
M5 php rc
 
PHP Experience 2016 - [Palestra] Keynote: PHP-7
PHP Experience 2016 - [Palestra] Keynote: PHP-7PHP Experience 2016 - [Palestra] Keynote: PHP-7
PHP Experience 2016 - [Palestra] Keynote: PHP-7
 
PHP MySQL Aula 07
PHP MySQL Aula 07PHP MySQL Aula 07
PHP MySQL Aula 07
 
Doctrine2 Seminário PHP
Doctrine2 Seminário PHPDoctrine2 Seminário PHP
Doctrine2 Seminário PHP
 
LabMM4 (T13 - 12/13) - Funções
LabMM4 (T13 - 12/13) - FunçõesLabMM4 (T13 - 12/13) - Funções
LabMM4 (T13 - 12/13) - Funções
 
PHP Jedi - Boas Práticas e Alta Performance
PHP Jedi - Boas Práticas e Alta PerformancePHP Jedi - Boas Práticas e Alta Performance
PHP Jedi - Boas Práticas e Alta Performance
 
PHP - Arrays
PHP - ArraysPHP - Arrays
PHP - Arrays
 
Aula 5 PHP - Criação de sites II
Aula 5 PHP - Criação de sites IIAula 5 PHP - Criação de sites II
Aula 5 PHP - Criação de sites II
 
Php 05 Mvc
Php 05 MvcPhp 05 Mvc
Php 05 Mvc
 
Curso de Introdução - PHP
Curso de Introdução - PHPCurso de Introdução - PHP
Curso de Introdução - PHP
 
Arrays PHP - Criação de sites II
Arrays PHP - Criação de sites IIArrays PHP - Criação de sites II
Arrays PHP - Criação de sites II
 
Introdução ao PHP - Criação de sites II
Introdução ao PHP - Criação de sites IIIntrodução ao PHP - Criação de sites II
Introdução ao PHP - Criação de sites II
 
Curso PHP UNIFACS 2014.1 – 2ª aula
Curso PHP UNIFACS 2014.1 – 2ª aulaCurso PHP UNIFACS 2014.1 – 2ª aula
Curso PHP UNIFACS 2014.1 – 2ª aula
 
Rest Beer v2
Rest Beer v2Rest Beer v2
Rest Beer v2
 
Python 08
Python 08Python 08
Python 08
 
Revisao php
Revisao phpRevisao php
Revisao php
 
Curso PHP: Básico JavaScript
Curso PHP: Básico JavaScriptCurso PHP: Básico JavaScript
Curso PHP: Básico JavaScript
 

Destaque

Briefing comercial2
Briefing comercial2Briefing comercial2
Briefing comercial2Denis Katko
 
telecomunicações
telecomunicaçõestelecomunicações
telecomunicaçõesIone Neto
 
Protocolos gigabit ethernet
Protocolos gigabit ethernetProtocolos gigabit ethernet
Protocolos gigabit ethernetredesinforma
 
Apresentação Agile Tour Salvador 2015
Apresentação Agile Tour Salvador 2015Apresentação Agile Tour Salvador 2015
Apresentação Agile Tour Salvador 2015Camille Nogueira
 
Lista de presbíteros 58ª EBO IEADPE Recife e Setores
Lista de presbíteros 58ª EBO IEADPE Recife e SetoresLista de presbíteros 58ª EBO IEADPE Recife e Setores
Lista de presbíteros 58ª EBO IEADPE Recife e SetoresTK A-BD
 
Introdução ao desenvolvimento com PHP
Introdução ao desenvolvimento com PHPIntrodução ao desenvolvimento com PHP
Introdução ao desenvolvimento com PHPLeonardo Soares
 
Simão Faria e João Machado
Simão Faria e João MachadoSimão Faria e João Machado
Simão Faria e João Machadosimaocfaria
 

Destaque (15)

Briefing comercial2
Briefing comercial2Briefing comercial2
Briefing comercial2
 
Variáveis
VariáveisVariáveis
Variáveis
 
2010 2 psico 06
2010 2 psico 062010 2 psico 06
2010 2 psico 06
 
Hígado
HígadoHígado
Hígado
 
telecomunicações
telecomunicaçõestelecomunicações
telecomunicações
 
Php
PhpPhp
Php
 
Acústica urbana
Acústica urbanaAcústica urbana
Acústica urbana
 
Protocolos gigabit ethernet
Protocolos gigabit ethernetProtocolos gigabit ethernet
Protocolos gigabit ethernet
 
Apresentação Agile Tour Salvador 2015
Apresentação Agile Tour Salvador 2015Apresentação Agile Tour Salvador 2015
Apresentação Agile Tour Salvador 2015
 
Lista de presbíteros 58ª EBO IEADPE Recife e Setores
Lista de presbíteros 58ª EBO IEADPE Recife e SetoresLista de presbíteros 58ª EBO IEADPE Recife e Setores
Lista de presbíteros 58ª EBO IEADPE Recife e Setores
 
2010 2 psico 13
2010 2 psico 132010 2 psico 13
2010 2 psico 13
 
Introdução ao desenvolvimento com PHP
Introdução ao desenvolvimento com PHPIntrodução ao desenvolvimento com PHP
Introdução ao desenvolvimento com PHP
 
PHP: operadores e variáveis (TGPSI)
PHP: operadores e variáveis (TGPSI)PHP: operadores e variáveis (TGPSI)
PHP: operadores e variáveis (TGPSI)
 
Cap6 smds
Cap6 smdsCap6 smds
Cap6 smds
 
Simão Faria e João Machado
Simão Faria e João MachadoSimão Faria e João Machado
Simão Faria e João Machado
 

Semelhante a PHP: Uma introdução abrangente à linguagem

PHP: Linguagem + Mysql + MVC + AJAX
PHP: Linguagem + Mysql + MVC + AJAX PHP: Linguagem + Mysql + MVC + AJAX
PHP: Linguagem + Mysql + MVC + AJAX Sérgio Souza Costa
 
SIMCIT 2013 - Mini-curso PHP
SIMCIT 2013 - Mini-curso PHPSIMCIT 2013 - Mini-curso PHP
SIMCIT 2013 - Mini-curso PHPJonata Weber
 
5 Maneiras de melhorar seu código PHP
5 Maneiras de melhorar seu código PHP5 Maneiras de melhorar seu código PHP
5 Maneiras de melhorar seu código PHPAugusto das Neves
 
Entre na fila. Processamento distribuído usando Gearman
Entre na fila. Processamento distribuído usando GearmanEntre na fila. Processamento distribuído usando Gearman
Entre na fila. Processamento distribuído usando GearmanElton Minetto
 
Curso Desenvolvimento WEB com PHP - PHP (parte 1)
Curso Desenvolvimento WEB com PHP - PHP (parte 1)Curso Desenvolvimento WEB com PHP - PHP (parte 1)
Curso Desenvolvimento WEB com PHP - PHP (parte 1)Willian Magalhães
 
Introdução ao php
Introdução ao phpIntrodução ao php
Introdução ao phpTiago Davi
 
Minicurso PHP básico
Minicurso PHP básicoMinicurso PHP básico
Minicurso PHP básicoCezar Souza
 
Prog web 02-php-primeiros-passos
Prog web 02-php-primeiros-passosProg web 02-php-primeiros-passos
Prog web 02-php-primeiros-passosRegis Magalhães
 
Código legado - PHP Conference Brasil - 2014
Código legado - PHP Conference Brasil - 2014Código legado - PHP Conference Brasil - 2014
Código legado - PHP Conference Brasil - 2014Michael Castillo Granados
 
Golang para desenvolvedores pragmáticos parte 2
Golang para desenvolvedores pragmáticos  parte 2Golang para desenvolvedores pragmáticos  parte 2
Golang para desenvolvedores pragmáticos parte 2Wilson Júnior
 
Perl Moderno, dia5
Perl Moderno, dia5Perl Moderno, dia5
Perl Moderno, dia5garux
 
Curso JavaScript - Aula de Introdução como Programar
Curso JavaScript - Aula de Introdução como ProgramarCurso JavaScript - Aula de Introdução como Programar
Curso JavaScript - Aula de Introdução como ProgramarTiago Antônio da Silva
 

Semelhante a PHP: Uma introdução abrangente à linguagem (20)

Tema 2 | Linguagem PHP Básico (I)
Tema 2 | Linguagem PHP Básico (I)Tema 2 | Linguagem PHP Básico (I)
Tema 2 | Linguagem PHP Básico (I)
 
PHP: Linguagem + Mysql + MVC + AJAX
PHP: Linguagem + Mysql + MVC + AJAX PHP: Linguagem + Mysql + MVC + AJAX
PHP: Linguagem + Mysql + MVC + AJAX
 
SIMCIT 2013 - Mini-curso PHP
SIMCIT 2013 - Mini-curso PHPSIMCIT 2013 - Mini-curso PHP
SIMCIT 2013 - Mini-curso PHP
 
5 Maneiras de melhorar seu código PHP
5 Maneiras de melhorar seu código PHP5 Maneiras de melhorar seu código PHP
5 Maneiras de melhorar seu código PHP
 
Dev Ext PHP
Dev Ext PHPDev Ext PHP
Dev Ext PHP
 
PHP 5.3 - Funções
PHP 5.3 - FunçõesPHP 5.3 - Funções
PHP 5.3 - Funções
 
Entre na fila. Processamento distribuído usando Gearman
Entre na fila. Processamento distribuído usando GearmanEntre na fila. Processamento distribuído usando Gearman
Entre na fila. Processamento distribuído usando Gearman
 
Curso Desenvolvimento WEB com PHP - PHP (parte 1)
Curso Desenvolvimento WEB com PHP - PHP (parte 1)Curso Desenvolvimento WEB com PHP - PHP (parte 1)
Curso Desenvolvimento WEB com PHP - PHP (parte 1)
 
Mini Curso de PHP
Mini Curso de PHPMini Curso de PHP
Mini Curso de PHP
 
Introdução ao php
Introdução ao phpIntrodução ao php
Introdução ao php
 
Minicurso PHP básico
Minicurso PHP básicoMinicurso PHP básico
Minicurso PHP básico
 
Prog web 02-php-primeiros-passos
Prog web 02-php-primeiros-passosProg web 02-php-primeiros-passos
Prog web 02-php-primeiros-passos
 
Migrando para o PHP 5
Migrando para o PHP 5Migrando para o PHP 5
Migrando para o PHP 5
 
Ganhando tempo com casos de testes
Ganhando tempo com casos de testesGanhando tempo com casos de testes
Ganhando tempo com casos de testes
 
Código legado - PHP Conference Brasil - 2014
Código legado - PHP Conference Brasil - 2014Código legado - PHP Conference Brasil - 2014
Código legado - PHP Conference Brasil - 2014
 
Golang para desenvolvedores pragmáticos parte 2
Golang para desenvolvedores pragmáticos  parte 2Golang para desenvolvedores pragmáticos  parte 2
Golang para desenvolvedores pragmáticos parte 2
 
Aula3
Aula3Aula3
Aula3
 
Perl Moderno, dia5
Perl Moderno, dia5Perl Moderno, dia5
Perl Moderno, dia5
 
Curso JavaScript - Aula de Introdução como Programar
Curso JavaScript - Aula de Introdução como ProgramarCurso JavaScript - Aula de Introdução como Programar
Curso JavaScript - Aula de Introdução como Programar
 
Introdução a php
Introdução a phpIntrodução a php
Introdução a php
 

PHP: Uma introdução abrangente à linguagem

  • 1.
  • 2. • Vantagens – Fácil aprendizagem – Acesso a dados – Velocidade e robustez – Multi-plataforma – Código-fonte aberto Tem a desvantagem de ter muitas versões e por vezes encontrar a função para a versão certa é complexo.
  • 3. • Curiosidades – No inicio significava Personal Home Pages, mais tarde evoluiu para PHP Hypertext Processor – Linguagem bastante popular – Utilizada por Facebook, Flickr, Wikipedia, Digg e mais de 20 milhões de sites – Mantida pela Zend – Criada em meados de 1994 por Rasmus Lerdorf – Currente versão – 5.4.10
  • 4. • Instalação: – WAMP Server (http://www.wampserver.com/en/) • Apache 2.2.22 • Mysql 5.5.24 • PHP 5.3.13 XDebug 2.1.2 XDC 1.5 • PhpMyadmin 3.4.10.1 • SQLBuddy 1.3.3 • webGrind 1.0 Por vezes na pagina de download, é referido que também é necessário instalar o Visual C++ 2010 SP1.
  • 5. • Sintaxe – Fortemente influenciada pela linguagem c – Um ficheiro php tem que ter a extensão .php – Todas as linhas(exceto as que têm else ou if) acabam com ; – Tem normalmente tags html e algum codigo scripting – O script PHP começa sempre por <?php e acaba sempre com ?>. Pode ser colocado em qualquer parte do documento e mais que uma vez. – Para melhor compatibilidade recomenda-se sempre a utilização de <?php ao inves da forma mais simplificada <?.
  • 6. • Hello World program <html> <body> <?php echo "Hello World"; ?> </body> </html>
  • 7. • Comentários <html> <body> <?php //This is a comment /* This is a comment block */ ?> </body> </html>
  • 8. • Tipos de Variaveis – O PHP não tem comando para declarar uma variavel. – Uma variavel é criada no momento em que se atribui um valor: – Exemplo : • $myCar="Volvo"; • $x = 10; • Não é necessário definir o tipo da variável! • O PHP é uma linguagem fracamente tipificada ou dinamicamente tipada, ou seja durante a execução do programa, pode alterar o tipo de dados contidos numa variável.
  • 9. • Quando se cria variaveis, temos que respeitar 4 regras: – Os nomes de variáveis têm que começar pela letra do alfabeto ou por _(underscore). – Os seus nomes podem apenas conter os caracteres: a-z, A-Z, 0-9, e _ (underscore). – Não podem conter espaços no seu nome. Se por acaso um nome tiver mais que uma palavra, recomenda-se que essa palavara seja separada por um _ (underscore) (e.g., $user_name). – São case-sensitive. Por exemplo uma variável nomeada como $High_Score é diferente de outra nomeada $high_score.
  • 10. • Contudo existem 2 tipos de strings que são suportadas pelo php. • $info = 'Preface variables with a $ like this: $variable'; • echo "There have been $count presidents of the US"; Façam o codigo e vejam o que dá!
  • 11. • Utilização de variáveis, exemplos: – $count = 17 – $count = 17.5 – $team = array('Bill', 'Joe', 'Mike', 'Chris', 'Jim') – $username = "Fred Smith" – $current_user = $username – $username = 1
  • 12. • Scope das Variáveis: – Os tipos de scope pode ser: • Local • Global • Static • Parameter
  • 13. • Local Scope – Uma variavel declarada dentro de uma função é assim local e apenas pode ser acedida dentro de essa função <?php $temp = "The date is "; echo longdate(time()); function longdate($timestamp) { return $temp . date("l F jS Y", $timestamp); } ?> • Pode-se ter variaveis locais com o mesmo nome em funções diferentes, porque elas, sendo variáveis locais apenas podemn ser reconhecidas na função onde são declaradas • Variáveis locais são apagadas assim que função é executada
  • 14. • Scope Global refere-se a qualquer variável que é definida fora de qualquer função. • Variáveis globais podem ser acedidas de qualquer parte do script que não esteja dentro da função. • Para se aceder a uma variavel global dentro de uma função utiliza-se a instrução global: <?php function test() { $foo = "local variable"; echo '$foo in global scope: ' . $GLOBALS["foo"] . "n"; echo '$foo in current scope: ' . $foo . "n"; } $foo = "Example content"; test(); ?>
  • 15. • Static Scope – Quando uma função é executada,normalmente, todas as suas variáveis são apagadas, contudo, por vezes é possivel que a gente queira que uma variável local não seja apagada. • Para se poder fazer isso, utiliza-se a instrução static primeiramente quando se declara a variável: • Exemplo: – static $rememberMe;
  • 16. • Exercicio para Global e Local Scope: <?php $a = 5; function test() { $a = 3; echo $a; echo $GLOBALS["a"]; $a = $a + 1; echo $a; echo $GLOBALS["a"]; } test(); echo($a); ?>
  • 17. • Exemplo de static scope: <?php function foo(){ static $int = 0; // correct static $int = 1+2; // wrong (as it is an expression) static $int = sqrt(121); // wrong (as it is an expression too) $int++; echo $int; } foo(); ?>
  • 18. • Parameter – Um parameter é uma variável local cujo valor é passado para uma através do seu código de chamar função. – Parameters são declaradas numa lista de parâmetros como parte da declaração da própria função: function myTest($para1,$para2,...) { // function code } • Parameters também pode ser chamados de arguments. Isso será melhor explicado mais à frente quando se abordarem as funções.
  • 19. • Super Globais – São variáveis já predefinidas do PHP – Sendo assim fornecidas pelo proprio ambiente do PHP e podem ser acedidas de absolutamente de qualquer localização do programa, sendo assim globais tambem – Todas elas têm no seu nome um unico underscore no inicio e no resto letra grande – Neste caso temos que ter o mesmo cuidado na nomeação das nossas variaveis para evitar confusão – Cuidado especial na sua segurança, devido ao seu grande potencial scope
  • 20. • As super variaveis globais são: – $_SERVER – informação como por exemplo headers, caminhos e localizações de scripts. As entradas de este arrary são criadas poelo servidor de web, por isso não há garantia que todos os servidores providenciem essa informação – $_GET - variaveis enviadas pelo currente script via Metodo HTTP GET – $_POST - variaveis enviadas pelo currente script via Metodo HTTP POST – $_FILES – items que vão no upload do current e script via the HTTP POST method. – $_COOKIE – variavaies enviadas pelo currente script via HTTP cookies. – $_SESSION – variáveis de sessão que são disponiblizadas no current script. – $_REQUEST – conteúdo da informação enviado do browser :pr defeito , $_GET, $_POST e $_COOKIE. – $_ENV - variáveis enviasas do currente script via o metodo de ambiente web
  • 21. • Os seguintes exemplos dão o mesmo output? <?php $temp = "The date is "; echo longdate(time()); function longdate($timestamp) { return $temp . date("l F jS Y", $timestamp); } ?> <?php $temp = "The date is "; echo longdate(time()); function lonGDate($timestamp) { return $temp . date("l F jS Y", $timestamp); } ?>
  • 22. • Operadores: • Aritméticos • Atribuição • String • Comparação • Lógicos • Condição
  • 23. • Operadores aritméticos – São usados para efetuar operações matemáticas. Podemos usá-los para as 4 operações principais ( subtração, adição, divisão multiplicação) assim como e muito util para descobrir o resto de uma divisão e tambem incrementar ou decrementar o valor de uma variável. Tabela de operadores aritméticos Operador Descrição Exemplo + Adição $j + 1 - subtração $j - 6 * multiplicação $j * 11 / divisão $j / 4 % resto de divisão $j % 9 ++ incrementar ++$j -- decrementar --$j Alguém sabe a utilidade do resto de uma divisão, em que situações é bastante útil?
  • 24. • Resposta sobre uma das utilidades do operador % (resto de uma divisão inteira) <?php for($n=0;$n<10;$n++) { if($n % 2 ==0) { echo "<hr color='red' size='10'/>"; } else { echo "<hr color='green' size='10'/>"; } } ?>
  • 25. • Operadores de atribuição – Estes operadores são utilizados para atribuir valores às variáveis. Começam com um simples simples “=“ e depois com “+=“, -=, e por ai fora, como exemplificado em baixo. Operador Exemplo Equivalente a = $j = 15 $j = 15 += $j += 5 $j = $j + 5 -= $j -= 3 $j = $j - 3 *= $j *= 8 $j = $j * 8 /= $j /= 16 $j = $j / 16 .= $j .= $k $j = $j . $k %= $j %= 4 $j = $j % 4
  • 26. • Operadores de Comparação – São normalmente usados dentro de um construtor como por exemplo “if” ou tambem “while”, em que existe necessidade de comparar 2 itens, ou se uma variaável chegou a um certo valor na incrementação, ou se o valor é inferior, etc. Operador Descrição Exemplo == é igual a $j == 4 != é diferente de $j != 21 > é maior que $j > 3 < é menor que $j < 100 >= é maior ou igual que $j >= 15 <= é menor ou igual que $j <= 8
  • 27. • Operadores lógicos – Tem um pouco a ver com própria lingua. Por exemplo, se a hora for mais tarde que 12 horas e mais cedo que 2 da tarde, então vamos almoçar! Segue a lógica do proprio raciocinio. Operador Descrição Exemplo && And $j == 3 && $k == 2 and Low-precedence and $j == 3 and $k == 2 || Or $j < 5 || $j > 10 or Low-precedence or $j < 5 or $j > 10 ! Not ! ($j == $k) xor Exclusive or $j xor $k
  • 28. • Atribuição de variáveis – $x += 10; – $y -= 10; • Incrementação e decrementação de variáveis – ++$x; – --$y; • Com if – if (++$x == 10) echo $x; – if ($y-- == 0) echo $y; • Com while – while(++$x < 10) – While (--$y>5)
  • 29. • Operadores de strings – Concatenação • echo "You have " . $msgs . " messages."; • $bulletin .= $newsflash; // exemplo tambem valido! • Curiosidade: Porque o “.” serve como concatenador. – Resposta: echo 1 . 2; » Na realidade este echo produz não um numero real no ecran, mas sim uma string – A utilização de outro operador, como por exemplo “+” : » echo "a string" + "another string"; // produz “a string another string” » echo 1 + 2; // aqui já produziria o valor 3, em vez de 12.
  • 30. – Exercicio, diga que valor produz cada output <php $var = 3; echo "Result: " . $var + 3; ?> <php $var = 3; echo "Result: " . ($var + 3); ?>
  • 31. • Mais sobre a concatenação de strings $text = "This is a Headline This is the first line. This is the second. Written by $author."; // concatenar texto com mais que uma linha $text = 'My sister's car is a Ford'; // Errado $text = 'My sister's car is a Ford'; // forma de fazer escape dos caracteres $text = “This is the first line. <br>This is the second”. // com line feed $text = “This is the first line.n This is the second”. // com line feed As ultimas 2 linhas são equivalentes?
  • 32. • Operadores de Condição – if <?php If(condicao verdadeira) Executa a; If(condicao verdadeira) { Executa b; } else { Executa c; } ?>
  • 33. • Continuação de mais exemplos de if <?php if(!condicao falsa) Executa a; if(!condicao falsa) { Executa b; } else { Executa c; } ?>
  • 35. • Exemplos de ifs encadeados <?php if ($a > $b) { echo "a is bigger than b"; } elseif ($a == $b) { echo "a is equal to b"; } else { echo "a is smaller than b"; } ?>
  • 38. • Operador de condição “switch” <?php switch (variavel): case valor1: echo expressao; break; // etc... default: açao por defeito ; break; //caso não se verifique nenhuma condição, garantimos assim a execução de esta instrução endswitch; ?> Este tipo de operador substitui um outro, quando se torna muito complexo a verificação de todas as variaveis.
  • 39. • Exemplo de “switch” <?php if ($page == "Home") echo "You selected Home"; elseif ($page == "About") echo "You selected About"; elseif ($page == "News") echo "You selected News"; elseif ($page == "Login") echo "You selected Login"; elseif ($page == "Links") echo "You selected Links"; else echo “You selected Blank”; switch ($page) { case "Home": echo "You selected Home"; break; case "About": echo "You selected About"; break; case "News": echo "You selected News“; break; case "Login": echo "You selected Login"; break; case "Links": echo "You selected Links"; break; default : echo “You selecetd Blank”; } ?>
  • 40. • Operador de condição “?” – Tambem conhecido por operador ternário, o que não deixa de ser pouco comum, ao inves de utilizar 2 operadores, mas por vezes acontece. <?php echo $fuel <= 1 ? "Fill tank now" : "There's enough fuel"; ?> <?php instrucao ? Verdadeiro : Falso; ?>
  • 41. • Ciclos (Looping) – while while (condicao) { // Keep driving ... echo "There's enough fuel"; } <?php $count = 1; while ($count <= 12) { echo "$count times 12 is " . $count * 12 . "<br />"; ++$count; } ?>
  • 43. • Looping – do while <?php $count = 1; do echo "$count times 12 is " . $count * 12 . "<br />"; while (++$count <= 12); ?> • Nota: Este ciclo é sempre efetuado 1x.
  • 44. • Looping – for for (inicio ; criterio de paragem; incrementação/decrementação) { instrução } <?php for ($count = 1 ; $count <= 12 ; ++$count) { echo “$count times 12 is “ . $count * 12 . “<br />”; } ?>
  • 45. • Instruçoes importantes num ciclo! – break for ($j = 0 ; $j < 100 ; ++$j) { if($i== 20) break; } – continue while ($j > −10) { $j--; if ($j == 0) continue; echo (10 / $j) . "<br />"; }
  • 46. • Exercicio para ciclo for – Fazer um ciclo com inicio em 1 e que acabe em 20 e que cada linha de altura 10px par faça de cor vermelha e cada impar verde. A cada 5 incrementações faça uma linha amarela e com altura 20px. • Exercicio livre: – Elabore um programa faça um ciclo de 1 a 10 pelo menos 1x até um limite que é sorteado um numero entre os mesmos valores.
  • 47. • Exercicio for: <?php for($n=1;$n<=20;$n++) { $height= 10; if($n % 5 == 0) { $height= 20; $cor = "yellow"; } elseif($n % 2 == 0) { $cor ="red"; } else { $cor ="green"; } echo "<hr color='$cor' size='$height'/>"; } ?>
  • 48. • Exercicio … <?php $number = rand(0,10); $i=0; do { $i++; echo "<br/>$i"; } while($i!=$number); echo "<hr/>O numero sorteado foi $number"; ?>
  • 49. • Arrays – Trata-se de uma variável especial, que pode guardar valores multiplos em apenas uma variavel. $cars1="Saab"; $cars2="Volvo"; $cars3="BMW"; Pode ficar $cars=array("Saab","Volvo","BMW”); Assignar por indice $cars[0]="Saab"; $cars[1]="Volvo"; $cars[2]="BMW";
  • 50. • Looping – foreach – É muito usado para looping de arrays – Sintaxe: foreach ($array as $value) { code to be executed; } <?php $cars=array("Saab","Volvo","BMW”); foreach ($cars as $car) { echo $car . "<br>"; } ?>
  • 51. • Mais tipos de Arrays: – Associativos $paper['copier'] = "Copier & Multipurpose"; $paper['inkjet'] = "Inkjet Printer"; $paper['laser'] = "Laser Printer"; $paper['photo'] = "Photographic Paper"; echo $paper['laser']; – MultiDimensionais $data = array( array( "Mike", "3" => 1, "4" => 0, "5" => 0), array( "Steve", "3" => 0, "4" => 0, "5" => 0), array("John", "3" => 0, "4" => 0, "5" => 0), );
  • 52. • Funções – Servem para separar melhor o código e para serem reutilizadas. Principal objetivo é devolver sempre um valor. • Exemplo function functionName() { código a executar; } function longdate($timestamp) { return date("l F jS Y", $timestamp); }
  • 53. • Tipos de funções • Array functions • Calendar functions • Date functions • Directory functions • Error functions • Filesystem functions • Filter functions • FTP functions • HTTP functions • LibXML functions • Mail functions • Math functions • Misc functions • MySQL functions • SimpleXML functions • String functions • XML Parser functions • Zip functions
  • 54. • Funções de strings <?php echo strrev(" .dlrow olleH"); // Reverse string echo str_repeat("Hip ", 2); // Repeat string echo strtoupper("hooray!"); // String to uppercase $str = 'abcdef'; $sub = substr($str, 3, 5); echo '<br>'.$sub; // returns "def" echo str_shuffle(“isto é uma misturada”); //shuffles the string echo trim(“ isto retira espaços “); //removes blank spaces in the end and in the beginning ?>
  • 55. • Funções de strings <?php echo strpos("Hello world!","wo"); //return position of first occurence echo ‘<br>’.strlen("Hello world!"); // count the string length echo "<br>".similar_text("Hello World","Hello Peter"); // returns the number of matching characters of two strings. echo "<br>".similar_text("Hello World","Hello Peter",$percent); // It can also calculate the similarity of the two strings in percent. echo $percent; ?> … e muitas mais
  • 56. • Funções de Calculo <?php echo(abs(6.7) . "<br />"); echo(abs(-3) . "<br />"); echo(abs(3)). "<br />"); echo(floor(5.1) . "<br />"); echo(floor(-5.1).”<br/>”); echo(exp(5) . "<br />"); echo(exp(10) . "<br />"); echo pow(4,2) . "<br />"; echo pow(6,2) . "<br />“; ?>
  • 57. • Funções do Tempo <?php $t=time(); echo($t . "<br />"); echo(date("D F d Y",$t)); echo(“<br/>”.microtime()); $my_t=getdate(date("U")); echo("<br/>$my_t[weekday], $my_t[month] $my_t[mday], $my_t[year]"); ?>
  • 58. • Funções de Arrays <?php $a=array("a"=>"Dog","b"=>"Cat","c"=>"Horse"); print_r(array_reverse($a)); echo "<hr/>"; $my_array = array("Dog","Cat","Horse"); list($a, , $c) = $my_array; echo "Here I only use the $a and $c variables."; echo "<hr/>"; $my_array = array("a" => "Dog", "b" => "Cat", "c" => "Horse"); sort($my_array); print_r($my_array); ?>
  • 59. • Funções Várias <?php echo $_SERVER['HTTP_USER_AGENT'] . "<br /><br />"; $browser = get_browser(null,true); print_r($browser); //sleep for 10 seconds sleep(10); //start again echo date('h:i:s'); $str = "Hello"; $number = 123; printf("%s world. Day number %u",$str,$number); php_info(); ?>
  • 60. • Funções de E-Mail <?php $to = "someone@example.com"; $subject = "Test mail"; $message = "Hello! This is a simple email message."; $from = "someonelse@example.com"; $headers = "From:" . $from; mail($to,$subject,$message,$headers); echo "Mail Sent."; ?>
  • 61. • Funções de Include -ficheiro vars.php <?php $color='red'; $car='BMW'; ?> -ficheiro teste.html <html> <body> <h1>Welcome to my home page.</h1> <?php include 'vars.php'; echo "I have a $color $car"; // I have a red BMW ?> </body> </html>
  • 62. • Exercicio. – Faça um programa que sorteie um numero de 1 a 100 e mostre todos os numeros primos existentes nesse intervalo.
  • 63. • Formularios – São feitos em HTML – Servem para passar informação ao servidor – Métodos utilizados no Forms: • GET • POST – Existem mais métodos de passar informação mas para funcionarem têm que ser simulados de outra forma como por exemplo atraves de uma REST Console. Métodos adicionais: » PUT (usa-se para efetuar o UPDATE) » DELETE (usa-se para efetuar o DELETE – pouco recomendado, normalmente é bloqueado pelo IIS, APACHE
  • 64. • Objetos de um form (HTML Form Tags) Tag Description <form> Defines an HTML form for user input <input> Defines an input control <textarea> Defines a multiline input control (text area) <label> Defines a label for an <input> element <fieldset> Groups related elements in a form <legend> Defines a caption for a <fieldset> element <select> Defines a drop-down list <optgroup> Defines a group of related options in a drop-dowdownlist <option> Defines an option in a drop-down list <button> Defines a clickable button <datalist>New Specifies a list of pre-defined options for input controls <keygen>New Defines a key-pair generator field (for forms) <output>New Defines the result of a calculation • NEW : HTML5
  • 65. • Formulario exemplo <form action=“getform.php” method=“POST”> First name: <input type="text" name="firstname"><br> Last name: <input type="text" name="lastname"> <br><input type=“submit”> </form>
  • 66. • Aceder aos valores dos objetos de um formulario: – Ler variaveis do metodo “POST” <?php echo($_POST["firstname"]." ".$_POST["lastname“]); ?> – Ler variaveis do metodo “GET”: <?php echo($_GET["firstname"]." ".$_GET["lastname“]); ?>
  • 67. • Objetos de um Formulario – input (pode ainda ter o tipo file, button, image e password) <input type=“text” name=“”/> – textarea <textarea name=“x” rows=”x” cols=“x”></textarea> - button <button type="button">Click Me!</button> - label < label id="butao">Label</label> - select, optiongroup e options - <select> <optgroup label="Swedish Cars"> <option value="volvo">Volvo</option> <option value="saab">Saab</option> </optgroup> <optgroup label="German Cars"> <option value="mercedes">Mercedes</option> <option value="audi">Audi</option> </optgroup> </select>
  • 68. • Tipos do input – Input Button object – Input Checkbox object – Input FileUpload object – Input Hidden object – Input Password object – Input Radio object – Input Reset object – Input Submit object – Input Text object – Input Image object
  • 69. • Como se implementam esses inputs <input type=“button” value=“Prima”/> <input type=“checkbox” value=“valor”/> <input type=“file” name=“filename”/> <input type=“hidden” name=“Id” valor=“120” /> <input type=“password” name=“password” /> <input type=“radio” value=“Male” /> <input type=“reset” value=“Apagar” /> <input type=“submit” value=“Enviar” /> <input type=“text” name=“Login” /> <input type=“image” src=“path_of_image” />
  • 70. • Exercicio: – Elabore um formulario que resgiste nome, apelido, morada, sexo, pais(10 à escolha a partir de um array) e linguas que domina (com ingles, frances, espanhol e alemão para escollher). – Escolha para o efeito os campos adequados. – Elaborar uma pagina para post dos campos preenchidos.
  • 71. • Upload de Ficheiros <html> <body> <form action="upload_file.php" method="post" enctype="multipart/form-data"> <label for="file">Filename:</label> <input type="file" name="file" id="file"><br> <input type="submit" name="submit" value="Submit"> </form> </body> </html>
  • 72. • Upload (continuação) <?php if ($_FILES["file"]["error"] > 0) { echo "Error: " . $_FILES["file"]["error"] . "<br>"; } else { echo "Upload: " . $_FILES["file"]["name"] . "<br>"; echo "Type: " . $_FILES["file"]["type"] . "<br>"; echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>"; echo "Stored in: " . $_FILES["file"]["tmp_name"] ?> • $_FILES["file"]["name"] - the name of the uploaded file • $_FILES["file"]["type"] - the type of the uploaded file • $_FILES["file"]["size"] - the size in kilobytes of the uploaded file • $_FILES["file"]["tmp_name"] - the name of the temporary copy of the file stored on the server • $_FILES["file"]["error"] - the error code resulting from the file upload
  • 73. • Upload (exemplo completo) <?php $allowedExts = array("jpg", "jpeg", "gif", "png"); $extension = end(explode(".", $_FILES["file"]["name"])); if ((($_FILES["file"]["type"] == "image/gif") || ($_FILES["file"]["type"] == "image/jpeg") || ($_FILES["file"]["type"] == "image/png") || ($_FILES["file"]["type"] == "image/pjpeg")) && ($_FILES["file"]["size"] < 20000) && in_array($extension, $allowedExts)) { if ($_FILES["file"]["error"] > 0) { echo "Return Code: " . $_FILES["file"]["error"] . "<br>"; } else { echo "Upload: " . $_FILES["file"]["name"] . "<br>"; echo "Type: " . $_FILES["file"]["type"] . "<br>"; echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>"; echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br>";
  • 74. • if (file_exists("upload/" . $_FILES["file"]["name"])) { echo $_FILES["file"]["name"] . " already exists. "; } else { move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $_FILES["file"]["name"]); echo "Stored in: " . "upload/" . $_FILES["file"]["name"]; } } } else { echo "Invalid file"; } ?> • Deve-se sempre restringir o upload ao tipo de ficheiro (extensões ) e tambéo quanto ao tamanho.
  • 75. • Cookies – setcookie(name, value, expire, path, domain); • Tem que ser feito antes da tag <html> <?php $expire=time()+60*60*24*30; setcookie("user", "Alex Porter", $expire); ?> <?php // Print a cookie echo $_COOKIE["user"]; // A way to view all cookies print_r($_COOKIE); ?> • Não esquecer que para se utilizar esta tecnologia, estamos dependentes que o browser os suporte!
  • 76. • Cookies – exemplo <html> <body> <?php if (isset($_COOKIE["user"])) echo "Welcome " . $_COOKIE["user"] . "!<br>"; else echo "Welcome guest!<br>"; ?> </body> </html> • Apagar um cookie <?php // set the expiration date to one hour ago setcookie("user", "", time()-3600); ?>
  • 77. • Sessions – Alternativa aos cookies <?php session_start(); // store session data $_SESSION['views']=1; ?> <html> <body> <?php //retrieve session data echo "Pageviews=". $_SESSION['views']; ?> </body> </html>
  • 78. • Sessions < ?php session_start(); if(isset($_SESSION['views'])) $_SESSION['views']=$_SESSION['views']+1; else $_SESSION['views']=1; echo "Views=". $_SESSION['views']; ?> – Destruindo uma sessão <?php session_start(); if(isset($_SESSION['views'])) unset($_SESSION['views']); ?> - Destuindo todas <?php session_destroy();
  • 79. • E-Mail mail(to,subject,message,headers,parameters) Parameter Description To Required. Specifies the receiver / receivers of the email Subject Required. Specifies the subject of the email. Note: This parameter cannot contain any newline characters Message Required. Defines the message to be sent. Each line should be separated with a LF (n). Lines should not exceed 70 characters Headers Optional. Specifies additional headers, like From, Cc, and Bcc. The additional headers should be separated with a CRLF (rn) Parameters Optional. Specifies an additional parameter to the sendmail program Exercicio: Fazer um formulario para envio de mail.
  • 80. • HTML – Hypertext Markup Language – Linguagem por defeito das paginas de internet, que por sua vez é interpetada por browsers. Nasceu do padrão HyTime com SGML. – Vamos ver exemplos mais com a versão 4.01 e alguns 5.0 – Exemplo de uma pagina simples < !DOCTYPE html> <html> <body> <h1>My First Heading</h1> <p>My first paragraph.</p> </body> </html>
  • 81. • HTML – Headings <h1>This is a heading</h1> <h2>This is a heading</h2> – Paragraphs <p>This is a paragraph.</p> <p>This is another paragraph.</p> – Links <a href="http://www.w3schools.com">This is a link</a> – Images <img src="w3schools.jpg" width="104" height="142"> – Formatting Tags • Usa as tags <b>, <i>, <u>,<sub> e <sup> <b>bold</b> <i>italico</i> <u>underline</u> <sup>2</sup><sub>2</sub>
  • 82. • HTML - <head> Element – pode ter as tags: <title>, <style>, <meta>, <link>, <script>, <noscript>, e <base>. – Titles <head> <title>My first HTML page</title> </head> <head> <style type="text/css"> body {background-color:yellow} p {color:blue} </style> </head> <head> <link rel="stylesheet" type="text/css" href="mystyle.css"> </head>
  • 83. • HTML-Tables Exemplo <table border="1” cellspacing=“0” cellpadding=“0”> <tr> <th>Header 1</th> <th>Header 2</th> </tr> <tr> <td>row 1, cell 1</td> <td>row 1, cell 2</td> </tr> <tr> <td>row 2, cell 1</td> <td>row 2, cell 2</td> </tr> </table>
  • 84. • HTML – Lists – Unordered Lists <ul> <li>Coffee</li> <li>Milk</li> </ul> – Ordered Lists <ol> <li>Coffee</li> <li>Milk</li> </ol> – Definition Lists <dl> <dt>Coffee</dt> <dd>- black hot drink</dd> <dt>Milk</dt> <dd>- white cold drink</dd> </dl>
  • 85. • HTML - Grouping tags – DIV <div style=“background-color:salmon;width:300px;height:200px;”></div> – PRE <pre>Este texto não altera a formatação</pre> – SPAN <span style=“color:red”>Isto é uma span a Formatação não se altera</span> – IFRAME <iframe src=“http://www.sporting.pt “ width=“800” height=“400” frameborder=“0”></iframe>
  • 86. • HTML – Multimedia Tags – Youtube <iframe width="420" height="345“ src="http://www.youtube.com/embed/XGSy3_Czz8k"> </iframe> – Video <video width="320" height="240" controls> <source src="movie.mp4" type="video/mp4"> <source src="movie.ogg" type="video/ogg"> Your browser does not support the video tag. </video> - Audio <audio controls> <source src="horse.ogg" type="audio/ogg"> <source src="horse.mp3" type="audio/mpeg"> Your browser does not support the audio tag. </audio>
  • 87. • HTML – Colors – http://www.w3schools.com/tags/ref_colornames.asp – Tem cerca de 16 milhões de cores. Sendo a sua obtenção através de Red, Green,e Blue valores de 0 a 25 (256 x 256 x 256). • Exemplos de sua utilização: <span style=“color: red”>Não gosto de esta cor</span> <div style=“background-color: #FF0099”> que cor é esta?</span> <font color=“cyan”>Olha a cor</font> <body style=“background-color: salmon”>cor de fundo</span> <table bordercolor=“brown”…> • Todos os objetos do HTML têm algum atributo com cor.Ex: color, background-color, bordercolor, etc.
  • 88. • JavaScript – JavaScript é uma linguagem de script baseada em ECMAScript padronizada pela Ecma international nas especificações ECMA-262[2] e ISO/IEC 16262 e é atualmente a principal linguagem para programação client-side em navegadores web. – Foi concebida para ser uma linguagem script com orientação a objetos baseada em protótipos, tipagem fraca e dinâmica e funções de primeira classe. Possui suporte à programação funcional e apresenta recursos como fechamentos e funções de alta ordem comumente indisponíveis em linguagens populares como Java e C++. • Mais linguagens de script -VBScript, Ruby, Python, Tcl, ActionScript <script> document.write("Hello World!") </script> <noscript>Sorry, your browser does not support JavaScript!</noscript>
  • 89. • JavaScript – Eventos <button type="button" onclick=“alert('clicked')">Click Me!</button> • Tipos de eventos – http://www.w3schools.com/tags/ref_eventattributes.asp – Existem eventos para window, forms, keyboard, mouse e media – Manipulando HTML <script>document.write("<p>This is a paragraph</p>");</script> – Manipulando estilos <span id=“demo”>teste</span> <script>document.getElementById("demo").style.color="#ff0000";</script>
  • 90. • SQL – Significa Structured Query Language • é a linguagem de pesquisa declarativa padrão para banco de dados relacional (base de dados relacional). Muitas das características originais do SQL foram inspiradas na álgebra relacional. • Existem 4 operações fundamentais no SQL, que tambem são conhecidas por CRUD (Create, Read, Update e Delete) – Insert, criar registo numa tabela – Select, obter registo(s( de uma tabela – Update, atualizar um registo numa tabela – Delete, apagar um registo de uma tabela
  • 91. • SQL – O sql é comum a todas as bases de dados, simplesmente cada tipo de repositório tem o seu tipo de dialecto. • Exemplos: – SQL Server – T-SQL – Oracle – PL/SQL – MySQL – MySQL transactional – As diferenças nos comandos do SQL são mais sentidas não a nivel das operações CRUD, mas no que se refere mais com funções, procedures, triggers e outras funcionalidades. Certos tipos de dados, tambem não são comuns entre alguns
  • 92. • SQL – Comando Select • Select campo1,campo2,… from nome_Tabela ou • Select * from nome_tabela – Comando Insert • Insert into nome_Tabela(campo1,campo2) values (valor1, valor2,…) ou • Insert into nome_Tabela value (valor1,valor2,…)
  • 93. • SQL – Comando Update • Update nome_tabela set campo1 =valor1, campo2=valor2… where chave = valor_chave * – Comando Delete • Delete from nome_Tabela where chave = valor_chave * • *: recomendado uso do query recorrendo ao campo chave da tabela, para garantir que é afetado o registo pretendido • Nestes comandos esquecer o uso do comando where, é a morte do artista!
  • 94. • PHPMyAdmin – é um Aplicativo Web desenvolvido em PHP para administração do MySQL pela Internet. – A partir deste sistema é possível criar e remover bases de dados, criar, remover e alterar tabelas, inserir, remover e editar campos, executar códigos SQL e manipular campos chaves. – É muito utilizado por programadores web que muitas vezes necessitam manipular bases de dados. Normalmente, o phpMyAdmin é tratado como uma ferramenta obrigatória em quase todas as hospedagens da web, além de pacotes off-line, como o WAMPServer, XAMPP, EasyPHP e PHP Triad.
  • 95. • SQL – Imagem do PHPMyAdmin
  • 96. • SQL - O repositório MySQL
  • 97. • MySQL – Portabilidade (suporta praticamente qualquer plataforma atual); – Compatibilidade (existem drivers ODBC, JDBC e .NET e módulos de interface para diversas linguagens de programação, como Delphi, Java, C/C++, C#, Visual Basic, Python, Perl, PHP,ASP e Ruby) – Excelente desempenho e estabilidade; – Pouco exigente quanto a recursos de hardware; – Facilidade de uso; – É um Software Livre com base na GPL (entretanto, se o programa que acessar o Mysql não for GPL, uma licença comercial deverá ser adquirida)[6]; – Contempla a utilização de vários Storage Engines como MyISAM, InnoDB, Falcon, BDB, Archive, Federated, CSV, Solid… – Suporta controle transacional; – Suporta Triggers , Cursors (Non-Scrollable e Non-Updatable), Stored Procedures e Functions; – Replicação facilmente configurável; – Interfaces gráficas (MySQL Toolkit) de fácil utilização cedidos pela MySQL Inc.
  • 98. • SQL – PHP – Connect to Database <?php $host = "localhost"; $username = "root"; $password = ""; $db = "test"; $con = mysql_connect($host,$username,$password); if (!$con) die("Unable to connect to MySQL: " . mysql_error()); mysql_select_db($db) or die("Unable to select database: " . mysql_error()); ?>
  • 99. • SQL – SELECT com PHP <?php include_once "connect.php"; $query="select * from banda"; $result = mysql_query($query); if (!$result) die ("Database access failed: " . mysql_error()); $rows = mysql_num_rows($result); for ($j = 0 ; $j < $rows ; ++$j) { echo 'Id: ' . mysql_result($result,$j,'Id') . '<br />'; echo 'Nome: ' . mysql_result($result,$j,'Nome') . '<br />'; } ?>
  • 100. • SQL – INSERT com PHP <?php include_once "connect.php"; $sql = "INSERT INTO Banda (Nome) VALUES (‘nome da banda')"; mysql_query($sql); mysql_close($con); ?> • SQL – UPDATE com PHP <?php include_once "connect.php"; $update = "UPDATE BANDA SET NOME='METALLICA' WHERE ID = 3"; mysql_query($update); mysql_close($con); ?>
  • 101. • SQL – DELETE com PHP <?php include_once "connect.php"; $delete = "DELETE FROM BANDA WHERE ID = 4"; mysql_query($delete); mysql_close($con); ?> Outra forma é com TRUNCATE TABLE BANDA; Mais rapido que o anterior, fazendo ainda o drop e o recreate, tem a vantagem acrescida de o autoincremente ser feito reset, ao contrario do DELETE.
  • 102. • Sites importantes sobre PHP: – http://php.net/ – http://www.mysql.com/ – http://www.w3schools.com/ – http://www.wampserver.com/en/ – http://www.apache.org/