Php

on

  • 1,716 views

 

Statistics

Views

Total Views
1,716
Views on SlideShare
1,716
Embed Views
0

Actions

Likes
1
Downloads
50
Comments
2

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Php Php Presentation Transcript

  • • 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 --$jAlgué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 HeadlineThis is the first line.This is the second.Written by $author."; // concatenar texto com mais que uma linha$text = My sisters car is a Ford; // Errado$text = My sisters 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" : "Theres enough fuel"; ?> <?php instrucao ? Verdadeiro : Falso; ?>
  • • Ciclos (Looping) – while while (condicao) { // Keep driving ... echo "Theres 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/