Este material pertence a Carlos A. Majer, Professor da Unidade Curricular: Aplicações Corporativas da
Universidade Cidade de São Paulo – UNICID
Licença de Uso
Este trabalho está licenciado sob uma Licença Creative Commons Atribuição-Vedada a Criação de Obras
Derivadas 2.5 Brasil. Para ver uma cópia desta licença, visite http://creativecommons.org/licenses/by-
nd/2.5/br/ ou envie uma carta para Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305,
USA.
Este material não pode ser alterado. Para maiores informações envie um e-mail para
cmajer@uol.com.br ou cmajer@ig.com.br.
PHP
PHP: Hypertext Processor
<html>
<head>
<title>PHP</title>
</head>
<body>
<h1>PHP</h1>
<p>UNICID tem <?php echo strlen('UNICID') . ' letras';?> </p>
</body>
</html>
Introdução
Um SCRIPT é um conjunto de instruções ou comandos, também chamado de programa, baseados numa
determinada linguagem (PHP, Javascript, etc), que executam certas operações.
Agindo geralmente de forma automática, estes programas caracterizam-se por sua necessidade de
interpretação por um software (em geral um servidor web ou navegador), diferentemente dos programas
que precisam ser compilados e ligados (link-editados). Conforme o tipo de script, ele pode ser executado no
servidor ou no micro cliente.
O PHP caracteriza-se por ser uma linguagem de script. Ela supre uma necessidade que existe na linguagem
baseada em marcas HTML, principalmente no que diz respeito às limitações que advém do caráter estático
do HTML.
A linguagem PHP é open source, o que significa que pode ser utilizada sem o pagamento de royalties à
terceiros. Ela caracteriza-se por ser uma linguagem que é primeiramente executada (processada) num
servidor web (computador que roda um ambiente que recebe solicitações para acesso às páginas HTML)
para em seguida disponibilizar a página resultante ao usuário solicitante.
Resumindo, a página PHP não é executada no navegador do usuário e sim no servidor onde a mesma está
hospedada.
Seu navegador não entende PHP. Apenas HTML, algumas linguagens de script (Javascript, Vbscript,
etc) e CSS
Enquanto as páginas HTML provêm limitada funcionalidade, a inserção do PHP expande os limites desta
tecnologia, trazendo grande número de vantagens e amadurecendo o desenvolvimento através de
programação dinâmica.
O PHP tem evoluído constantemente e traz cada vez mais facilidades no desenvolvimento de sites.
Atualmente, diversas bibliotecas foram disponibilizadas ao PHP contribuindo para enriquecer esta linguagem.
PHP é muito utilizado para manipulação de banco de dados, processamento dinâmico, manipulação de
imagens, dentre outras possibilidades.
Funcionamento
O desenvolvedor pode criar uma página feita toda em PHP ou mesclá-la com HTML, ou seja, inserindo
comandos dentro do HTML.
A linguagem PHP pode então ser embutida dentro do código HTML e o servidor PHP processa apenas o
código PHP (ignorando o HTML), inserindo o resultado deste processamento no lugar dos comandos PHP
(em formato HTML), de forma a gerar uma página HTML final que será enviada ao cliente (navegador do
usuário).
Esta página final é a mesma dos comandos em HTML existentes anteriormente junto com o resultado
processado pelo servidor PHP.
Extrapolando Limites
Certos limites do HTML podem ser claramente verificados:-
• Imagine a quantidade de trabalho necessária na criação das páginas de um grande conjunto de
informações, como por exemplo, um catálogo de peças de uma grande empresa.
• Além de trabalhoso, também é muito difícil controlar a manutenção deste conjunto de páginas,
especialmente quando existem diferentes regras de negócio aplicadas na exibição das páginas
• Seria muito complexo efetuar uma mudança de contextos (exemplo: conforme login de usuário, site
apresentaria um conjunto de informações para cliente e outro para administrador)
Formas de Utilização
Um comando ou conjunto de comandos PHP deve ser inserido dentro das seguintes marcas específicas:-
1) Forma Tradicional:-
<?php comando php; ?>
Conhecido como short tag, este é um tipo de marca muito utilizado pelos desenvolvedores.
Para que o interpretador PHP consiga entender estas instruções, é necessário que o arquivo PHP.INI seja
devidamente configurado.
Para garantir a máxima portabilidade e funcionalidade, utilize o conjunto de marcas <?php ?>.
PHP e HTML
Uma vez criada, a página PHP é armazenada no SERVIDOR. A página é processada (interpretada) no
Servidor e o código resultante em HTML é enviado ao navegador.
O navegador recebe apenas o resultado do código interpretado, ou seja, apenas aquilo que ele consegue
entender (HTML, Javascript, CSS, etc).
Exemplo:-
<html>
<head>
<title>Primeira Pagina PHP</title>
</head>
<body>
<?php
echo "Isto será inserido na página HTML.";
?>
</body>
</html>
Ao encontrar a marca <?php, o PHP irá processar tudo até encontrar um ponto e virgula ; , que finaliza
o processamento PHP.
A marca de fechamento ?> é opcional. Quando esta marca não é inserida, o desenvolvedor pode incluir
outros arquivos (include/require) no código PHP.
Outra forma de se iniciar um código PHP é através de sua forma curta <?, ou seja, não sendo necessário
inserir o texto php.
Caixa Alta ou Caixa Baixa?
O desenvolvedor deve se preocupar com maiúsculos e minúsculos, uma vez que o PHP é sensível a caixa.
Inserindo Comentários
Comentar o código é uma atividade que todo desenvolvedor deve seguir. Para isto, o PHP provê a
possibilidade de comentário por linha ou por bloco.
<?
# Esta linha é um comentário
echo 'Teste';
?>
Tipos de Dados
Segue uma relação de alguns tipos de dados disponíveis pelo PHP:-
Variáveis
A criação de variáveis no PHP segue a seguinte regra: Todas as variáveis devem ser precedidas do símbolo
$ (Dólar ou cifrão). Em seguida deve vir uma letra ou o caractere de sublinhado, para em seguida qualquer
letra, número ou caractere de sublinhado. Caso após o sinal de $ se insira um número, esta variável está
incorreta.
Exemplos:-
$ativo =FALSE;
$nome='Carlos';
$texto='Isto é um string';
$1teste=123; // Errado
Um uso muito comum do PHP ocorre quando precisamos gravar informações de um formulário numa tabela
de um banco de dados.
Exemplo TESTE1.HTM :-
<html>
<head>
<title>Teste de Formulário</title>
</head>
<body>
<form name="f1" method="get" action="programa.php">
Nome: <input type="text" name="nome"> <br />
<input type="submit" value="Enviar">
</form>
</body>
</html>
O método get determina que as informações dos objetos sejam expostas (e passadas) na área de endereço
do navegador (onde o usuário digita o endereço da página que deseja acessar).
Exemplo:-
programa.php?nome=Carlos
Exemplo:-
<form name="f1" method="post " action="programa.php">
Página Destino – action
O desenvolvedor informa qual é a página que irá receber os objetos do formulário através do atributo action.
É neste local que iremos informar o nome da página PHP.
Podemos utilizar dois tipos de referência ao arquivo que irá receber os objetos do formulário:-
Através de sua URL
Através de uma posição relativa
Quando utilizamos uma URL, devemos informar o caminho completo para se chegar à página.
Exemplo:-
http://www.dominio.com.br/pasta/programa.php
Para utilizarmos um caminho relativo, devemos verificar onde a página destino está localizada, em relação à
página que está chamando-a.
Exemplo:-
Supondo que a página HTML chama-se TESTE1.HTM e está no mesmo diretório (dentro do site) que a
página programa.php. Neste caso, o desenvolvedor pode informar apenas o nome da página (arquivo)
destino que o servidor fará esta busca localmente (internamente).
Caso a página programa.php estivesse numa pasta de nome programas, abaixo do diretório onde
TESTE1.HTM se encontra, então o caminho para acesso à página PHP seria:-
programas/programa.php
Caso o desenvolvedor não informe o atributo name, o objeto não pode ser reconhecido pelo PHP
Em seguida, o desenvolvedor fecha o formulário através do encerramento da marca </form>, bem como
encerra as marcas de corpo </body> e de página HTML </html>
Neste momento, o desenvolvedor tem a página que será a responsável pela criação dos objetos em seu
navegador e que irá enviar estes objetos de formulário para a página destino.
De preferência, salve esta página HTML num local (pasta/diretório) onde exista um servidor web
instalado (Exemplo: Apache).
Exemplo:-
echo $_GET["cidade"];
$nome = $_POST["nome"];
Algo muito comum em PHP é criar variáveis que irão armazenar os valores advindos dos objetos de
formulários PHP. Exemplo:-
$nome = $_POST["nome_cliente"];
$telefone = "(" . $_POST["ddd"] . ") " . $_POST["telefone"];
Objeto do tipo password é igual ao elemento do tipo textbox, sendo que ao ser digitado seu
conteúdo, asteriscos irão aparecer no lugra das letras.
Objeto do tipo hidden (escondido) mantém o seu valor, mas não é exibido ao usuário na página
HTML (tela do navegador)
Quando um objeto deste tipo não está checado na página HTML, ele simplesmente não é enviado para a
página destino. Sendo assim, se o desenvolvedor tentar acessar/checar seu valor na matriz $_GET ou
$_POST, ele recebe um erro de execução, porque este objeto não existe (não foi enviado).
Exemplos:-
Quando o objeto é checado, o formulário PHP pode se deparar com dois possíveis valores:-
on É o valor padrão que é enviado pelo formulário, quando o desenvolvedor não utilizou o atributo value
do objeto checkbox.
Para isto cria-se um conjunto de diversos objetos do tipo radio com o mesmo nome (name), mas com
valores (value) diferentes.
Se o desenvolvedor não deixa nenhum dos objetos checado (selecionado) por padrão, ele corre o risco do
usuário não selecionar um dos objetos e desta forma ele precisará verificar no PHP se o objeto está setado.
Detalhes de recebimento de objetos do tipo checkbox e radio
Alguns objetos de formulário, quando não são selecionados (checados) na página HTML, simplesmente não
são enviados para a página destino (PHP). Se o objeto não é enviado, isto significa que ele não existe e
desta forma, qualquer tentativa para acessar seu conteúdo resultará em erro na execução da página. Para
evitar este tipo de problema, o desenvolvedor pode tomar duas ações:-
1) Utilizar o atributo checked na criação de um dos elementos do grupo
2) Utilizar a função isSet que verifica se um objeto foi enviado (e desta forma existe)
Recebendo objetos de uma Lista
Quando o desenvolvedor cria uma lista na página HTML, o que é enviado para o PHP vai depender do
atributo value das opções desta lista.
Caso o desenvolvedor não tenha informado a opção value, o que irá ao PHP será o texto do item inserido.
Caso o atributo value tenha sido informado, então este é o valor que será enviado ao PHP.
Exemplo:-
http://localhost/TipoLista.php?estCivil=Separado&estCivil2=Solteiro&estCivil3=S
Recebendo objetos Listas com múltiplos valores
Para se trabalhar com lista de múltiplos valores, o usuário deverá habilitar o atributo multiple da lista, na
página HTML. Será conveniente também que ele defina o tamanho visual da lista através do atributo size.
Para se trabalhar com múltiplos valores numa lista, o atributo name deverá ser uma matriz, ou seja, o
desenvolvedor deve colocar o nome da matriz seguido de []. Isto fará com que o PHP interprete o objeto
como um vetor, inserindo os valores que recebe neste objeto, possibilitando o acesso a todos os valores
escolhidos pelo usuário. Exemplo:-
No programa PHP, o desenvolvedor poderá utilizar a estrutura de laço de repetição for, em conjunto com a
função sizeof (que retorna o tamanho de um vetor/matriz) para poder acessar todos os itens do vetor/matriz
recebido. Exemplo:-
$tam=sizeof($_GET['carros']) ;
for($n=0 ; $n< $tam ; $n++)
{
echo $_GET['carros'][$n] . '<br>';
O atributo enctype lida com a forma pela qual o conteúdo será transmitido de uma ponta a outra. Seu valor
padrão é application/x-www-form-urlencoded e é o mais utilizado para os diversos tipos de envio de
dados, com exceção quando se envia um arquivo. Neste caso, para enviar um arquivo, o desenvolvedor
deve escolher o valor multipart/form-data para o atributo enctype.
Exemplo:-
<form action="TipoArquivo.php" method="post" name="F1"
enctype="multipart/form-data">
Escolha o arquivo<br>
<input type="file" id="arquivo" name="arquivo">
<input type="submit" value="Enviar">
</form>
Quando o servidor recebe o formulário, os dados podem ficar na matriz $_GET ou $_POST, mas quando se
recebe arquivos (upload), suas informações ficam na variável $_FILES, que é a matriz que mantêm os
dados de arquivos recebidos.
Para versões anteriores do PHP, a matriz que recebe tais valores é a $HTTP_POST_FILES.
Ao final do processamento do script PHP, o arquivo existente na pasta temporária é simplesmente eliminado.
Movendo o arquivo para sua pasta final
O arquivo que é recebido é armazenado numa pasta temporária até o termino de execução do script PHP.
Assim que o mesmo finalizar, este arquivo (temporário) é eliminado.
Nossa tarefa, como desenvolvedor é transferir o arquivo à pasta de arquivos recebidos antes do término da
execução do script PHP. Para isto, utilizamos a função move_uploaded_file().
if (move_uploaded_file($_FILES['arquivo']['tmp_name'], 'uploads/'
. _FILES['arquivo']['name']))
echo "Arquivo ". basename( $_FILES['arquivo']['name']). "
recebido com sucesso";
else
echo "Houve algum problema no recebimento do arquivo";
Para restringir o tipo de arquivo a ser recebido, verifique o elemento type da matriz. Exemplo:-
if ($_FILES["arquivo"]["type"] != 'image/jpeg')
echo "Tipo inválido de arquivo";
// Parte 2
$pasta_destino = "uploads/";
$pasta_destino .= $_FILES["arquivo"]["name"];
if (move_uploaded_file($_FILES["arquivo"]["tmp_name"] ,
$pasta_destino))
echo "Arquivo <strong>" . $_FILES["arquivo"]["name"]
. "</strong> recebido com sucesso";
else
echo "Ocorreu algum erro no recebimento do Arquivo "
. $_FILES["arquivo"]["name"];
}
?>
</body>
Configurando o PHP.INI
Algumas configurações do PHP.INI são importantes para que o upload de arquivos funcione de forma
adequada.
Uma delas é a seção file_uploads que deve estar com o valor On ou 1 para receber arquivos
file_uploads = On
Outra é o nome do diretório temporário que armazenará os arquivos recebidos (se não for especificado
utilizará o padrão do sistema):-
upload_tmp_dir = "${path}\tmp\"
Arrays
Array é o nome inglês para um tipo de objeto composto por uma coleção de dados. Esta coleção de dados,
que pode ser de uma dimensão (vetor) ou de várias dimensões (matrizes), pode conter diferentes tipos de
dados.
Irei utilizar a denominação matriz (es) para referenciar este tipo de objeto.
Criando Matrizes
Uma das formas de se criá-las é através da função array(). Exemplo:-
Resultado
Array ( [0] => Polo [1] => Fiesta [2] => Mercedes )
Notem que o PHP inseriu automaticamente os valores dentro da matriz utilizando índices numéricos
seqüenciais.
Exemplo:-
<?php
$frutas = array ('a' => 'Abacate', 'b' =>'Banana','c' =>
'Carambola');
print_r ($frutas);
?>
Resultado:-
Array ( [a] => Abacate [b] => Banana [c] => Carambola )
Exemplo de Meses:-
<?php
$meses = array(7 => 'Janeiro', 'Fevereiro', 'Março', 'Abril',
'Maio', 'Junho', 'Julho', 'Agosto', 'Setembro', 'Outubro',
'Novembro', 'Dezembro');
print_r($meses);
?>
Resultado:-
Array ( [7] => Janeiro [8] => Fevereiro [9] => Março [10] => Abril [11] => Maio
[12] => Junho [13] => Julho [14] => Agosto [15] => Setembro [16] => Outubro [17]
=> Novembro [18] => Dezembro )
Uma item de uma matriz pode ter mais do que uma dimensão:-
<?php
$frutas = array ('c' => 'Carambola', 'b' =>'Banana', 'a' =>
array ('Abacate', 'Abacaxi', 'Ameixa'));
print_r ($frutas);
?>
Resultado:-
Array ( [c] => Carambola [b] => Banana [a] => Array ( [0] => Abacate [1] =>
Abacaxi [2] => Ameixa ) )
Alguns exemplos:-
Arquivo Carros.php
Matriz 1 - Carros
<html>
<head>
<title>Matriz de Carros</title>
</head>
<body>
<?php
$carros= array("Polo", "Fiesta","Mercedes");
print_r($carros);
?>
</body>
</html>
Arquivo Frutas.php
<html>
<head>
<title>Matriz de Frutas</title>
</head>
<body>
<?php
$frutas = array ('a' => 'Abacate', 'b' =>'Banana','c' =>
'Carambola');
print_r ($frutas);
?>
</body>
</html>
Arquivo Frutas2.php
<html>
<head>
<title>Matriz 2</title>
</head>
<body>
<?php
$frutas = array ('c' => 'Carambola', 'b' =>'Banana', 'a' =>
array ('Abacate', 'Abacaxi', 'Ameixa'));
print_r ($frutas);
?>
</body>
</html>
Arquivo Deptos.php
<html>
<head>
<title>Matriz de Departamentos e Empregados</title>
</head>
<body>
<?php
$departamento[0] = "financeiro";
$departamento[1] = "producao";
$departamento[2] = "rh";
$departamento[3] = "comercial";
$empregados["financeiro"] = 5;
$empregados["producao"] = 32;
$empregados["rh"] = 3;
$empregados["comercial"] = 15;
?>
</body>
</html>
Arquivo Deptos2.php
<html>
<head>
<title>Matriz 2 de Departamentos e Empregados</title>
</head>
<body>
<?php
$departamento[0] = "financeiro";
$departamento[1] = "producao";
$departamento[2] = "rh";
$departamento[3] = "comercial";
sort($departamento);
print "Os departamentos da empresa em ordem alfabética são:-<br>";
rsort($departamento);
print "<br>Os departamentos da empresa em ordem reversa são:-
<br>";
?>
</body>
</html>
Arquivo Deptos3.php
<html>
<head>
<title>Matriz 3 de Departamentos e Empregados</title>
</head>
<body>
<?php
$departamento['C'] = "financeiro (C)";
$departamento['D'] = "producao (D)";
$departamento['A'] = "rh (A)" ;
$departamento['B'] = "comercial (B)";
sort($departamento);
print "Os departamentos da empresa em ordem alfabética são:-<br>";
arsort($departamento);
print "<br>Os departamentos da empresa em ordem da chave são:-
<br>";
?>
</body>
</html>
Arquivo Deptos4.php
<html>
<head>
<title>Matriz 4 de Departamentos e Empregados</title>
</head>
<body>
<?php
$departamento[0] = "financeiro";
$departamento[1] = "producao";
$departamento[2] = "rh";
$departamento[3] = "comercial";
$empregados["financeiro"] = 5;
$empregados["producao"] = 32;
$empregados["rh"] = 3;
$empregados["comercial"] = 15;
sort($departamento);
print "Os departamentos da empresa em ordem alfabética são:-<br>";
for ($n=0;$n<sizeof($departamento);$n++)
{
echo 'Departamento ' . $departamento[$n].' tem ' .
$empregados[$n] . ' empregados <br>';
}
?>
</body>
</html>
Arquivo Deptos5.php
<html>
<head>
<title>Matriz 5 de Departamentos e Empregados</title>
</head>
<body>
<?php
$departamento[0] = "financeiro";
$departamento[1] = "producao";
$departamento[2] = "rh";
$departamento[3] = "comercial";
$empregados[0] = 5;
$empregados[1] = 32;
$empregados[2] = 3;
$empregados[3] = 15;
sort($departamento);
print "Os departamentos e empregadossão:-<br>";
for ($n=0;$n<sizeof($departamento);$n++)
{
echo 'Departamento ' . $departamento[$n] .' tem ' .
$empregados[$n] . ' empregados <br>';
}
?>
</body>
</html>
Arquivo Meses.php
<html>
<head>
<title>Matriz de Meses</title>
</head>
<body>
<?php
$meses = array(7 => 'Janeiro', 'Fevereiro', 'Março', 'Abril',
'Maio', 'Junho', 'Julho', 'Agosto', 'Setembro', 'Outubro',
'Novembro', 'Dezembro');
print_r($meses);
?>
</body>
</html>
PHP e MYSQL
O PHP contém funções para acesso a diversos bancos de dados.
O MYSQL é um dos bancos de dados mais utilizado por quem desenvolve PHP.
Conectando a um servidor
O momento inicial e diríamos primeiro passo para se recuperar informações de um banco de dados MYSQL é
a conexão com o servidor MYSQL.
Quando um usuário acessa o MYSQL, através de seu prompt em tela MS-DOS, ele informa uma linha de
comando similar à seguinte:-
Onde usuário é a identificação de um usuário válido no MYSQL e senha é a senha deste usuário.
Logo após uma instalação padrão, o usuário root é criado, podendo sua senha não ser cadastrada.
Exemplo:-
O PHP permite o acesso ao MYSQL através de uma função específica para este fim.
Função mysql_connect
Protótipo
mysql_connect( <Nome do Servidor> , <Usuário>, <Senha>);
Exemplo
$conexao = mysql_connect("localhost","root","");
Retorno
Esta função retorna um objeto de conexão com o servidor ou FALSO caso não consiga conectar no servidor
informado.
Em caso de problemas ela seta o controle de erro interno do MYSQL que pode ser acessado pela função
mysql_error() (explicado adiante)
Detalhe
No exemplo acima, esta função conecta a máquina cliente ao Servidor MYSQL, de nome localhost, utilizando
a identificação de usuário root, com senha em branco.
O resultado da conexão é passado ao objeto de nome $conexao que tem seu valor setado em FALSO caso
não se consiga executar a conexão.
Este é o primeiro passo quando se deseja recuperar informações de um banco de dados do MYSQL.
Função mysql_select_db
Protótipo
mysql_select_db ( <Nome do Banco de Dados> , <Objeto de Conexao>);
Exemplo
$banco = mysql_select_db("sistema",$conexao);
Retorno
Esta função retorna um objeto de conexão com o Banco de Dados informado ou FALSO caso não consiga
conectar no banco de dados informado.
Em caso de problemas ela seta o controle de erro interno do MYSQL que pode ser acessado pela função
mysql_error() (explicado abaixo)
Detalhe
No exemplo acima, esta função conecta a máquina cliente ao Banco de Dados de nome sistema, que existe
no Servidor informado por $conexao.
Caso o usuário não informe o objeto de conexão ($conexao), o MYSQL utilizará a última conexão aberta com
o servidor (neste caso, com o localhost).
O resultado da conexão é passado ao objeto de nome $banco que tem seu valor setado em FALSO caso não
se consiga executar a conexão.
Este é o segundo passo quando se deseja recuperar informações de um banco de dados do MYSQL.
Você também pode utilizar este comando e variar apenas o Servidor de Conexão, de forma a conectar em
mais do que um servidor, para troca de dados entre bancos de dados, por exemplo.
Função mysql_query
Protótipo
$resultado = mysql_query(<String SQL> , <Objeto de Conexão>);
Exemplo
$comandoSQL="SELECT * FROM usuarios";
$resultado = mysql_query($comandoSQL,$conexao);
Retorno
Esta função retorna um objeto de resultado de query/pesquisa no Banco de Dados informado ou FALSO caso
não consiga executar a query no banco de dados informado.
Em caso de problemas ela seta o controle de erro interno do MYSQL que pode ser acessado pela função
mysql_error() (explicado adiante)
Detalhe
No exemplo acima, esta função executa a query de seleção de todos os registros da tabela usuarios no
servidor apontado pelo objeto $conexao.
Caso o usuário não informe o objeto de conexão ($conexao), o MYSQL utilizará a última conexão aberta com
o servidor (neste caso, com o localhost).
O resultado da conexão é passado ao objeto de nome $resultado que tem seu valor setado em FALSO caso
não se consiga executar a conexão.
No caso específico deste exemplo que seleciona registros de uma tabela, o objeto $resultado conterá os
nomes dos atributos (campos) da tabela usuários, bem como as linhas (registros) com seus valores.
Este é o terceiro passo quando se deseja recuperar informações de um banco de dados do MYSQL.
Explicação Complementar
No exemplo aplicado acima, o conteúdo que este objeto irá armazenar será todos os nomes de campos da
tabela usuarios, como também seus valores (linhas/registros).
No exemplo acima, podemos entender que este objeto contém os nomes dos campos/atributos da tabela
usuarios (id, senha e nome), seus tipos e tamanhos. Este objeto também armazena os valores das duas
linhas (registros) encontradas na tabela, que neste caso são:-
{Majer, 123,Carlos Majer} e {Ana, abc, Ana Travassos}
Função mysql_num_rows
Protótipo
mysql_num_rows(<Objeto de Resultado de Consulta MYSQL>);
Exemplo
$numeroLinhas = mysql_num_rows($resultado);
Retorno
Esta função retorna o número de linhas (registros) existente dentro de um objeto que armazena o resultado
de uma consulta MYSQL.
Em caso de problemas ela seta o controle de erro interno do MYSQL que pode ser acessado pela função
mysql_error() (explicado adiante)
Detalhe
Caso o comando de seleção retorne 0 (zero) é porque não existem registros que satisfaçam à STRING de
pesquisa SQL informada.
Este é o quarto passo quando se deseja recuperar informações de um banco de dados do MYSQL.
Função mysql_result
Protótipo
mysql_result(<Objeto de Resultado MYSQL>, <Linha>, <Atributo>);
Exemplo
$valor = mysql_result($resultado,0,'senha');
Retorno
Esta função retorna o conteúdo da linha/campo informado.
Como explicado no exemplo anterior, temos um objeto de nome $resultado que contém o que foi lido da
tabela usuarios. A função mysql_result nos permite ler o conteúdo das linhas/registros desta tabela.
Para isto, devemos informar a linha (começa por zero) e o campo desejado. Exemplo:-
$valor = mysql_result($resultado,1,'nome');
Utilizei $valor como nome de variável para armazenar o dado resultante (que é "Ana Travassos"). Poderia
ter usado outro nome de variável.
Tive que informar 1, no segundo parâmetro, pois a primeira linha é a linha 0, e a segunda linha é a linha 1.
Login de Usuário
Abaixo disponibilizo um exemplo completo de funcionamento de Identificação de Usuário.
Detalhe
Nenhum tipo de consistência está sendo feito nesta página.
<body>
<form name="frmLogin" method="post" action="loginBasico.php">
<tr>
<td>
<p>
<strong>Área exclusiva para
usuários cadastrados.</strong>
</p>
<p> Usuário<br>
<input type="text" name="id" id="id">
<br> <br>
Senha<br>
<input type="password" name="senha" id="senha">
<br><br>
<input type="submit" name="Submit" value="OK">
</p>
</td>
</tr>
</table>
</form>
</body>
</html>
Página loginBasico.php
Último Acesso
2007-10-23
No. de Entradas:
39
Código PHP (O que está precedido por duas barras e em negrito é comentário):-
<html>
<head>
<title>PHP - Login do Usuário</title>
</head>
<body>
<?php
// 1o. Passo - verificar se o usuário enviou ID e SENHA
if($_POST['id']=='' || $_POST['senha']=='')
{
echo '<script> history.go(-1); alert("Informe Usuário e
Senha !");</script>';
}
// 2o. Passo - vamos criar uma conexão com o MYSQL
$conn = mysql_connect("localhost","root","");
// die($comandoSQL);
$resultado = mysql_query($comandoSQL,$conn);
if (!$resultado)
die("Execução de consulta gerou o seguinte erro no MYSQL
-->" . mysql_error());
if(mysql_num_rows($resultado)==0)
{
echo '<script> history.go(-1); alert("ID não
encontrado!");</script>';
}
// Vamos checar ?
if (mysql_result($resultado,0,'senha')!=$_POST['senha'])
{
echo '<script> history.go(-1); alert("Senha Incorreta
!");</script>';
}
echo '<p>[DEBUG] ==> Senha Passada:' .
mysql_result($resultado,0,'senha') . '<br></p>';
// 6 - Exibir os dados desejados
// Podemos agora exibir certos dados, dentre eles o nome,
// número de acessos e data de último acesso.
// WHERE login='Carlos'
$atualizacao = mysql_query($comandoSQL,$conn);
if (!$atualizacao)
echo 'Erro na atualizacão de registro do usuário:
'.mysql_error();
else
echo '<script> alert("Seja bem vindo(a) ' .
mysql_result($resultado,0,'nome') . '");</script>';
echo 'Aqui vai a parte trabalhada:-<br>' ;
?>
<HR>
<strong>ACESSO À AREA RESTRITA</strong>
<br> <br>
No. de Entradas:<br>
<?php
echo mysql_result($resultado,0,'numAcessos');
?>
<br><br>
Seja bem vindo(a) à área reservada.
</p>
</body>
</html>