Í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
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.
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 2000-2004
Versão 5: 2004-Actualidade
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
Primeiro programa – hello world
FILE.php:
Example
Output:
Hello world!
O código PHP é delimitado por tags iniciais e finais que lhe permite sair e entrar no PHP.
Tipos de Tags
<% codigo PHP %>
codigo PHP
PHP embebido com HTML
Codigo PHP
?>
Codigo HTML
Codigo PHP
?>
Codigo HTML
Codigo PHP
?>
Etc….
Exemplo
if(strstr($HTTP_USER_AGENT,”MSIE”)) {
?>
You are using Internet Explorer
You are not using Internet Explorer
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
\n”;
}
?>
Tipos de Comentários
// primeiro
/* segundo */
# terceiro
?>
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
Tipos de variáveis
Inteiros:
$a=123456; $a=-1221212;
Float
$a = 1.234; $a = 1.2e3;
Tipos de variáveis – string
Limitada por duas maneiras:
“
‘ (neste caso as variáveis não serão “expandidas”)
Nota:
Uso “\” para “escapes”
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”;
Tipos de variáveis
Outro exemplo
$num = 9;
$string = “
Number: $num
“;
Resultado: string =
Number: 9
/* Mais um exemplo*/
$num = 9;
$string = ‘
Number: $num
‘;
Resultado: string=
Number: $num
/* último exemplo */
$string = ‘É um teste.’;
$first = $string[0];
Tipos de variáveis – vectores
$a[0]=“abc”;
$a[1]=“cba”;
$a[]=“ole”; /* ole fica automaticamente na posição a[2] */
FORMS
Nome:
Idade:
action.php:
Hello .
A sua idade é
FORMS
action.php:
Hello .
A sua idade é
Nome:
Idade:
FORMS – uma dica
BAR RMATMATB
action.php:
echo “Seleccionou:
“;
$tamanho=sizeof($equipas);
$i=0;
while ($i<$tamanho) {
echo “equipas[$i]
;”
}
?>
Mail
Sintaxe:
bool mail(string to, string subject, string message, string [additional_headers]);
Exemplo:
mail(“alguem@mail.pt”, “Dúvidas”, “ola 1\n ole 2\n oli 3″);
Funções
Declaração de funções:
function exemplo($var1, $var2) {
echo “var1=$var1
var2=$var2”;
}?>
Chamada de funções:
$envia1=“ola”;
$envia2=“ola2”;
exemplo($envia1,$envia2);
?>
Funções
$a = 1; $b = 2;
Function Sum () {
global $a, $b;
$b = $a + $b;
}
Sum ();
echo $b;
?>
Execução de comandos
$output = `ls -al`; echo “
$output
“;
system(), passthru(), exec(), popen(), and escapeshellcmd().
Instruções – Similaridade com o C
if
while
switch
Etc…
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
Database support
Quase todas:
Adabas D, InterBase, Solid, dBase, mSQL, Sybase, Empress, MySQL, Velocis, FilePro, Oracle, Unix dbm, Informix, PostgreSQL
Vamos falar do MySQL
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(“”,””,””);
mysql_close($lig); // fechar ligação
?>
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]);
MySQL – exemplo pesquisa numa tabela
/* connect a BD */
$lig=mysql_connect(“”,””,””);
/* 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);
MySQL – exemplo pesquisa numa tabela
$i=0;
While($i<$numero) {
if ($row=msql_fetch_object($result)) {
echo “$row->nomecoluna
etc …..”;
}
$i++;
}
/* Free result memory */
mysql_free_result($result);
/* fechar ligação */
mysql_close($lig);
?>
MySQL – exemplo inserir numa tabela
/* connect a BD */
$lig=mysql_connect(“”,””,””);
/* seleccionar BD */
mysql_select_db(“nome da BD”)
/* executar query */
$query=“insert into ….etc”;
$result=mysql_query($query);
/* fechar ligação */
mysql_close($lig);
?>
Autenticação – alguns exemplos
Base de dados
HTTP – com PHP
Cookies
.htaccess do linux
Autenticação- exemplo
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.
“;
echo “You entered $PHP_AUTH_PW as your
password.
“; } ?>
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().
Session
Exemplo:
SetCookie(‘isla’,‘alguem’);
?>
session_start();
session_register(‘var’);
$var = ‘Hello World’;
?>
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
uploads
Send this file:
uploads
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. “
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
“;
echo “$HTTP_USER_AGENT
“;
echo “$REMOTE_HOST1
“;
echo “outra solucao=$REMOTE_HOST
“;
?>
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/