constantino martins php constantino martins dei – departamento de engenharia informática isep -...
TRANSCRIPT
Constantino Martins
PHP
Constantino MartinsDEI – Departamento de Engenharia Informática ISEP - Instituto Superior Engenharia Do Porto
Constantino Martins
Í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
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
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
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
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
Tipos de Tags
<? codigo PHP ?> <?php codigo PHP ?> <% codigo PHP %> <script language="php"> codigo PHP
</script>
Constantino Martins
PHP embebido com HTML<?Codigo PHP?>Codigo HTML<?Codigo PHP?>Codigo HTML<?Codigo PHP?>Etc....
Constantino Martins
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
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
Tipos de Comentários
<?// primeira /* segunda */# vamos embora??>
Constantino Martins
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
Tipos de variáveis
Inteiros:$a=123456; $a=-1221212;
Float$a = 1.234; $a = 1.2e3;
Constantino Martins
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
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
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
Tipos de variáveis - vectores
$a[0]=“abc”;$a[1]=“cba”;$a[]=“ole”; /* ole fica
automaticamente na posição a[2] */
Constantino Martins
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
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
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
Mail Sintaxe:bool mail(string to, string subject, string
message, string [additional_headers]);
Exemplo:mail(“[email protected]",
“Dúvidas", “ola 1\n ole 2\n oli 3");
Constantino Martins
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
Funções
<?$a = 1; $b = 2; Function Sum () {
global $a, $b; $b = $a + $b;
} Sum (); echo $b;?>
Constantino Martins
Execução de comandos
$output = `ls -al`; echo "<pre>$output</pre>";
system(), passthru(), exec(), popen(), and escapeshellcmd().
Constantino Martins
Instruções - tudo “a la” C
if while switch Etc...
Constantino Martins
IncludesPermite 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
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
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
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
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
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
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
Autenticação - alguns exemplos
Base de dados
HTTP – com PHP
Cookies
.htaccess do linux
Constantino Martins
Autenticação- exemplo <?php if(!isset($PHP_AUTH_USER)) {
Header("WWW-Authenticate: Basicrealm=\"My Realm\""); Header("HTTP/1.0 401Unauthorized"); echo "Text to send if user hitsCancel button\n"; exit;
} else { echo "Hello $PHP_AUTH_USER.<P>"; echo "You entered $PHP_AUTH_PW as yourpassword.<P>"; } ?>
Constantino Martins
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
Session
Exemplo:<?SetCookie(‘dei',‘const');?> <?session_start(); session_register(‘var'); $var = 'Hello World'; ?>
Constantino Martins
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
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
uploads
<? copy($PHP_UPLOADED_FILE_NAME,$DOCUMENT_ROOT.$REQUEST_URI); ?>
Constantino Martins
Phpinfo(); phpinfo(): “ Outputs a large amount of information about the current
state of PHP. This includesinformation about PHP compilation options and extensions,
the PHP version, serverinformation and environment (if compiled as a module), the
PHP environment, OS versioninformation, paths, master and local values of configuration
options, HTTP headers, andthe GNU Public License. “
<? phpinfo(); ?>
Constantino Martins
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
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/