revX Posted November 21, 2005 at 01:02 PM Report #7074 Posted November 21, 2005 at 01:02 PM Aqui fica um tutorial de como criar um sistema de artigos simples 😄 base_de_dados.php <?php // Dados de login $hostado = "localhost"; //Normalmente é localhost $base_de_dados = "nome_da_base_de_dados"; $utilizador = "utilizador_da_db"; $password = "password"; ?> $conectando = mysql_connect($hostado, $utilizador, $password) or die ('Erro ligando há base de dados MySql'); mysql_select_db($base_de_dados); Em cima inserimos os dados para fazer a ligação à base de dados e fazemos a ligação sair.php <?php // Fechando a ligação mysql_close($conn); ?> O ficheiro que fecha a ligação à base de dados, poupa o trabalho de estar a repetir o código Criando a tabela no MySql mysql_query ("CREATE TABLE `Artigos` ( `id` INT NOT NULL AUTO_INCREMENT, `data` TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL, `titulo` TEXT NOT NULL, `conteudo` TEXT NOT NULL, PRIMARY KEY (id) ) TYPE=myisam ; "); Aqui criamos a tabela necessária para o sistema funcionar artigo.php <?php include 'base_de_dados.php'; // se não for especificada o id listar if(!isset($_GET['id'])) { $self = $_SERVER['PHP_SELF']; $query = "SELECT id, titulo FROM Artigos ORDER BY id"; $resultado = mysql_query($query) or die('Erro : ' . mysql_error()); // Criando a lista de artigos $conteudo = '<ol>'; while($row = mysql_fetch_array($resultado, MYSQL_NUM)) { list($id, $titulo) = $row; $conteudo .= "<li><a href=\"ver_artigo.php?id=$id\">$titulo</a></li>\r\n"; } $conteudo .= '</ol>'; $titulo = 'Artigos'; } else { // Obtendo informação da base de dados $query = "SELECT titulo, conteudo FROM Artigos WHERE id=".$_GET['id']; $resultado = mysql_query($query) or die('Erro : ' . mysql_error()); $row = mysql_fetch_array($resultado, MYSQL_ASSOC); $titulo = $row['titulo']; $conteudo = $row['conteudo]; } include 'sair.php'; ?> <html> <head> <title>Artigos</title> </head> <body> <h1 align="center"><?php echo $titulo; ?></h1> <?php echo $conteudo; // Links para ver os artigos if(isset($_GET['id'])) { ?> <p> </p> <p align="center"><a href="<?php echo $_SERVER['PHP_SELF']; ?>">Lista de Artigos</a></p> <?php } ?> <div align="center" class="estilo3">(c) <a href="http://portugal-a-programar.org">Portugal-a-programar.org</a> - <b>Coder:</b> RevX</div> </body> </html> <?php include 'base_de_dados.php'; // Para a cache crie na directoria dos php's a pasta cache e lá dentro // o ficheiro index.html, mude para CHMOD 777 $cacheDir = dirname(__FILE__) . '/cache/'; if (isset($_GET['id'])) { $cacheFile = $cacheDir . '_' . $_GET['id'] . '.html'; } else { $cacheFile = $cacheDir . 'index.html'; } if (file_exists($cacheFile)) { readfile($cacheFile); exit; } if(!isset($_GET['id'])) { $self = $_SERVER['PHP_SELF']; $query = "SELECT id, titulo FROM Artigos ORDER BY id"; $resultado = mysql_query($query) or die('Erro : ' . mysql_error()); $introducao = '<ol>'; while($row = mysql_fetch_array($resultado, MYSQL_NUM)) { list($id, $titulo) = $row; $introducao .= "<li><a href=\"$self?id=$id\">$titulo</a></li>\r\n"; } $introducao .= '</ol>'; $titulo = 'Artigos'; } else { // Obter informação da base de dados $query = "SELECT titulo, texto_intro, texto_completo FROM Artigos WHERE id=".$_GET['id']; $resultado = mysql_query($query) or die('Error : ' . mysql_error()); $row = mysql_fetch_array($resultado, MYSQL_ASSOC); $titulo = $row['titulo']; $introducao = $row['texto_intro']; $desenvolvimento = $row['texto_completo']; } include 'saindo.php'; ?> Aqui definimos o index dos artigos criar_artigo.php <html> <head> <title>Criar Artigo</title> </head> <body> <form method="post"> <table width="100%" border="0" cellpadding="2" cellspacing="1" align="center"> <tr> <td width="100"><font color="#FF0000"><b>Titulo:</b></font></td> <td><input name="titulo" type="text" value="" size="53" /></td> </tr> <tr> <td width="100"><b>Conteúdo:</b></td> <td><textarea name="desenvolvimento" cols="50" rows="10"><textarea></td> </tr> <tr> <td width="100"> </td> <td> </td> </tr> <tr> <td colspan="2" align="center"><input name="gravar" type="submit" value="Gravar Artigo"></td> </tr> </table> </form> <?php if(isset($_POST['gravar'])) { $titulo = $_POST['titulo']; $conteudo = $_POST['conteudo]; if(!get_magic_quotes_gpc()) { $titulo = addslashes($titulo); $conteudo = addslashes($conteudo); } include 'base_de_dados.php'; $query = " INSERT INTO Artigos (titulo, conteudo) ". " VALUES ('$titulo', '$conteudo')"; mysql_query($query) or die('Erro ao ligar à Base de Dados'); include 'sair.php'; echo "Artigo '$titulo' adicionado"; } ?> </td> </tr> </table> </td> </tr> </table> <div align="center" class="estilo3">(c) <a href="http://portugal-a-programar.org">Portugal-a-programar.org</a> - <b>Coder:</b> RevX</div> </body> </html> Aqui criamos o sitio onde vamos introduzir os artigos para eles serem adicionados. ver_artigo.php <?php include 'base_de_dados.php'; /* Escolhendo a directoria onde se vai armazenar a cache */ $cacheDir = dirname(__FILE__) . '/cache/'; /* Gerando o nome do ficheiro de cache neste caso será feito um index apartir dos ids */ if (isset($_GET['id'])) { $cacheFile = $cacheDir . '_' . $_GET['id'] . '.html'; } else { $cacheFile = $cacheDir . 'index.html'; } /* Se o ficheiro em cache for encontrado envia-se para o cliente */ if (file_exists($cacheFile)) { header("Content-Type: text/html"); readfile($cacheFile); exit; } /* Se o ficheiro de cache não for encontrado/Não existir */ // se não for especificada o id listar if(!isset($_GET['id'])) { $self = $_SERVER['PHP_SELF']; $query = "SELECT id, titulo FROM Artigos ORDER BY id"; $resultado = mysql_query($query) or die('Erro : ' . mysql_error()); // Criando a lista de artigos $conteudo = '<ol>'; while($row = mysql_fetch_array($resultado, MYSQL_NUM)) { list($id, $titulo) = $row; $conteudo .= "<li><a href=\"$self?id=$id\">$titulo</a></li>\r\n"; } $conteudo .= '</ol>'; $titulo = 'Artigos'; } else { // Obtendo informação da base de dados $query = "SELECT titulo, conteudo FROM Artigos WHERE id=".$_GET['id']; $resultado = mysql_query($query) or die('Error : ' . mysql_error()); $row = mysql_fetch_array($resultado, MYSQL_ASSOC); $titulo = $row['titulo']; $conteudo = $row['conteudo']; } include 'saindo.php'; ?> <?php // iniciando buffering ob_start(); ?> <html> <head> <title> <?php echo $titulo; ?> </title> </head> <body> <?php echo $conteudo; // Links para ver os artigos if(isset($_GET['id'])) { ?> <p> </p> <p align="center"><a href="<?php echo $_SERVER['PHP_SELF']; ?>">Lista de Artigos</a></p> <?php } ?> <div align="center" class="estilo3">(c) <a href="http://portugal-a-programar.org">Portugal-a-programar.org</a> - <b>Coder:</b> RevX</div> </body> </html> <?php // obter buffer $buffer = ob_get_contents(); //acabando com o buffer ob_end_flush(); // criando o ficheiro de cache $fp = @fopen($cacheFile, "w"); @fwrite($fp, $buffer); @fclose($fp); ?> Aqui vemos os artigos, estando este intimamente ligado ao artigo.php E aqui fica um simples sistema de artigos que pode ser mais desenvolvido, eu por exemplo já inclui o row da data que pode ser chamado se quiserem 😄 Peço desculpa por algum engano mas tendo em conta que estou na escola em tempo de aulas... [Artigo no Wiki]
revX Posted November 21, 2005 at 01:06 PM Author Report #7075 Posted November 21, 2005 at 01:06 PM ah já agora, eu sei que o código pode ser simplificado e nem está grande coisa, já estou a espera de comentários assim :-D :roll:
revX Posted November 21, 2005 at 05:59 PM Author Report #7087 Posted November 21, 2005 at 05:59 PM ninguem comenta :x
saramgsilva Posted November 21, 2005 at 06:18 PM Report #7088 Posted November 21, 2005 at 06:18 PM ha 1 coisa que se chama editar, pra alterar a msg escrita...pra evitar escrever 3 msg seguidas...relativas a msg inicial e ja agora...isso é tipo o login de uma pagina em php, usando 1 base de dados??... poem o resultado final...pra ver como fica sff 😛 www.saramgsilva.com As minhas apps no WP7 Marketplace Youtube : Galinho - Windows Phone 7.5
deathseeker25 Posted November 21, 2005 at 06:26 PM Report #7089 Posted November 21, 2005 at 06:26 PM Bem para quem está a dar os primeiros passos na programação em PHP, como eu, isto ajuda e muito mesmo. Grande tut, grande exemplo revX. É destas iniciativas que o forum quer.... Cumps
revX Posted November 21, 2005 at 06:33 PM Author Report #7091 Posted November 21, 2005 at 06:33 PM hm não isto é algo que não involve login's cria-se a base de dados, preenchemos os dados da base de dados no base_de_dados.php, executamos um query sql com aqueles códigos que dei em cima para o MySql e criamos os ficheiros php com o conteudo pus em cima, quanto a exemplos, este sistema vai fazer parte do meu próximo trabalho php... um cms 😄
Guest Marine Posted November 5, 2006 at 05:28 PM Report #62251 Posted November 5, 2006 at 05:28 PM Tu dominas disto. Também ja deves ter muita experiência!!! Só tenho a dizer uma coisa: os meus parabéns!
Hipnoted Posted November 5, 2006 at 06:40 PM Report #62275 Posted November 5, 2006 at 06:40 PM Tu dominas disto. Também ja deves ter muita experiência!!! Só tenho a dizer uma coisa: os meus parabéns! Bem, tou a ver que es um arqueólogo muito bom, 1 ano depois do último comentário fazer um novo... ? "Nunca discutas com um idiota. Eles arrastam-te até ao seu nível e depois ganham-te em experiência"
Pl@yeR4EVer Posted December 3, 2006 at 09:04 PM Report #68538 Posted December 3, 2006 at 09:04 PM revX mt bom post... Dá mt jeito... Cumps
HecKel Posted July 15, 2008 at 04:03 PM Report #198919 Posted July 15, 2008 at 04:03 PM Artigo colocado no Wiki, ver aqui. Look Left Blog
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now