Вы находитесь на странице: 1из 4

PHP - Mdulo 3: Funes, Strings e Bancos de Dados

Por Valdir Dias

Depois do script que envia e-mail, vamos fazer um outro que guarde as informaes de um formulrio HTML em um banco de dados. Vamos usar o MySQL como banco de dados. Sugiro que voc d uma olhada no site http://www.tcx.se e leia um pouco sobre este servidor SQL. Vale a pena, pois ele muito bom. Funes As funes no PHP no diferem muito das outras linguagens. Algumas caractersticas das funes: Devem ser declaradas antes de serem usadas. Podem receber parmetros por valor ou por referncia. Podem ter quantidade varivel de parmetros (Apenas a partir da verso 4). Os parmetros podem ser declarados com um valor default. Uma vez definida, uma funo no poder ser "redefinida". Alguns exemplos de funes: /* Esta funo retorna TRUE ou FALSE, dependendo da validade ou no do e-mail informado. */ function verifica_email($email){ if strpos ($email, "@") = 0 { return false; } else { return true; } } /* Neste exemplo calculamos o valor lquido, tendo o valor bruto e o desconto a ser aplicado. Se o desconto no for informado, utilizaremos 10% como padro. */ function valor_liquido($valor_bruto, $desconto = 10) { return ($valor_bruto - ($valor_bruto * $desconto/100)); } Os dois exemplos acima receberam seus parmetros por valor. Isso significa que as alteraes de variveis realizadas dentro da funo s tero efeito no contexto da funo, e estas mudanas no refletiro no resto do script. Em alguns casos pode ser interessante que os valores dos parmetros sejam alterados pela funo, e que seus novos valores reflitam no script como um todo. Para conseguir isto, usamos a tcnica de passagem de parmetro por referncia. Vamos ver um exemplo: function completaURL(&$v_URL) { $v_URL .= "http://".$v_URL; } $URL = "www.ibestmasters.com.br"; completaURL($URL); echo "A URL completa fica assim: $URL\n"; Daqui a pouco vamos ver um pouco mais sobre funes. Strings No mdulo 2, foram vistas algumas operaes com string. Vamos completar com estas, que so muito teis no uso com banco de dados e para formatar a sada HTML: addslashes(str): Esta funo insere uma barra antes dos caracteres ', ", \ e NULL. Deve ser usada para formatar valores que sero inseridos em um banco de dados, pois estes caracteres, em especial o primeiro, podem causar erros no momento da insero Exemplo: $sql = "insert into dados (produto, descricao) values ('".addslashes($prod) . ", '".addslashes($descr). "')"; Usando a funo addslashes teremos certeza que a varivel $sql estar formatada de acordo com a especificao da clusula INSERT

INTO. Se alguma das variveis ($prod ou $descr) possuir acima, a funo cuida de inserir uma barra (\) antes deles, para que a sentena seja entendida pelo banco. htmlspecialchars(string): Funo muito til, pois "traduz" alguns caracteres nos seus equivalentes em HTML, conforme a tabela abaixo Caracter & " & quot; < & lt; > & gt; nl2br(string): Converte os caracteres CRLF, que indicam quebra de linha, em <BR>, que tambm indica quebra de linha, na linguagem HMTL. rawurlencode(string): Formata uma string de acordo com a especificao RFC1738, que padroniza as URLs. Se quiser saber mais sobre as RFCs, veja em http://www.rfc.org. Basicamente, o que esta funo faz substituir os caracteres no alfanumricos em seus correspondentes hexadecimais, visando o uso em URLs. Exemplo: $palavra = "aafro ou tmara"; $url = "http://server/pesquisa.php3?p=".rawurlencode($palavra); Esta funo muito til quando queremos passar parmetros via URL, como mostra o exemplo acima. No script do prximo mdulo voltaremos a us-la. ucwords (string): Converte os primeiros caracteres de strings em maisculo. Exemplo: $nome = ucwords("valdir henrique dias leite"); echo($nome); //Esta linha exibir Valdir Henrique Dias Leite Acesso banco de dados Como foi dito na apresentao do PHP, o acesso banco de dados um dos pontos fortes desta linguagem. Ele possui acesso nativo a ADABAS, ORACLE, SYBASE, SQL SERVER, DBASE, INFORMIX, mSQL, MySQL, POSTGRESQL, alm de suportar ODBC, fazendo com que o PHP possa trabalhar praticamente com todos os bancos de dados existentes. Neste mdulo vamos ver apenas as apenas as funes relativas ao banco MySQL, pois esta dupla PHP/MySQL est sendo preferida por uma boa parte dos desenvolvedores, particularmente no ambiente Linux/Apache. O MySQL um servidor SQL e portanto devemos seguir alguns procedimentos e regras para acesso aos seus dados. Se voc est acostumado com o Oracle ou SQL Server no ter dificuldades, mas se voc usa somente bancos de dados do tipo Access ou DBF, poder ter dificuldades em entender o mecanismo usado pelo MySQL, mas vou tentar ser o mais didtico possvel. E aguarde, pois estou preparando um tutorial apenas sobre servidores SQL... A primeira regra ter um banco de dados cadastrado e um usurio com acesso este banco de dados. Vale lembrar que o MySQL no um banco de dados, e sim um servidor de dados. Tenha isto em mente para entender o exemplo. Digamos que temos um banco de dados Clientes com o usurio admin e senha admin. O primeiro passo "logar" ao servidor. Para isso usamos o comando mysql_connect e informamos o servidor, login (usurio) e senha. Veja abaixo: $conn = mysql_connect ("localhost" , "admin" , "admin"); Este comando abrir uma conexo com o MySQL da mquina local (localhost), usando o usurio admin cuja senha tambm admin. Uma refrncia a esta conexo ser gravada na varivel $conn. Depois de conectados ao servidor, devemos conectar ao banco de dados propriamente dito, usando o comando mysql_select_db, que precisa de dois parmetros: O nome do banco de dados e a conexo. Caso a conexo no seja informada, ele tentar usar a ltima criada. Em nossos exemplos, iremos sempre informar os dois parmetros. $db = mysql_select_db("clientes", $conn); Neste ponto j temos uma conexo com o servidor e j criamos um link com o banco de dados. Agora podemos enviar os comandos SQL htmlspecialchars() & amp;

de desejarmos. Se voc no souber SQL, volte a este site em algumas semanas que voc vai encontrar um tutorial de SQL. Agora segue nosso exemplo prtico: Vamos usar o script do mdulo passado e alter-lo de modo que os dados digitados no formulrio sejam gravados no banco de dados clientes antes de enviar o e-mail. <?php $erro = ""; # Verificar se o campo NOME est vazio. if ($nome == "") { erro .= "Digite seu Nome\n"; } # Verificar a quantidade de caracteres no campo TELEFONE. if ((strlen($telefone) > 8) or (strlen($telefone) < 7)) { $erro .= "O nmero do telefone deve ter 7 ou 8 caracteres\n"; } # Testar vamor do campo E-mail, verificando o caracter "@" if strpos ($email, "@") = 0 { $erro .= "O e-mail digitado no vlido\n"; } # Cabealho de resposta. echo("\n"); echo("<center>\n"); if ($erro == "") { ;$conn = mysql_connect("localhost" , "admin" , "admin"); $db = mysql_select_db("clientes", $conn); $sql = mysql_query("insert into dados (nome, email, telefone) values ('".addslashes($nome). "','".addslashes($email)."', '".addslashes($email)."')" or die("No foi possvel atualizar a tabela"); mysql_connect($conn); mail("valdirleite@ig.com.br", "Dados do Formulrio"," Nome: $nome\n E-mail: $email\n Telefone: $telefone\n","From: $email\nDate: $date\n"); echo("Obrigado por enviar este formulrio!\n"); } else { echo("No foi possvel enviar o formulrio! Verifique as mensagens abaixo: \n"); echo("<b>$erro </b>\n"); echo("<br><br><a href=form.htm>Voltar\n"); } echo("</center>"); As linhas em negrito foram acrescentadas para que o script possa gravar os dados do formulrio na tabela DADOS do banco de dados CLIENTES, que est no mesmo servidor onde est sendo rodado o script (LOCALHOST). Este o procedimento padro para usar servidores de banco de dados com o PHP: Conectar ao servidor Abrir o banco de dados (um servidor SQL pode ter mais de um banco de dados) Enviar os comandos SQL Fechar o banco de dados Desconectar ao servidor A novidade deste exemplo fica por conta do comando die que finaliza o script caso a funo que o precede no possa ser executada. Veja no prximo mdulo No prximo mdulo, vamos discutir um pouco mais sobre banco de dados e ver funes avanadas do PHP, como tratamento de erros, upload de arquivos, autenticao de usurios alm de funes de FTP e HTTP.

Pgina 1 | 2 | 3 | 4

Вам также может понравиться

  • Efapro Redes
    Efapro Redes
    Документ3 страницы
    Efapro Redes
    José Macedo
    Оценок пока нет
  • Install Whaticket
    Install Whaticket
    Документ11 страниц
    Install Whaticket
    Robson Casali Dias
    Оценок пока нет
  • Trabalho 1 PDF
    Trabalho 1 PDF
    Документ15 страниц
    Trabalho 1 PDF
    Djamate Fernando Cigome
    Оценок пока нет
  • Imagem Fade
    Imagem Fade
    Документ2 страницы
    Imagem Fade
    Diego Alberto
    Оценок пока нет
  • Link Com Descricao
    Link Com Descricao
    Документ2 страницы
    Link Com Descricao
    Diego Alberto
    Оценок пока нет
  • Janela Maximizada
    Janela Maximizada
    Документ1 страница
    Janela Maximizada
    Diego Alberto
    Оценок пока нет
  • Janelas Animadas
    Janelas Animadas
    Документ2 страницы
    Janelas Animadas
    Diego Alberto
    Оценок пока нет
  • Imagens Voadoras Com Link
    Imagens Voadoras Com Link
    Документ1 страница
    Imagens Voadoras Com Link
    Diego Alberto
    Оценок пока нет
  • Link Com Caixa de Mensagem
    Link Com Caixa de Mensagem
    Документ2 страницы
    Link Com Caixa de Mensagem
    Diego Alberto
    Оценок пока нет
  • Botao para Voltar para Pagina Inicial
    Botao para Voltar para Pagina Inicial
    Документ1 страница
    Botao para Voltar para Pagina Inicial
    Diego Alberto
    Оценок пока нет
  • DHTML
    DHTML
    Документ11 страниц
    DHTML
    Diego Alberto
    Оценок пока нет
  • Efeito Lupa
    Efeito Lupa
    Документ3 страницы
    Efeito Lupa
    Diego Alberto
    Оценок пока нет
  • DHTML - Part I
    DHTML - Part I
    Документ4 страницы
    DHTML - Part I
    Diego Alberto
    Оценок пока нет
  • DHTML - Part II
    DHTML - Part II
    Документ4 страницы
    DHTML - Part II
    Diego Alberto
    Оценок пока нет
  • Manual Do E-Mail
    Manual Do E-Mail
    Документ5 страниц
    Manual Do E-Mail
    Diego Alberto
    Оценок пока нет
  • Dispersao de Imagem
    Dispersao de Imagem
    Документ1 страница
    Dispersao de Imagem
    Diego Alberto
    Оценок пока нет
  • Cursor Com Texto
    Cursor Com Texto
    Документ3 страницы
    Cursor Com Texto
    Diego Alberto
    Оценок пока нет
  • Cartilha Seguranca 1.0
    Cartilha Seguranca 1.0
    Документ22 страницы
    Cartilha Seguranca 1.0
    Lia Amorim
    Оценок пока нет
  • Barra de Ajustes
    Barra de Ajustes
    Документ3 страницы
    Barra de Ajustes
    Diego Alberto
    Оценок пока нет
  • Barra de Texto IE
    Barra de Texto IE
    Документ2 страницы
    Barra de Texto IE
    Diego Alberto
    Оценок пока нет
  • Web Pages
    Web Pages
    Документ37 страниц
    Web Pages
    Diego Alberto
    Оценок пока нет
  • Introdução Ao XML
    Introdução Ao XML
    Документ21 страница
    Introdução Ao XML
    anon-95993
    100% (1)
  • Zone Alarm
    Zone Alarm
    Документ15 страниц
    Zone Alarm
    api-3857014
    Оценок пока нет
  • Rede Dial Up
    Rede Dial Up
    Документ4 страницы
    Rede Dial Up
    Diego Alberto
    Оценок пока нет
  • ODBC
    ODBC
    Документ26 страниц
    ODBC
    Diego Alberto
    Оценок пока нет
  • Nocoes Basicas
    Nocoes Basicas
    Документ2 страницы
    Nocoes Basicas
    Diego Alberto
    Оценок пока нет
  • Arrastar e Soltar
    Arrastar e Soltar
    Документ1 страница
    Arrastar e Soltar
    Diego Alberto
    Оценок пока нет
  • Aprenda A Ser Um Web Master
    Aprenda A Ser Um Web Master
    Документ24 страницы
    Aprenda A Ser Um Web Master
    Washington
    Оценок пока нет
  • Eudora
    Eudora
    Документ9 страниц
    Eudora
    Diego Alberto
    Оценок пока нет
  • Guia de Relatorios Via Web
    Guia de Relatorios Via Web
    Документ20 страниц
    Guia de Relatorios Via Web
    Djenane Alves Cortez
    Оценок пока нет
  • Cold Fusion
    Cold Fusion
    Документ16 страниц
    Cold Fusion
    Eder_rocha
    Оценок пока нет
  • ColdFusion - Modulo 2
    ColdFusion - Modulo 2
    Документ11 страниц
    ColdFusion - Modulo 2
    Diego Alberto
    Оценок пока нет
  • ColdFusion - Modulo 1
    ColdFusion - Modulo 1
    Документ10 страниц
    ColdFusion - Modulo 1
    Diego Alberto
    Оценок пока нет
  • Comandos-Do-Linux - Dominando Linhas de Comando
    Comandos-Do-Linux - Dominando Linhas de Comando
    Документ23 страницы
    Comandos-Do-Linux - Dominando Linhas de Comando
    Luis Cesar Zanuzzo
    100% (1)
  • Manual LinuxNetwork FINAL PDF
    Manual LinuxNetwork FINAL PDF
    Документ239 страниц
    Manual LinuxNetwork FINAL PDF
    cristiano
    Оценок пока нет
  • Aula 04
    Aula 04
    Документ44 страницы
    Aula 04
    Jonathan Lopes
    Оценок пока нет
  • História Da Linguagem C e Compilação
    História Da Linguagem C e Compilação
    Документ3 страницы
    História Da Linguagem C e Compilação
    latbal7171
    Оценок пока нет
  • Sistemas Operacionais Processos
    Sistemas Operacionais Processos
    Документ8 страниц
    Sistemas Operacionais Processos
    Leonardo Araujo Gomes
    Оценок пока нет
  • Como Configurar o Samba No Ubuntu
    Como Configurar o Samba No Ubuntu
    Документ2 страницы
    Como Configurar o Samba No Ubuntu
    Vitor Paixão
    Оценок пока нет
  • Questionário de Linux - Revisão Da Tentativa1
    Questionário de Linux - Revisão Da Tentativa1
    Документ1 страница
    Questionário de Linux - Revisão Da Tentativa1
    killua
    0% (1)
  • 02 Nocoes de Informatica
    02 Nocoes de Informatica
    Документ500 страниц
    02 Nocoes de Informatica
    alex Lelis
    100% (1)
  • Linux Caixa Magica - Manual Utilizador
    Linux Caixa Magica - Manual Utilizador
    Документ130 страниц
    Linux Caixa Magica - Manual Utilizador
    estima_fco
    Оценок пока нет
  • Gerenciador de Dispositivos
    Gerenciador de Dispositivos
    Документ15 страниц
    Gerenciador de Dispositivos
    Leandro Batista
    Оценок пока нет
  • Hora Errada No Windows em Dual Boot Com Linux. Como Resolver - Diolinux
    Hora Errada No Windows em Dual Boot Com Linux. Como Resolver - Diolinux
    Документ18 страниц
    Hora Errada No Windows em Dual Boot Com Linux. Como Resolver - Diolinux
    Edson Alves dos Santos Junior
    Оценок пока нет
  • Como Instalar o Sistema SAP GRATUITO
    Como Instalar o Sistema SAP GRATUITO
    Документ15 страниц
    Como Instalar o Sistema SAP GRATUITO
    Reginaldo Amorim
    Оценок пока нет
  • Linux Ubuntu
    Linux Ubuntu
    Документ14 страниц
    Linux Ubuntu
    Biriate Injaua
    Оценок пока нет
  • Liberando Acesso Remoto No Postgre
    Liberando Acesso Remoto No Postgre
    Документ3 страницы
    Liberando Acesso Remoto No Postgre
    Rosa Silva
    Оценок пока нет
  • Ebook - O Guia Descomplicado Da IDE Do Arduino
    Ebook - O Guia Descomplicado Da IDE Do Arduino
    Документ17 страниц
    Ebook - O Guia Descomplicado Da IDE Do Arduino
    Fabiano
    Оценок пока нет
  • Manual Biblivre3
    Manual Biblivre3
    Документ203 страницы
    Manual Biblivre3
    assis_campos8950
    Оценок пока нет
  • TICS
    TICS
    Документ13 страниц
    TICS
    Delson Aligio
    Оценок пока нет
  • Cap - 11 - #WEBMIN # NA
    Cap - 11 - #WEBMIN # NA
    Документ2 страницы
    Cap - 11 - #WEBMIN # NA
    lukmars
    Оценок пока нет
  • EC400 - ABAP Workbench
    EC400 - ABAP Workbench
    Документ389 страниц
    EC400 - ABAP Workbench
    Ronimarcos Gonçalves Silva
    100% (1)
  • Gfli
    Gfli
    Документ392 страницы
    Gfli
    fk2019
    Оценок пока нет
  • Instalando o Servidor ProFTPD No Linux
    Instalando o Servidor ProFTPD No Linux
    Документ5 страниц
    Instalando o Servidor ProFTPD No Linux
    Cesar Augustus Silva
    Оценок пока нет
  • Byte e Bit 2 PDF
    Byte e Bit 2 PDF
    Документ4 страницы
    Byte e Bit 2 PDF
    Júlio Carvalho
    Оценок пока нет
  • Software Livre
    Software Livre
    Документ18 страниц
    Software Livre
    José Frazão
    Оценок пока нет
  • Comandos Bash Linux
    Comandos Bash Linux
    Документ6 страниц
    Comandos Bash Linux
    tony curitiba2021
    Оценок пока нет
  • Curso 171808 Aula 20 Edf0 Completo
    Curso 171808 Aula 20 Edf0 Completo
    Документ182 страницы
    Curso 171808 Aula 20 Edf0 Completo
    julianobbueno
    Оценок пока нет
  • Lista de Exercícios
    Lista de Exercícios
    Документ2 страницы
    Lista de Exercícios
    arthursi
    Оценок пока нет
  • Lfs Book 11.1 PT BR
    Lfs Book 11.1 PT BR
    Документ402 страницы
    Lfs Book 11.1 PT BR
    Davi DE Souza
    Оценок пока нет