1 / 42

PHP

PHP. Constantino Martins DEI – Departamento de Engenharia Informática ISEP - Instituto Superior Engenharia Do Porto. Índice. O que é o PHP? Vantagem Tipos de variáveis Forms com PHP Mail Funções Comunicação com SGBD como exemplo o MySQL Autenticação com PHP - algumas soluções.

thalia
Download Presentation

PHP

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. PHP Constantino Martins DEI – Departamento de Engenharia Informática ISEP - Instituto Superior Engenharia Do Porto Constantino Martins

  2. Índice • O que é o PHP? • Vantagem • Tipos de variáveis • Forms com PHP • Mail • Funções • Comunicação com SGBD como exemplo o MySQL • Autenticação com PHP - algumas soluções. • SESSION com PHP • Uploads • Links Constantino Martins

  3. O que é PHP? • PHP ("PHP: Hypertext Preprocessor") é uma linguagem de script server-side HTML-embedded. • Implementado em “qualquer” ambiente • Server-side -> código é executado no servidor. Constantino Martins

  4. Historia e Datas • Concebido em 1994 por Rasmus Lerdorf • Versão 1: 1995 • Versão 2: PHP/FI 1995-1997 • Versão 3: PHP 1997-2000 • Versão 4: PHP meio-2000 Constantino Martins

  5. Vantagem • Entre outras, umas das grandes vantagem do PHP é o de suportar um grande número de base de dados e sobretudo de fácil uso. • Adabas D, InterBase, Solid, dBase, mSQL, Sybase, Empress, MySQL, Velocis, FilePro, Oracle, Unix dbm, Informix, PostgreSQL Constantino Martins

  6. Primeiro programa - hello world • FILE.php: <html><head> <title>Example</title> </head><body> <? echo “hello world!"; ?> </body> </html> • Output: Hello world! • O código PHP é delimitado por tags iniciais e finais que lhe permite sair e entrar no PHP. Constantino Martins

  7. Tipos de Tags • <? codigo PHP ?> • <?php codigo PHP ?> • <% codigo PHP %> • <script language="php"> codigo PHP </script> Constantino Martins

  8. PHP embebido com HTML <? Codigo PHP ?> Codigo HTML <? Codigo PHP ?> Codigo HTML <? Codigo PHP ?> Etc.... Constantino Martins

  9. Exemplo <? if(strstr($HTTP_USER_AGENT,"MSIE")) { ?> <b>You are using Internet Explorer</b> <? } else { ?> <b>You are not using Internet Explorer</b> <? } ?> Constantino Martins

  10. Sintaxe PHP “a la “ C (e Perl, TCL etc..) • Instruções “a la” C <? for ($i=0; $i<5; $i++) { if ($i < 2) { echo “ola"; } else { echo “oli"; } echo "$i<BR>\n"; } ?> Constantino Martins

  11. Tipos de Comentários <? // primeira /* segunda */ # vamos embora? ?> Constantino Martins

  12. Tipos de variáveis • Não precisam de serem declaradas • Tipo da variável decidido em “runtime” pelo PHP, dependo do contexto em que é usada Constantino Martins

  13. Tipos de variáveis • Inteiros: $a=123456; $a=-1221212; • Float $a = 1.234; $a = 1.2e3; Constantino Martins

  14. Tipos de variáveis - string • Limitada por duas maneiras: • “ • ‘ (neste caso as variáveis não serão “expandidas”) • Nota: • Uso “\” para “escapes” Constantino Martins

  15. Tipos de variáveis - strings • Exemplos: • Atribuição $string = “É uma string"; • /* Appending to it . */ $string = $string . " com mais strings"; • /* Outra maneira */ $string .= " mais coisas.\n"; Constantino Martins

  16. Tipos de variáveis • Outro exemplo $num = 9; $string = "<p>Number: $num</p>"; Resultado: string =<p>Number: 9</p> • /* Mais um exemplo*/ $num = 9; $string = '<p>Number: $num</p>'; Resultado: string= <p>Number: $num</p> • /* último exemplo */ $string = ‘É um teste.'; $first = $string[0]; Constantino Martins

  17. Tipos de variáveis - vectores $a[0]=“abc”; $a[1]=“cba”; $a[]=“ole”; /* ole fica automaticamente na posição a[2] */ Constantino Martins

  18. FORMS <form action="action.php" method="POST"> Nome: <input type=text name=nome><br> Idade: <input type=text name=idade><br> <input type=submit> </form> action.php: Hello <? echo $nome; ?>. A sua idade é <? echo $idade; ?> Constantino Martins

  19. FORMS action.php: <? if ($nome!=“” && $idade!=“”) { ?> Hello <? echo $nome; ?>. A sua idade é <? echo $idade; } else { ?> <form action="action.php" method="POST"> Nome: <input type=text name=nome><br> Idade: <input type=text name=idade><br> <input type=submit> </form> <? } ?> Constantino Martins

  20. FORMS – uma dica <form action="action.php" method="POST"> <select multiple name=equipas[]> <option>FCP <option>SLB<option>SCP<option>BOAVISTA </select><input type=submit></form> action.php: <? echo “Seleccionou:<br>"; $tamanho=sizeof($equipas); $i=0; while ($i<$tamanho) { echo “equipas[$i] <br>;” } ?> Constantino Martins

  21. Mail • Sintaxe: bool mail(string to, string subject, string message, string [additional_headers]); • Exemplo: mail(“const@dei.isep.ipp.pt", “Dúvidas", “ola 1\n ole 2\n oli 3"); Constantino Martins

  22. Funções • Declaração de funções: <? function exemplo($var1, $var2) { echo “var1=$var1 <br>var2=$var2”; }?> • Chamada de funções: <? $envia1=“ola”; $envia2=“ola2”; exemplo($envia1,$envia2); ?> Constantino Martins

  23. Funções <? $a = 1; $b = 2; Function Sum () { global $a, $b; $b = $a + $b; } Sum (); echo $b; ?> Constantino Martins

  24. Execução de comandos • $output = `ls -al`; echo "<pre>$output</pre>"; • system(), passthru(), exec(), popen(), and escapeshellcmd(). Constantino Martins

  25. Instruções - tudo “a la” C • if • while • switch • Etc... Constantino Martins

  26. Includes Permite incluir files <? // includes assim podemos ter todos o mesmo layout etc.... include ("cabecalho.php"); include ("pesquisa1.php"); include ("rodape.html"); ?> Nota: Ver também require Constantino Martins

  27. Database support • Quase todas: • Adabas D, InterBase, Solid, dBase, mSQL, Sybase, Empress, MySQL, Velocis, FilePro, Oracle, Unix dbm, Informix, PostgreSQL • Vamos falar do MySQL Constantino Martins

  28. MySQL – ligação a base de dados • int mysql_connect(string [hostname [:port] [:/path/to/socket] ] , string [username] , string [password] ); Returns: A positive MySQL link identifier on success, or false on error. • Exemplo: <? $lig=mysql_connect(“”,”const”,”os meu alunos gostavam de saber”); mysql_close($lig); // fechar ligação ?> Constantino Martins

  29. MySQL • Seleccionar base de dados – int mysql_select_db(string database_name, int [link_identifier] ); Returns: true on success, false on error • Executar uma query – int mysql_query(string query, int [link_identifier] ); • Ver números de resultados - int mysql_num_rows(int result); • Mostrar resultados - object mysql_fetch_object(int result, int [result_typ]); Constantino Martins

  30. MySQL - exemplo pesquisa numa tabela <? /* connect a BD */ $lig=mysql_connect(“”,”const”,”os meu alunos gostavam de saber”); /* seleccionar BD */ mysql_select_db(“nome da BD”) /* executar query */ $query=“select * from tabela”; $result=mysql_query($query); /* ver números de resultados */ $numero=mysql_num_rows($result); Constantino Martins

  31. MySQL - exemplo pesquisa numa tabela $i=0; While($i<$numero) { if ($row=msql_fetch_object($result)) { echo “$row->nomecoluna<br>etc .....”; } $i++; } /* Free result memory */ mysql_free_result($result); /* fechar ligação */ mysql_close($lig); ?> Constantino Martins

  32. MySQL - exemplo inserir numa tabela <? /* connect a BD */ $lig=mysql_connect(“”),”const”,”os meu alunos gostavam de saber”); /* seleccionar BD */ mysql_select_db(“nome da BD”) /* executar query */ $query=“insert into ....etc”; $result=mysql_query($query); /* fechar ligação */ mysql_close($lig); ?> Constantino Martins

  33. Autenticação - alguns exemplos • Base de dados • HTTP – com PHP • Cookies • .htaccess do linux Constantino Martins

  34. Autenticação- exemplo • <?php if(!isset($PHP_AUTH_USER)) { Header("WWW-Authenticate: Basic realm=\"My Realm\""); Header("HTTP/1.0 401 Unauthorized"); echo "Text to send if user hits Cancel button\n"; exit; } else { echo "Hello $PHP_AUTH_USER.<P>"; echo "You entered $PHP_AUTH_PW as your password.<P>"; } ?> Constantino Martins

  35. Session • int setcookie(string name, string value, int expire, string path, string domain, int secure); • Iniciar session usar session_start() e para registar variáveis nesta sessão usar session_register(). Constantino Martins

  36. Session • Exemplo: <? SetCookie(‘dei',‘const'); ?> <? session_start(); session_register(‘var'); $var = 'Hello World'; ?> Constantino Martins

  37. Session • Para verificar se uma função foi registada usar session_is_registered(): <? if (!session_is_registered("my_var")) { session_register("my_var"); } • Nota: consultar outras funções Constantino Martins

  38. uploads • <FORM ENCTYPE="multipart/form-data" ACTION="_URL_" METHOD=POST> <INPUT TYPE="hidden" name="MAX_FILE_SIZE" value="1000"> Send this file: <INPUT NAME="userfile" TYPE="file"> <INPUT TYPE="submit" VALUE="Send File"> </FORM> Constantino Martins

  39. uploads • <? copy($PHP_UPLOADED_FILE_NAME,$DOCUMENT_ROOT.$REQUEST_URI); ?> Constantino Martins

  40. Phpinfo(); • phpinfo(): “ Outputs a large amount of information about the current state of PHP. This includes information about PHP compilation options and extensions, the PHP version, server information and environment (if compiled as a module), the PHP environment, OS version information, paths, master and local values of configuration options, HTTP headers, and the GNU Public License. “ • <? phpinfo(); ?> Constantino Martins

  41. Variáveis do sistema <? $REMOTE_ADDR = getenv("REMOTE_ADDR"); $HTTP_REFERER = getenv("HTTP_REFERER"); $DOCUMENT_URI = getenv("REQUEST_URI"); $HTTP_USER_AGENT = getenv("HTTP_USER_AGENT"); $REMOTE_HOST = gethostbyaddr($REMOTE_ADDR); $HTTP_USER_AGENT = str_replace("|", "", $HTTP_USER_AGENT); $REMOTE_HOST1 = strtolower("$REMOTE_HOST"); echo "$REMOTE_ADDR<br>"; echo "$HTTP_USER_AGENT<br>"; echo "$REMOTE_HOST1<br>"; echo "outra solucao=$REMOTE_HOST<br>"; ?> Constantino Martins

  42. LINKS • Home Page: http://www.php.net • Manual: http://www.php.net/manual/ • Tutorial: • http://www.php.net/tut.php • Books: http://www.php.net/books.php • Hotscripts: http://www.hotscripts.com/ Constantino Martins

More Related