Sei sulla pagina 1di 5

02

Tutorial -PHP
em HTML (formulrio) para o cadastro de notcias. Vamos l: ARQUIVO cadastra.php
<?php $data = date("Y-m-d"); $hora = date("H:i:s"); $novadata = substr($data,8,2) . "/" .substr($data,5,2) . "/" . substr($data,0,4); $novahora = substr($hora,0,2) . "h" .substr($hora,3,2) . "min"; echo "<h1>Sistema de Cadastro de Notcias</h1>"; echo "<hr><br>"; echo "<form action='inserir.php' method='post'>"; echo "Nome:<input name='nome' type='text' size=30> *<br>"; echo "Sobrenome:<input name='sobrenome' type='text' size=30> *<br>"; echo "Cidade:<input name='cidade' type='text' size=30> *<br>"; echo "Estado:<i>(Exemplo: SP, RS, BA)</i><input name='estado' type='text' size=5> *<br>"; echo "Email: <i>(Exemplo: feitosac@yahoo.com)</i><input name='email' type='text' size=30><br><br>"; echo "Ttulo do Texto:<input name='titulo' type='text' size=30> *<br>"; echo "Subttulo do Texto:<textarea name='subtitulo' rows=5 cols=30></textarea><br>"; echo "Texto:<textarea name='texto' rows=10 cols=30></textarea> *<br>"; echo "<input name='data' type='hidden' value='$data'<>input name='hora' type='hidden' value='$hora'>"; echo "<input type='submit' value='Cadastrar'>"; echo "</form>"; echo "<br><hr>"; echo "<i>Campos marcados com <b>*</b> so obrigatrios no cadastro.<br>"; echo "<b>Observao</b>: Ser inserido no seu cadastro a data atual, bem como a hora atual do cadastro<br>"; echo "Data: $novadata - Hora: $novahora<br>"; ?>

Criando um Portal de Notcias baseado em PHP/MySQL


1. Passo - Criando e preparando o Banco de Dados (MySQL)Comece criando um banco de dados dedicado a este tutorial. Por exemplo, com o nome notcias; se j estiver no cliente MySQL, digite o seguinte:
create database noticias;

Por conseguinte, abra o banco de dados criado:


use noticias;

Agora criar uma tabela para cadastro das suas notcias. Voc pode seguir o exemplo abaixo, superprtico:
CREATE TABLE noticias ( id int(5) NOT NULL auto_increment, nome char(30) NOT NULL , sobrenome char(30) NOT NULL , cidade char(50) NOT NULL , estado char(2) NOT NULL , email char(80) , data date NOT NULL, hora time NOT NULL , titulo char(100) NOT NULL , subtitulo char(200) , texto text NOT NULL , ver char(3) DEFAULT 'off' , PRIMARY KEY (id), UNIQUE id (id) );

Se voc j tiver uma base de conhecimento em SQL, poder saber o que cada linha acima realizar. Irei especificar o que voc ir cadastrar em cada campo: id = Campo de identificao da notcia (no necessrio cadastrar nenhum dado, pois ele j est habilitado com a funo auto_increment que, automaticamente, ir inserindo novos valores) nome = Primeiro nome do autor da notcia sobrenome = Sobrenome do autor da notcia cidade = Cidade do autor estado = Estado da cidade (especificada com apenas 2 caracteres) email = Email do autor, para contatos data = Data utilizada, para saber quando foi realizado o cadastro (no ser necessrio nenhum cadastro, pois faremos isso no php automaticamente, inserindo a data atual) hora = Hora utilizada no cadastro da notcias (tambm no necessrio o cadastro, pois ser feito automaticamente com o PHP) ttulo = Ttulo da notcia (mximo de 100 caracteres) subttulo = Pequeno resumo da sua notcia (mximo de 200 caracteres) texto = Agora sim, o texto da sua notcia, sem limite de caracteres ver = Este campo curioso. Ele ser utilizado para o webmaster poder autorizar cada notcia, pois caso no tivesse um campo parecido, toda notcia cadastrada iria para o site. como um controle de notcias. O padro aqui, off, assim toda notcia primeiro ser passada para o webmaster, para depois ser validada. * so campos obrigatrios no cadastro Agora com o banco de dados preparado, hora de criarmos o sistema de cadastro de notcias do seu site. Este ser o 2. passo! 2 Passo - Criando o sistema de cadastro de notciasEste um passo importante, onde um script criado em PHP ir inserir dados no banco de dados MySQL. Aqui iremos utilizar os conhecimentos passados no tutorial anterior, sobre questes bsicas de PHP/MySQL. Primeiramente ser criado o arquivo

FIM DO ARQUIVO cadastra.php Vamos realizar uma pequena anlise neste arquivo. Repare que os dados do formulrio sero enviados para o script "inserir.php", este, por conseguinte, ser o responsvel pela insero desta notcia no MySQL. Outro ponto, que no existem os campos id, ver, estes, como expliquei, sero inseridos automaticamente pelo MySQL, e os campos data, hora, sero inseridos pelo PHP. Agora hora de criar o script PHP responsvel por isto tudo. Vamos nessa: ARQUIVO inserir.php
<?php //Vamos definir as variveis de data e hora //para insero no banco de dados //Agora com as variveis de data e hora criadas //vamos criar uma varivel especial para a querie sql $sql = "INSERT INTO noticias (nome, sobrenome, cidade, estado, email, data, hora, titulo, subtitulo, texto) VALUES ('$nome', '$sobrenome', '$cidade', '$estado', '$email', '$data', '$hora', '$titulo', '$subtitulo', '$texto')"; //Agora hora de contatar o mysql $conexao = mysql_connect("localhost", "root", "root") or die ("Configurao de Banco de Dados Errada!"); //Substitua os valores acima caso no esteje de acordo com sua

Tutorial -PHP
mquina //Selecionando o banco de dados... $db = mysql_select_db("noticias") or die ("Banco de Dados Inexistente!"); //Inserindo os dados $sql = mysql_query($sql) or die ("Houve erro na gravao dos dados, por favor, clique em voltar e verifique os campos obrigatrios!"); echo "<h1>Cadastro efetuado com sucesso!</h1>"; ?> echo "<br>"; echo "Autor: $nome $sobrenome - ($email)"; echo "<br>"; echo "Cidade: $cidade - Estado: $estado"; echo "<br>"; echo "Data: $novadata - Horrio: $novahora"; echo "<br>"; echo "Ttulo da Notcia: $titulo"; echo "<br>"; echo "Subttulo da Notcia: <i> $subtitulo </i>"; echo "<br>"; echo "Notcia: $texto"; echo "<br>"; echo "Validado pelo Webmaster: "; if ($ver=on) {echo "Sim"; }else {echo "No"; } echo "<hr>"; } ?>

03

FIM DO ARQUIVO inserir.php Voc pode aperfeioar muito mais o script. Por exemplo, personalizar a mensagem de erro e de xito, inserir um link para cadastrar novamente, etc. Agora vamos para o prximo e ltimo passo, "Recuperando os dados cadastrados" 3. Passo - Recuperando os dados cadastradosIrei mostrar como selecionar, por exemplo, as ltimas 15 notcias inseridas no MySQL; isto muito til, para sites que tm sees do tipo "ltimas Notcias". Isto feito com PHP novamente; faa conforme o exemplo abaixo, e salve como um arquivo em PHP. ARQUIVO noticias.php
<?php //Vamos precisar contar o MySQL novamente $conexao = mysql_connect("localhost","root","root"); $db = mysql_select_db("noticias"); //Agora realizar a querie de busca no banco de dados $sql = "SELECT * FROM noticias WHERE ver = 'on' ORDER BY id DESC LIMIT 15"; // Ir selecionar as ltimas 15 notcias inseridas // O curioso aqui, que ele s ir selecionar os campos onde // estiver o ver=on, isto foi discutido logo atrs, como um // controle de notcias pelo webmaster // Por padro o MySQL colocou off, mas o webmaster ter que // revisar as notcias e alterar o campo ver para as que quiser validar. $resultado = mysql_query($sql) or die ("No foi possvel realizar a consulta ao banco de dados"); // Agora iremos "pegar" cada campo da notcia // e organizar no HTML while ($linha=mysql_fetch_array($resultado)) { $id = $linha["id"]; $nome = $linha["nome"]; $sobrenome = $linha["sobrenome"]; $cidade = $linha["cidade"]; $estado = $linha["estado"]; $email = $linha["email"]; $data = $linha["data"]; $hora = $linha["hora"]; $titulo = $linha["titulo"]; $subtitulo = $linha["subtitulo"]; $texto = $linha["texto"]; $ver = $linha["ver"]; $novadata = substr($data,8,2) . "/" .substr($data,5,2) . "/" . substr($data,0,4); $novahora = substr($hora,0,2) . "h" .substr($hora,3,2) . "min"; echo "<b>Cdigo da Notcia</b>: $id";

FIM DO ARQUIVO noticias.php Viu como super simples? Neste script criamos uma varivel para cada campo da tabela, assim fica mais fcil de manusear os dados de qualquer forma. Nas varivels novadata, novahora, crie uma funo para mostrar as variveis de uma forma melhor. (agradecimentos a RENAS - Amigo!) Voc ainda pode personalizar estas notcias, deixando o layout do seu jeito! OBS: para mostrar todas as notcias em vez de s as ltimas 15, apenas crie uma nova varivel $sql, como esta abaixo: $sql = "SELECT * FROM noticias WHERE ver = 'on' ORDER BY id DESC"; Pronto! Foi s retirar "LIMIT 15". ;) 4. Passo - Controle de Notcias para WebmasterNeste passo irei explicar como mostrar todos os dados da tabela, para podermos modific-los, apaglos, etc. Primeiramente, devemos criar um arquivo PHP para mostrar todos os dados na tela, para depois podermos manuselos. Faa como o exemplo abaixo: ARQUIVO controle.php
<?php $conexao = mysql_connect("localhost","root","root"); $db = mysql_select_db("noticias"); $sql = "SELECT * FROM noticias ORDER BY id DESC"; $resultado = mysql_query($sql) or die ("No foi possvel realizar a consulta ao banco de dados"); echo echo echo echo echo echo echo echo echo echo echo echo echo echo echo "<table width=740 border=1 cellpadding=1 cellspacing=1>"; "<tr>"; "<th width=15>ID:</th>"; "<th width=100>Nome:</th>"; "<th width=100>Sobrenome:</th>"; "<th width=100>Cidade:</th>"; "<th width=15>UF:</th>"; "<th width=100>Email:</th>"; "<th width=30>Data:</th>"; "<th width=30>Hora:</th>"; "<th width=100>Ttulo:</th>"; "<th width=50>Disponvel?</th>"; "<th width=50>Alterar</th>"; "<th width=50>Excluir</th>"; "</tr>";

while ($linha=mysql_fetch_array($resultado)) { $id = $linha["id"]; $nome = $linha["nome"]; $sobrenome = $linha["sobrenome"]; $cidade = $linha["cidade"]; $estado = $linha["estado"]; $email = $linha["email"]; $data = $linha["data"]; $hora = $linha["hora"];

04
$titulo = $linha["titulo"]; $ver = $linha["ver"];

Tutorial -PHP
$novahora = substr($hora,0,2) . "h" .substr($hora,3,2) . "min"; echo "<h1>Alterar Cadastro...</h1>"; echo "<hr><br>"; echo "<form action='alterar_db.php?id=$id' method='post'>"; echo "Cdigo da Notcia: <input name='id_novo' type='text' value='$id' size=20><br>"; echo "Data: $novadata<br>"; echo "Hora: $novahora<br>"; echo "Nome:<input name='nome_novo' type='text' value='$nome' size=30> *<br>"; echo "Sobrenome:<input name='sobrenome_novo' type='text' value='$sobrenome' size=30> *<br>"; echo "Cidade:<input name='cidade_novo' type='text' value='$cidade' size=30> *<br>"; echo "Estado:<i>(Exemplo: SP, RS, BA)</i><input name='estado_novo' type='text' value='$estado' size=5> *<br>"; echo "Email: <i>(Exemplo: feitosac@yahoo.com)</i><input name='email_novo' type='text' value='$email' size=30><br><br>"; echo "Ttulo do Texto:<input name='titulo_novo' type='text' value='$titulo' size=30> *<br>"; echo "Subttulo do Texto:<textarea name='subtitulo_novo' rows=5 cols=30>$subtitulo</textarea><br>"; echo "Texto:<textarea name='texto_novo' rows=10 cols=30>$texto</textarea> *<br>"; echo "Disponibilizar? (on ou off): <input name='ver_novo' type='text' value='$ver' size=5><br>"; echo "<input type='submit' value='Alterar'>"; echo "</form>"; echo "<br><hr>"; } ?>

$novadata = substr($data,8,2) . "/" .substr($data,5,2) . "/" . substr($data,0,4); $novahora = substr($hora,0,2) . "h" .substr($hora,3,2) . "min"; echo "<tr>"; echo "<th width=15>$id<br></th>"; echo "<th width=100>$nome<br></th>"; echo "<th width=100>$sobrenome<br></th>"; echo "<th width=100>$cidade<br></th>"; echo "<th width=15>$estado<br></th>"; echo "<th width=100>$email<br></th>"; echo "<th width=30>$novadata<br></th>"; echo "<th width=30>$novahora<br></th>"; echo "<th width=100>$titulo<br></th>"; echo "<th width=50>$ver<br></th>"; echo "<th width=50><a href='alterar.php?id=$id'>Alterar</a><br></th>"; echo "<th width=50><a href='excluir.php?id=$id'>Excluir</a><br></th>"; echo "</tr>"; echo "<br>"; } echo "</table>"; ?>

FIM DO ARQUIVO controle.php O prximo passo agora criar os arquivos alterar.php e excluir.php, responsveis pela alterao e excluso dos dados. muito simples o cdigo, veja s: ARQUIVO excluir.php
<?php $conexao = mysql_connect("localhost","root","root"); $db = mysql_select_db("noticias"); $sql = DELETE FROM noticias WHERE id='$id'; $resultado = mysql_query($sql) or die ("No foi possvel realizar a excluso dos dados."); echo <h1>A notcia foi excluda com xito!</h1>; ?>

FIM DO ARQUIVO alterar.php Agora basta criarmos o arquivo alterar_db.php que ir receber os dados deste arquivo (alterar.php) e alterar seus respectivos dados no MySQL. muito simples: ARQUIVO alterar_db.php
<?php $conexao = mysql_connect("localhost","root","root"); $db = mysql_select_db("noticias"); $sql = "UPDATE noticias SET id='$id_novo',nome='$nome_novo' ,sobrenome='$sobrenome_novo',cidade='$cidade_novo',estado='$ estado_novo' ,email='$email_novo',titulo='$titulo_novo',subtitulo='$subtitulo_no vo' ,texto='$texto_novo',ver='$ver_novo' WHERE id='$id'"; $resultado = mysql_query($sql) or die ("No foi possvel realizar a consulta ao banco de dados"); echo "<h1>Notcia alterada com sucesso!</h1>"; ?>

FIM DO ARQUIVO excluir.php ARQUIVO alterar.php


<?php $conexao = mysql_connect("localhost","root","root"); $db = mysql_select_db("noticias"); $sql = "SELECT * FROM noticias WHERE id='$id'"; $resultado = mysql_query($sql) or die ("No foi possvel realizar a consulta ao banco de dados"); while ($linha=mysql_fetch_array($resultado)) { $id = $linha["id"]; $nome = $linha["nome"]; $sobrenome = $linha["sobrenome"]; $cidade = $linha["cidade"]; $estado = $linha["estado"]; $email = $linha["email"]; $data = $linha["data"]; $hora = $linha["hora"]; $titulo = $linha["titulo"]; $subtitulo = $linha["subtitulo"]; $texto = $linha["texto"]; $ver = $linha["ver"]; $novadata = substr($data,8,2) . "/" .substr($data,5,2) . "/" . substr($data,0,4);

FIM DO ARQUIVO alterar_db.php

Tutorial -PHP
Como criar um simples sistema de login em PHP/Mysql
1 passo Vamos criar o arquivo de conexo com o banco de dados e cham-lo de conectar.php:
$host = "localhost"; $user = "nome_do_usuario"; $senha = "senha_do_usuario"; $dbname = "nome_do_db"; //conecta ao banco de dados mysql_connect($host, $user, $senha) or die("No foi possvel conectar-se com o banco de dados"); //seleciona o banco de dados mysql_select_db($dbname)or die("No foi possvel conectar-se com o banco de dados"); ?>

05

$logar = mysql_query("SELECT * FROM login WHERE nome='$nome' AND senha='$senha'") or die("erro ao selecionar"); /*aqui depois de verificado redirecionamos a pagina secreta(caso nome e senha estarem corretos) ou senha e apelido no conferem caso tais estiverem errados. Repare que h uma rotina para o valor inserido em senha no seja nulo. obs: Aonde esta escrito paginasecreta.php aonde vc deve colocar a pgina para onde o script ira redirecionar*/ if (strlen($senha)< 1) echo ' Senha ou apelido no conferem tente denovo '; elseif (mysql_num_rows($logar)>0 ){ header("location:paginasecreta.php"); }else { echo ' Senha ou apelido no conferem tente denovo '; } ?>

2passo (criao das tabelas) Agora vamos criar as tabelas no banco de dados a partir deste script em php:
//inclui o arquivo de conexo com o banco de dados include ("conectar.php"); //cria a tabela no db seno retorna a mensagem "no foi possvelcriar a tabela" mysql_query("CREATE TABLE login ( nome VARCHAR(25) NOT NULL, senha VARCHAR (15) NOT NULL )") or die ("no foi possvel criar as tabelas"); ?>

5passo (criando o o formulrio de login) Finalmente o ltimo passo vamos criar o formulrio de login: Nome: Senha:
Enviar

3passo (criando um formulrio de cadastramento de usurios) Agora vamos criar um formulrio de cadastramento de usurios: Nome: Senha:
Enviar

Ateno: este um sistema de login simples ! Se voc desejar um sistema mais seguro, voc deve trabalhar com cookies e sesses, assuntos que no foram abordados aqui.

Sistema de Busca
Primeiramente vamos criar a tabela no MySQL onde os dados sero buscados:
CREATE TABLE noticias ( codigo INT(11) NOT NULL DEFAULT '0' AUTO_INCREMENT PRIMARY KEY, titulo VARCHAR(255) NOT NULL, noticia TEXT NOT NULL );

4passo (criando o script de cadastramento) Vamos agora criar o documento php de cadastramento, chamando-o de cadastro.php:
//conexo com o db include ("conectar.php"); //variaveis enviadas pelo mtodo post $nome = $_POST['nome']; $senha = $_POST['senha']; //insere os valores no db $insere = mysql_query("INSERT INTO `login`( `nome`, `senha`) VALUES ('$nome','$senha')") or die(mysql_error()); if($insere) echo "Cadastro realizado com sucesso!"; Else echo "No foi possvel fazer o seu cadastramento!"; ?>

Pronto! A tabela acima um exemplo de uma tabela de notcia. Bom, agora iremos criar o script de busca: busca.php
<form method="POST"> Palavra: <input type="text" name="palavra"> <input type="submit" value="Buscar"> </form> <? if(!empty($HTTP_POST_VARS[palavra])) { $palavra = str_replace(" ", "%", $HTTP_POST_VARS[palavra]); /* Altera os espaos adicionando no lugar o simbolo % */ $qr = "SELECT * FROM noticias WHERE noticia LIKE '%".$palavra."%' ORDER BY codigo DESC"; $sql = mysql_query($qr); // Executa a query no Banco de Dados $total = mysql_num_rows($sql); // Conta o total ded resultados encontrados echo "Sua busca retornou <b>'$total'</b> resultados.<br>\n"; while($r = mysql_fetch_array($sql)) {// Gera o Loop com os resultados

5passo (criando o script de login) Chamaremos de login.php


//conecta com o db include ("conectar.php"); $nome= $_POST['nome']; $senha = $_POST['senha']; //faz a confirmao de nome e senha no db

06
echo "<hr>\n"; echo $r[noticia]."<br>\n"; } } ?>

Tutorial -PHP
Parte 2 Agora iremos fazer com que o PHP gere os links das pginas:
if($pagina > 0) { $menos = $pagina - 1; $url = "$PHP_SELF?pagina=$menos"; echo "<a href="$url">Anterior</a>"; // Vai para a pgina anterior } for($i=0;$i<$paginas;$i++) {// Gera um loop com o link para as pginas $url = "$PHP_SELF?pagina=$i"; echo " | <a href="$url">$i</a>"; } if($pagina < $paginas) { $mais = $pagina + 1; $url = "$PHP_SELF?pagina=$mais"; echo " | <a href="$url">Prxima</a>"; }

Pronto, o seu sistema de busca ja esta funcionando.

Utilizando Session em PHP

Para utilizar session muito simples e facilita bastante. Session uma varivel global a qual eliminada quando o usurio fecha o browser. Por exemplo, faremos uma pgina aonde setaremos um nmero qualquer para o usurio e esse nmero s ser necessrio em outra pgina muito a frente. Ao invs de ficarmos carregando pagina.php?num=1, criaremos uma session e somente nos preocuparemos com o nmero setado no final do script. O nmero ser o 1 e o nome do session ser "numero". Setando o session:
<?php session_start(); session_register("numero"); if (!isset($numero)) {$numero = 1; } ?>

Pronto. Veremos como fica o script inteiro:


<? $sql = mysql_query("SELECT * FROM tabela"); $lpp = 10; // Especifique quantos resultados voc quer por pgina $total = mysql_num_rows($sql); // Esta funo ir retornar o total de linhas na tabela $paginas = ceil($total / $lpp); // Retorna o total de pginas if(!isset($pagina)) {$pagina = 0; }// Especifica uma valor para variavel pagina caso a mesma no esteja setada $inicio = $pagina * $lpp; // Retorna qual ser a primeira linha a ser mostrada no MySQL $sql = mysql_query("SELECT * FROM tabela LIMIT $inicio, $lpp"); // Executa a query no MySQL com o limite de linhas. while($l = mysql_fetch_array($sql)) { echo "Resultado... n"; } if($pagina > 0) { $menos = $pagina - 1; $url = "$PHP_SELF?pagina=$menos"; echo "<a href="$url">Anterior</a>"; // Vai para a pgina anterior } for($i=0;$i<$paginas;$i++) {// Gera um loop com o link para as pginas $url = "$PHP_SELF?pagina=$i"; echo " | <a href="$url">$i</a>"; } if($pagina < ($paginas - 1)) { $mais = $pagina + 1; $url = "$PHP_SELF?pagina=$mais"; echo " | <a href="$url">Prxima</a>"; } ?>

Verificamos se ela ainda no foi setada, e a definimos como 1. Agora, suponhamos que passamos todo o cadastro e agora queremos recuperar esse nmero.
<?php session_start(); session_register("numero"); if (isset($numero)) {print($numero); } ?>

Pronto! Verificamos se ele j foi setado e aps apenas mostramos ele na pgina. Agora, quando precisar, j sabe o que e como usar uma session.

Como fazer Paginao de resultados?


Neste tutorial iremos aprender a fazer paginao. Parte 1 Primeiramente vamos executar uma query no mysql.
$sql = mysql_query("SELECT * FROM tabela");

Esta query ir retornar o valor total da tabela. Vamos ento fazer a paginao.
$lpp = 10; // Especifique quantos resultados voc quer por pgina $total = mysql_num_rows($sql); // Esta funo ir retornar o total de linhas na tabela $paginas = ceil($total / $lpp); // Retorna o total de pginas if(!isset($pagina)) {$pagina = 0; }// Especifica uma valor para variavel pagina caso a mesma no esteja setada $inicio = $pagina * $lpp; // Retorna qual ser a primeira linha a ser mostrada no MySQL $sql = mysql_query("SELECT * FROM tabela LIMIT $inicio, $lpp"); // Executa a query no MySQL com o limite de linhas.

Agora iremos fazer o loop para que liste os resultados:


while($l = mysql_fetch_array($sql)) { echo "Resultado... n"; }

Pronto.

Potrebbero piacerti anche