
Desafio Aos UsuÁrios Do FÓrum
#1
Posted 20/05/2004, 19:51
Criarmos juntos um completo Portal com Notícias, Entretenimento, Newslleter e classificados.
Vamos montar um sistema deste e disponibilizar aqui, existe tanta gente interessada aqui e eu também, quem quiser da um toque ai.
Valeu,
Michel Martins
#2
kelvin
Posted 20/05/2004, 20:52
blz....



#3
Posted 20/05/2004, 20:59
Pessoal, me ajudem aí e olhem se estes códigos estão certos....
Criando um Portal de Notícias baseado em PHP/MySQL
Criando e preparando o Banco de Dados (MySQL)
Comece criando um banco de dados dedicado a este portal.
Por exemplo, com o nome notícias; 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 notícias. Você pode seguir o exemplo abaixo, superprático:
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) );
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 Notícias</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 "Título do Texto:<input name='titulo' type='text' size=30> *<br>"; echo "Subtítulo 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> são obrigatórios no cadastro.<br>"; echo "<b>Observação</b>: Será inserido no seu cadastro a data atual, bem como a hora atual do cadastro<br>"; echo "Data: $novadata - Hora: $novahora<br>"; ?>
FIM DO ARQUIVO cadastra.php
ARQUIVO inserir.php
<?php $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 ("Configuração de Banco de Dados Errada!"); //Substitua os valores acima caso não esteje de acordo com sua máquina //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 gravação dos dados, por favor, clique em voltar e verifique os campos obrigatórios!"); echo "<h1>Cadastro efetuado com sucesso!</h1>"; ?>
FIM DO ARQUIVO inserir.php
Você pode aperfeiçoar 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 próximo e último passo, "Recuperando os dados cadastrados"
Recuperando os dados cadastrados. Irei mostrar como selecionar, por exemplo, as últimas 15 notícias inseridas no MySQL; isto é muito útil, para sites que têm seções do tipo "Últimas Notícias". Isto é feito com PHP novamente; faça 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 notícias inseridas // O curioso aqui, é que ele só irá selecionar os campos onde // estiver o ver=on, isto foi discutido logo atrás, como um // controle de notícias pelo webmaster // Por padrão o MySQL colocou off, mas o webmaster terá que // revisar as notícias e alterar o campo ver para as que quiser validar. $resultado = mysql_query($sql) or die ("Não foi possível realizar a consulta ao banco de dados"); // Agora iremos "pegar" cada campo da notícia // 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>Código da Notícia</b>: $id"; echo "<br>"; echo "Autor: $nome $sobrenome - ($email)"; echo "<br>"; echo "Cidade: $cidade - Estado: $estado"; echo "<br>"; echo "Data: $novadata - Horário: $novahora"; echo "<br>"; echo "Título da Notícia: $titulo"; echo "<br>"; echo "Subtítulo da Notícia: <i> $subtitulo </i>"; echo "<br>"; echo "Notícia: $texto"; echo "<br>"; echo "Validado pelo Webmaster: "; if ($ver=on) { echo "Sim"; } else { echo "Não"; } echo "<hr>"; } ?>
FIM DO ARQUIVO noticias.php
Você ainda pode personalizar estas notícias, deixando o layout do seu jeito!
OBS: para mostrar todas as notícias em vez de só as últimas 15, apenas crie uma nova variável $sql, como esta abaixo:
$sql = "SELECT * FROM noticias WHERE ver = 'on' ORDER BY id DESC";
Pronto! Foi só retirar "LIMIT 15".

Controle de Notícias para Webmaster.
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 ("Não foi possível realizar a consulta ao banco de dados"); echo "<table width=740 border=1 cellpadding=1 cellspacing=1>"; echo "<tr>"; echo "<th width=15>ID:</th>"; echo "<th width=100>Nome:</th>"; echo "<th width=100>Sobrenome:</th>"; echo "<th width=100>Cidade:</th>"; echo "<th width=15>UF:</th>"; echo "<th width=100>Email:</th>"; echo "<th width=30>Data:</th>"; echo "<th width=30>Hora:</th>"; echo "<th width=100>Título:</th>"; echo "<th width=50>Disponível?</th>"; echo "<th width=50>Alterar</th>"; echo "<th width=50>Excluir</th>"; echo "</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"]; $titulo = $linha["titulo"]; $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 "<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
Criar os arquivos alterar.php e excluir.php, responsáveis pela alteração e exclusão dos dados.
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 ("Não foi possível realizar a exclusão dos dados."); echo “<h1>A notícia foi excluída com êxito!</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 ("Não foi possível 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); $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 "Código da Notícia: <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 "Título do Texto:<input name='titulo_novo' type='text' value='$titulo' size=30> *<br>"; echo "Subtítulo 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>"; } ?>
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.
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_novo' ,texto='$texto_novo',ver='$ver_novo' WHERE id='$id'"; $resultado = mysql_query($sql) or die ("Não foi possível realizar a consulta ao banco de dados"); echo "<h1>Notícia alterada com sucesso!</h1>"; ?>
FIM DO ARQUIVO alterar_db.php
#4
Posted 20/05/2004, 21:00
Valeu
#5
Posted 21/05/2004, 09:09
Temos que ir por partes...
Primeiro sobre as notícias... Alguém sabe como interagir com um cadastro de usuários ae?
Já tô dando umas mexidinhas no código aqui...
Mas o pessoal tem que ajudar tb...
#6
Posted 21/05/2004, 13:07
PALMEIRAS - Primeiro campeão do mundo em 1951
#7
Posted 21/05/2004, 19:58
#8
Posted 21/05/2004, 20:22
Primeiro farei um formulario para o newsletter...
CODE
<form action="<?php echo"$PHP_SELP";?>"method="POST">
<table border="1" width="100%">
<tr>
<td>nome:</td>
<td><input type="text" name="nome" size="20"></td>
</tr>
<tr>
<td> </td>
<td><input type="text" name="e-mail" size="20"></td>
</tr>
</table>
<p align="center"><input name="funcao" type="radio" vallue="1">Adicionar <input name="funcao" type="radio"vallue="e">Remover</p>
<p align="center"><input type="submit" value="Enviar"></p>
</form>
Criando uma tabela no banco de dados mysql para o news letter
CODE
CREATE TABLE news (
id bigint(20) unsigned NOT NULL auto_increment,
nome varchar(60) NOT NULL default 'sem nome',
email varchar(150) NOT NULL default 'sem e-mail',
PRIMARY KEY (id),
UNIQUE KEY id (id,email)
) TYPE=MyISAM;
[/CODE]
formulário enviando dados para a tabela
CODE
<? // conecta ao banco de dados
$conexao=$mysql_connect("server","user","password");
// seleciona o base de dados
$db=mysql_select_db("banco",$conexao);
// coleta as informações do formulário
$nome=$_POST['nome'];
$email=$_POST['email'];
$fu=$_POST['func'];
// verifica se a fução é 1, se for adiciona n banco
if($fu==1){
// verifica o tamanho do e-mail para ver se é valido
if(strlen($email)>=8 &&strlen($email) <=150){
$email_tam_valido=true;
//conecta a base de dados
$ss=mysql_query("SELECT * FROM new WHERE email='$email'");
$ma=mysql_fetch_row($ss);
// verificar se o e-mail já existe
if($email!==$ma[2]){
$mail_certo=true;
}else{
$mail_certo=false;
$erros[]="E-mail ja existe!!!";
}
//verifica se o e-mail é válido
if (eregi("^[-!#$%&\*+\\./0-9=?A-Z^_`a-z{|}~]+.@.[-!#$%&\*+\\/0-9=?A-Z^_`a-z{|}~]+\..[-!#$%&\*+\\./0-9=?A-Z^_`a-z{|}~]+$", $email)) {
$mail=true;
}else{
$mail=false;
$erros[]="Email Inválido";
}
}else{
$email_tam_valido=false;
$erros[]="Email deve ser de 8 a 150 caracteres";
}
// verifica se todos acima esta ok
if($email_tam_valido&&$mail_certo&&$mail){
// verifica de os campos não estão em branco
if(!empty($nome)||!empty($email)){
// faz a query com o banco para insersão de dados
$sql=mysql_query("INSERT INTO new (nome,email) VALUES ('$nome','$email')");
// retorna a mensagem de sucesso se deu tudo certo
($sql)? print("<div align=\"center\">sucesso ao inserir $nome</div>") : print("Erro ao inserir $nome ");
}
}else{
// cria uma array com as mensagens de erro e exibindo no navegador caso não passe pela checagem
foreach($erros as $msg){
echo"<div align=\"center\">$msg</div>";
}
}
// verifica se a função é 2 para deletar o registro especificado
}elseif($fu==2){
// faz a query para deletar o registro do banco
$sql=mysql_query("DELETE FROM new WHERE email='$email'");
// retorna a mensagem de erro ou sucesso
($sql)? print("<div align=\"center\">Deletado com Sucesso!!</div>") : print("E-mail não Existe");
}
?>
[/CODE]
tudo certo até aqui... ai vc tem um estrutura para colocar no site...
PESSOAL, ISTO ESTÁ CERTO? AVALIEM E ME AJUDEM A MUDAR ESTE CÓDIGO PARA INTERAGIR COM O DE NOTÍCIAS...
FALOW
#9
Posted 21/05/2004, 22:16
até + !!!
PALMEIRAS - Primeiro campeão do mundo em 1951
#10
Posted 22/05/2004, 00:46
o negocio é entrelaçar esses 2 scrpits.... eu nao to conseguindo
#11
Miranda
Posted 22/05/2004, 10:05
no arquivo excluir tem 2 erros:
Você colocou “ ao inves de ".<?
$conexao = mysql_connect("localhost","root","root");
$db = mysql_select_db("noticias");
$sql = "DELETE FROM noticias WHERE id='$id'";
$resultado = mysql_query($sql)
or die ("Não foi possível realizar a exclusão dos dados.");
echo "<h1>A notícia foi excluída com êxito!</h1>";
?>
Só testei o painel de controle.
no arquivo alterar.
Quando vc muda os arquivos eles nao mudam, eles ficam em branco.
e nao intendi o porque da variavel $novo_:
PHP |
<?php $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_novo' ,texto='$texto_novo',ver='$ver_novo' WHERE id='$id'"; ?> |
#12
Posted 24/05/2004, 18:32
#13
Posted 24/05/2004, 20:11
Ainda mais do codigo todo comentado!
Meu parabens!
Vai ser um sucesso!
Hospedagem Profissional?
R: Layout WebHost - www.lwh.com.br
Desenvolvimento de sites e sistemas?
R: Layout - www.layoutweb.com.br
#14
Posted 24/05/2004, 20:47
Se for, tem que começar a programar mais "de baixo", hehe
começar a fazer primeiro a parte de login, template, etc
Posso dar um help, fiz um sistema assim (na verdade, ainda estou fazendo aos poucos).
Seria legal, até pra ser algo diferente, tentar fazer um sistema bem completo e BEM orientado a objetos.
Algumas coisas essenciais:
Controle de autenticação e níveis de acesso dos usuários (cadastro e login de usuarios, e controle de que sessoes cada usuario pode acessar);
Camada de abstração para banco de dados (o script usa funcoes genericas de banco de dados - possibilita a instalacao em qualquer bd);
Sistema de template (ninguem vai querer usar a pagina toda igual neh?

Uma função (ou objeto) genérico para envio de e-mails (de preferencia com suporte a e-mail em html e com arquivos anexados);
Um sistema de estatística interna.
Tudo isso já existe pronto, e juntar tudo num script só seria basicamente adaptação. Criando um sistema que suporte isso tudo, já teremos uma "base" pra começar a fazer o sistema propriamente dito.
Os sistemas desse tipo usam alguns conceitos.. módulos (pagina internas agregadas ao sistema), blocos (pequenas caixas com algum conteudo qualquer), traducoes (modulos sao feitos usando variaveis inves de texto, permitindo rapida alteracao do idioma da pagina).
Enfim, uma trabalheira enorme, que porem seria bem interessante (e gratificante).
2 Links Design e Tecnologia
www.2links.com.br
-----------------------------------------------------------------------
Conheça o Planalto Norte, a direção certa para bons negócios.
www.planaltonorte.com.br
#15
Posted 25/05/2004, 10:27
calma tbm não e pra tanto !
se queres fazer algo assim que tal começar do zero com outro topico , com outro nome de topico + relacionado ao assunto ...
até + !!!!
PALMEIRAS - Primeiro campeão do mundo em 1951
1 user(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)