PHP - Revisão Aula R Prof. Naércio Filho Técnico em Informática www.funpar.ufpr.br:8080/naercio PHP - Revisão Sumario – – – – – – – – – – – – Sintaxe Variáveis Strings IF Array Looping Funções Formulários Scripts Externos Sessão Upload de Arquivos Banco de Dados PHP - Sintaxe Sintaxe o código php é delimitado por <? //código ?> PHP - Variáveis as variáveis do php são especificadas por $ antes do nome dispensam tipagem, ou seja, não é preciso especificar com qual tipo de dado irá se trabalhar <? $ze = “nome”; $nu = 6; $bo = true; ?> PHP - Strings as string em PHP possuem uma qualidade especial, as delimitadas por " serão interpretadas primeiro por exempo <? $x = "abc"; $y = "$x def"; ?> o resultado será : abc def ja em <? $x = "abc"; $y = '$x def'; ?> o resultado será apenas : $x def para concatenar uma string em php usa-se o ( . ) ponto <? $z = $x . $y; ?> o resultado será : abcdef PHP - IF sua estrutura em php é If (condicao){ // codigo } else { // codigo } podendo agrupar outros dentro dele, ou em seu else <?php $d=date("D"); if ($d=="Fri") echo "hoje é sexta-feira =)"; elseif ($d=="Sun") echo "hoje é Domingo =/"; else echo "hoje não é sexta-feira =("; ?> PHP - Arrays permitem guardar os dados em vetores Numéricos – – possuem seu índice como um valor numérico podem ser criados de dois modos automaticamente $nomes = array("Joao","Maria","Jose"); ou $nomes[] = "Joao"; $nomes[] = "Maria"; $nomes[] = "Jose"; Ou podem ser definidos manualmente $nomes = array(5 => "Joao",32 => "Maria", 26 => "Jose"); ou $nomes[5] = "Joao"; $nomes[32] = "Maria"; $nomes[26] = "Jose"; PHP - Arrays Associativos possuem seu índice como um texto na criação precisam ter seu índice informado explicitamente $idades = array('Joao' =>32, 'Maria' => 30, "Jose" => 34); Ou assim: $idades["Joao"] = "32"; $idades["Maria"] = "30"; $idades['Jose'] = "34"; Multidimensionais são arrays que possuem outros arrays dentro $nomes = array("Joao","Maria","Jose"); $idades = array('Joao' =>32, 'Maria' => 30, "Jose" => 34); $turma = array($nomes, $idades); PHP - Loopings while verifica a condição antes de executar o bloco de códigos. while (condicao){ // bloco de codigos } <? $i=1; while($i<=5) { echo "O Numero é " . $i; $i++; } ?> PHP - Loopings do ... while executa o bloco de comandos uma vez antes de verificar a condição do { // bloco de comandos } while (condição); <? $i=0; do { $i++; echo "o numero é " . $i; } while ($i<5); ?> PHP - Loopings for é usado para situações quando se conhece a quantidade de vezes a ser repetido a cada interação haverá uma variável contador disponível for (inicialização; condição; incremento) { // bloco de códigos } <? for ($i=1; $i<=5; $i++) { echo "o numero é " . $i; } ?> PHP - Loopings foreach usado em Arrays, percorre o mesmo desde sua primeira posição até a ultima, em cada interação haverá uma variável com o índice e outra com o valor atual foreach (array as índice => valor) { //Bloco de comandos; } <? $arr=array("um", "dois", "três"); foreach ($arr as $k => $v) { echo "Posição: ". $k; echo " Valor: " . $v; } ?> PHP - Funções especialmente para reutilizar códigos, as funções ainda facilitam a manutenção do código em rotinas que se repetem function Nome_da_Funcao($parametros) { Código a ser executado; return valor de retorno; } podem ter ou não parâmetros e um valor de retorno <? function soma($x,$y) { $total = $x + $y; return $total; } ?> PHP - Formulários executam a interação entre um usuário e o sistema, são por eles que os dados serão cadastrados <form action="entra.php" method="post"> Nome: <input type="text" name="nome" /> senha: <input type="password" name="senha" /> <input type="submit" /> </form> o tipo de método de envio (method) ira definir como esses dados serão tratados no PHP se esse dado for enviado pelo endereço da pagina irá ser tratado como method="get" PHP - Variáveis Especiais os Arrays $_GET e $_POST, irão permitir que os dados enviados por um formulário sejam acessados por uma pagina em php nesses vetores cada um dos elementos serão um campo do formulário Olá <?=$_POST["nome"]; ?>.<br /> Sua senha é <? echo $_POST["senha"]; ?>. PHP - Scripts Externos as vezes é preciso para evitar códigos duplicados deixar algumas informações em scripts únicos, então para inserir um cabeçalho, rodapé, menu, ou um pacote de funções usa-se incluir arquivos dentro de outros, esse é um modo de dizer ao PHP para procurar dados dentro de outros arquivos Usa-se include / require <?php include("pagina.php"); // ou require("pagina.php"); ?> PHP – Sessão $_SESSION o Array de sessão permite que um dado (variável) permaneça vivo durante toda a execução da aplicação para trabalhar com sessões precisamos iniciar uma sessão (pelo php podemos deixar essa fase automática) armazenar/ utilizar os dados destruir a sessão <? session_start(); // precisa ser a primeira coisa a ser escrita na pagina $_SESSION['USUARIO'] = 'jose'; // armazenamos os dados como em um array $_SESSION['SENHA'] = "1234"; echo $_SESSION['USUARIO']. " – " . $_SESSION['SENHA']; // e acessamos assim // para destruir a sessão unset($_SESSION['USUARIO']); //podemos destruir apenas um dado session_destroy(); // ou toda a sessão ?> PHP – Upload de Arquivos usando o mesmo conceito de formulários, podemos enviar arquivos para a aplicação <form action="upload.php" method="post" enctype="multipart/form-data"> Arquivo:<input type="file" name="arquivo" id="arquivo" /> <input type="submit"/> </form> prestamos atenção à propriedade enctype="multipart/form-data" do formulário, ela irá informar que será enviado um arquivo nesse formulário e o campo input usamos o type="file", que irá habilitar a pesquisa e a seleção do arquivo no computador local PHP – $_FILES após ser enviado para o servidor para manipularmos o arquivo temos outro array do php o $_FILES que será indexado da seguinte forma: no qual o índice "arquivo" possuirá o nome do input do type="file" no formulário $_FILES["arquivo"]["name"] - O nome do Arquivo. $_FILES["arquivo"]["type"] - O Tipo do Arquivo. $_FILES["arquivo"]["size"] - O Tamanho do Arquivo em Bytes. $_FILES["arquivo"]["tmp_name"] - O nome temporário dado ao arquivo no servidor. $_FILES["arquivo"]["error"] - A Mensagem de erro caso exista. PHP – $_FILES após carregado no servidor podemos usar o comando move_uploaded_file(tmp, original); para armazenar o arquivo onde precisamos. <? if ($_FILES["arquivo"]["error"] > 0) { echo "Codigo de Erro: " . $_FILES["arquivo"]["error"] . "<br />"; } else { if (file_exists("upload/" . $_FILES["arquivo"]["name"])) { echo $_FILES["arquivo"]["name"] . " Arquivo já existente. "; } else { move_uploaded_file($_FILES["arquivo"]["tmp_name"], "upload/" . $_FILES["arquivo"]["name"]); echo "Armazenado em: " . "upload/" . $_FILES["arquivo"]["name"]; } } ?> PHP – Banco de Dados Ao usar bancos de dados em nossas aplicações precisamos seguir alguns passos 1 - Fazer a conexão, abrir um link de comunicação entre a aplicação e o SGDB 2 - Abrir uma transação 3 - Executar Comandos SQL, Selects, Inserts, Updates, Deletes 4 - Finalizar a transação (commit, Rollback) 5 - Fechar a Conexão PHP – Mysql para o mysql podemos omitir as fazes de abrir/fechar transação para fazer uma conexão usamos mysql_connect(servidor,usuário,senha); Tambem precisamos escolher com qual banco de dados trabalhar mysql_select_db("Banco_de_dados", Id_conexão); PHP – Mysql para executar uma ação no banco de dados fazemos mysql_query("sql",id_conexão); mysql_query executa qualquer ação,comandos SQL, no banco de dados (select, insert, update, delete, create, drop, etc...) PHP – Mysql ao usar o mysql_query para executar um select teremos um resultado para a pesquisa, podemos acessa-lo com mysql_fetch_array(Resultado da pesquisa); seu resultado será um array com as colunas da tabela, como informado no sql, ou como foi definido no BD (no caso de select *) caso seja usado para as outra ações irá retornar apenas verdade para sucesso, ou falso para falha. PHP – Mysql para acessar a msg de erro caso exista usa-se mysql_error(); Após utilizar a conexão com o banco é necessário fecharmos, existem dois caminhos 1 - podemos esperar a execução do código e o termino do script (mais usado) 2 - podemos usar a função mysql_close(id_conexão) PHP – Mysql <?php if ($con = mysql_connect("localhost","turma","abc123")){ mysql_select_db("aula", $con); $result = mysql_query("insert into pessoa (nome, idade) values ('juvenal', 23)"); if ($result = mysql_query("SELECT nome, idade FROM pessoa")){ while($row = mysql_fetch_array($result)) { echo $row['nome'] . " - " . $row['idade']; echo "<br />"; } } else { echo mysql_error(); } } else { echo mysql_error(); } ?> PHP - Exercícios Exercícios das aulas anteriores em especial os da aula 7 de montagem de formulário e gravação de dados em um banco de dados. PHP - Exercícios Utilizando o formulário para gravação dos dados, montar um formulário para enviar usuário e senha, verificar no banco de dados se o usuário esta cadastrado, e se a senha confere, então salvar um identificador do usuário na sessão e dar acesso a ele para usar as telas de inclusão, alteração e exclusão, dos exercícios da aula 7.