Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: elquenosabe en 17 Julio 2010, 03:44 am



Título: sistema de noticias
Publicado por: elquenosabe en 17 Julio 2010, 03:44 am
no se muy bien como explicarme y por lo tanto no supe bien como buscar algo relacionado a lo que quiero hacer, sin tanto rollo ahi va...

quiero hacer que a cada una de las noticias que registre tenga una url independiente oseace que como un "lea mas" y te mande a solo un documento donde se muestre la informacion completa, absolutamente tipo wordpress aun que si me gustaria desarrollarla por mi cuenta aun que si ando muy perdido, como podria hacer algo asi? que caray espero no sea muy mala mi pregunta, de antemano gracias


Título: Re: sistema de noticias
Publicado por: Nakp en 17 Julio 2010, 03:57 am
si sabes programar en php?

la idea es basica... cada noticia tiene un id, y buscas la noticia obteniendo el id de la url... en la pagina inicial puedes mostrar las 5 ultimas ordenando por fecha, recortar la cantidad de caracteres y mostrar un link del tipo index.php?noticia=id

donde la id es la de la noticia obviamente ;)


Título: Re: sistema de noticias
Publicado por: elquenosabe en 17 Julio 2010, 04:07 am
jejeje si si se un poco de php no soy bueno pero hay la llevo jeje

okas cada noticia tiene un id lo que debo de hacer es solo un enlace con el valor del id correspondiente a cada noticia, eso suena facil pero eso creo solo me mostraria solo la noticia y no me mostraria todo el resto de la plantilla o si??

gracias  :D


Título: Re: sistema de noticias
Publicado por: Nakp en 17 Julio 2010, 04:25 am
tienes una tabla?
id | titulo | cuerpo de la noticia | fecha

Código
  1. SELECT * FROM noticias WHERE id=el_id_de_la_url

index?noticia=id mostraria en la pagina

Titulo de la noticia

Cuerpo de la noticia (de acuerdo al id)

en la pag principal seleccionas los ultimos 5, y los despliegas de forma similar, cortando el texto y agregando un enlace con el id de la noticia al final

Código
  1. SELECT * FROM noticias ORDER BY fecha DESC LIMIT #

donde # es la cantidad de noticias que quieres desplegar

ya averiguaras lo demas ;) solo te doy la idea :P


Título: Re: sistema de noticias
Publicado por: Ari Slash en 17 Julio 2010, 04:30 am
mira este link

es para mostrar los ultimos 5 mensajes de un foro, como el del index del foro


pero se puede adaptar facilmente a las noticias


http://foro.elhacker.net/bases_de_datos/consulta_ultimos_mensajes-t280898.0.html



saludos


Título: Re: sistema de noticias
Publicado por: elquenosabe en 17 Julio 2010, 04:34 am
woooooooooooow tengo algo que leer Ari-Slash pero te lo agradezco y te aceguro que lo estoy leyendo y Nakp pues que mas puedo pedir se los agradezco muchisimo  ;D


Título: Re: sistema de noticias
Publicado por: n3fisto en 17 Julio 2010, 04:38 am
Bueno si quieres te paso el code de un sistema de noticias que hice... dentro de poco lo posteo solo tengo q buscarlo


Título: Re: sistema de noticias
Publicado por: elquenosabe en 17 Julio 2010, 04:40 am
wooow no seria nada malo ese codigo digo le entendere poco pero me dara ideas para hacer el mio ya que si estoy interesado en aprender mucho del php


Título: Re: sistema de noticias
Publicado por: Zazú en 17 Julio 2010, 05:01 am
Mira, te ahorro un POCO el trabajo, me molesta bastante que podiendo ayudarte un poco más no lo hagan..

Suponete que vos tenes esta consulta para mostrar TODAS las noticias en un index
Código
  1. <?php
  2. $query=mysql_query("select * from noticias order by id desc");
  3. while($print=mysql_fetch_array($query)){
  4. echo "Titulo: ".$print[titulo]."";
  5. }
  6. ?>
por darte un ejemplo...

Ahora mira, suponete que ese sea el index, despues tendrias otro archivo llamado "noticia.php" (o el que vos quieras)

La query seria ALGO así
Código
  1. <?php
  2. $a=sprintf("select * from noticias where id='%s'", mysql_real_escape_string($_GET[id]));
  3. $b=mysql_query($a);
  4. while($print=mysql_fetch_array($b)){
  5. echo "titulo:".$print[titulo]."";
  6. }
  7. ?>
  8.  
Fijate que ahi se limita a seleccionar todo lo que este en la tabla noticias pero solamente del id que se establezca(por get   noticia.php?id=4)


Espero haber sido explícito :P
PD: Es posíble que el segundo codigo sea vulnerable inyección SQL(por favor limitense a responder si solamente conocen -1+union+select+1,2,3 :D)
Otra cosa mas.. Mira aca
http://duraznito.DiOs De Lared/?coment=6765
Hay un sistema de noticias que para empezar esta muy bueno, si mal no recuerdo es vulnerable a inyección SQL, eso ya corre por tu cuenta, tio Google no muerde(ayuda: evitar sql injection              es mas que suficiente para encontrar mucha información sobre como hacer y evitar este ataque :P)


suerte :)


Título: Re: sistema de noticias
Publicado por: elquenosabe en 17 Julio 2010, 05:16 am
woooooow eso me lo deja mas claroo creo que sin tu ayuda me ubiera costado demasiado darle una solucion pero ya te entendi y bueno creo que lo de la vulnerabilidad ya le toca al google ayudarme, de cualquier modo en el momento en el que lo tenga terminado les aseguro que les preguntare si es vulnerable y muchas muchas gracias Zezú  ;D


Título: Re: sistema de noticias
Publicado por: Ari Slash en 17 Julio 2010, 05:26 am
Mira, te ahorro un POCO el trabajo, me molesta bastante que podiendo ayudarte un poco más no lo hagan..


No se trata de eso
perfectamente todos podriamos hacerle todo
pero la idea es que el aprenda
ves el link que deje? si te das cuenta no me dieron el codigo en bandeja
sino que me "guiaron a la solucion" y es esto lo que se debe hacer


Título: Re: sistema de noticias
Publicado por: Zazú en 17 Julio 2010, 05:50 am
Si Slash, yo entiendo lo que decís pero a lo que yo voy es que creo que se aprende un poco más leyendo un ejemplo aunque sea simple
Por ejemplo Nakp le dio la forma en la que tendría que hacer la consulta, y esta perfecto pero hubiera sido mas fácil para el entender con un ejemplo hecho en PHP  :silbar:
Tampoco es decirle TODO pero no veo el problema de facilitarle un poco más la información
Yo por mi parte aprendí PHP sin preguntar 1 sola cosa, pero hay gente que no puede :)

Suerte  :rolleyes:


EDIT: "elquenosabe" mira, te recomiendo que leas MUCHO codigo en php, yo casi no leí ningun tutorial es mas logíca que otra cosa (desde mi punto de vista)   busca en google "sistema de usuarios PHP","sistema de noticias PHP", "sistema de encuestas PHP" o lo que se te pueda ocurrir, y vas a ver lo fácil que es una ves que entiendas :P


Título: Re: sistema de noticias
Publicado por: n3fisto en 17 Julio 2010, 06:19 am
Bueno aqui esta lo que use para  un sistema que hice en la Universidad, aver si te sirve, antes de todo tienes que crear esta tabla en la base de datos y añadir estos 2 archivos

wootnews.php (Donde recibira la noticia)

newsadmin Una carpeta dentro
Admin.php

Tabla de la Base de Datos

Código
  1. CREATE TABLE `wootnews` (
  2.  `id` INT(11) NOT NULL AUTO_INCREMENT,
  3.    `message` longtext NOT NULL,
  4.  `date` text NOT NULL,
  5.  `subject` text NOT NULL,
  6.  PRIMARY KEY  (`id`)
  7. ) TYPE=MyISAM;


wootnews.php

Código
  1. <?php
  2.  
  3. $config['host'] = 'localhost';
  4. $config['user'] = 'n3fisto';
  5. $config['pass'] = '17194561596';
  6. $config['db'] = 'apl';
  7.  
  8. // here is the start html, <html><body> for example
  9. $start = '<html><head><title>News Flash</title></head><body bgcolor="#ffffff">';
  10. // here is the end html that is put to document
  11. $eb = '</body></html>';
  12. // news template
  13. $tpl = '<font color ="#000000" size="1" Font="Verdana"><font face="Verdana">
  14. <!--//%t=Date-->
  15. <!--//%=Title or Subject-->
  16. <!--//%=News-->
  17. <!--//%a=User or Posted by-->
  18. <b>%t - %s</b><br>
  19. <br>
  20. %n
  21. <br>
  22. <br>
  23. <b>Posted by %a</b>
  24. <br>
  25. <HR size="1" align="right" width="100%" color="7D889A">
  26. <br>
  27. </font> ';
  28. echo $start;
  29.  
  30. mysql_cnect($config['host'], $config['user'], $config['pass']) or die('Connection failed');
  31. mysql_select_db($config['db']) or die('DB selection failed');
  32.  
  33. $max = mysql_fetch_array(myspl_query('SELECT MAX(id) FROM wootnews'));
  34. $max = $max['MAX(id)']+1;
  35.  
  36. while($result = mysql_fetch_array(mysql_query('SELECT * FROM wootnews WHERE id<' . $max . ' ORDER BY id DESC;')))
  37. {
  38. echo str_replace(Array('%t', '%a', '%n', '%s'), Array($result['date'], $result['name'], $result['message'], $result['subject']), $tpl);
  39. $max = $result['id'];
  40. }
  41.  
  42. echo $end;
  43. ?>

admin.php

Código
  1. <head>
  2. <title>WootNews! Version 0.7</title>
  3. </head>
  4.  
  5. <BODY BGCOLOR=#336699 link="#000080" vlink="#000080" alink="#000080">
  6. <font color ="FFFFFF" size="1" Font="Verdana"><font face="Verdana"><b>WootNews! Version 0.7</b></font>
  7. <?php
  8.  
  9.  
  10.  
  11. $config['host'] = 'localhost';
  12. $config['user'] = 'n3fisto';
  13. $config['pass'] = '17194561596';
  14. $config['db'] = 'apl';
  15.  
  16. mysql_connect($config['host'], $config['user'], $config['pass']) or die('Connection failed');
  17. mysql_select_bd($config['db']) or die('DB selection failed');
  18.  
  19. if(isset($_POST['news']))
  20. {
  21. // name, message, date
  22. $message = $_POST['news'];
  23. $author = $_POST['author'];
  24. $date = date('F j Y');
  25.        $subject =POST['subject'];
  26. mysql_query('INSERT INTO wootnews (name, message, date, subject) VALUES ("' . $author . '", "' . $message . '", "' . $date . '",  "' . $subject . '");') or $error = true;
  27.  
  28.  
  29. if(isset($error))
  30.  echo 'There was error in adding news!<br><small>' . mysql_error() . '</small>';
  31.  
  32. else
  33.  echo 'News added succesfully';
  34.  
  35. }
  36.  
  37. echo '<form action="' . PHP_SELF . '" method="POST"><font color ="FFFFFF" size="1" Font="Verdana"><font face="Verdana">
  38. News<br><textarea style="border: 1px solid #666666; background: #C0C0C0; font-family: verdana; font-size: 9pt; color:#000000;"
  39. rows=10 cols=40 name="news">' . '</textarea>
  40. <br>
  41. Author<br><input style="border: 1px solid #666666; background: #C0C0C0; font-family: verdana; font-size: 9pt; color:#000000;" type="text" name="author">
  42. <br>
  43. Subject<br><input style="border: 1px solid #666666; background: #C0C0C0; font-family: verdana; font-size: 9pt; color:#000000;" type="text" name="subject"><br><br>
  44. <input style="border: 1px solid #666666; background: #C0C0C0; font-family: verdana; font-size: 8pt; color:#000000;"
  45. type="submit" value="Post">
  46.  
  47.  
  48. </font>
  49.  </font>
  50.  <p align="center"><font face="Verdana">WootNews! Version 0.7 Created by <a href="http://www.smeare.com">Smeare
  51.  Design Studios</a></font></p>
  52.  <p align="center"><font face="Verdana">Affordable Web Hosting Provided by <a href="http://www.hostdogs.com">HostDogs</a></font></p>
  53.  <font face="Verdana">
  54. </form>';?>
  55.  

Espero que te sirva..




Título: Re: sistema de noticias
Publicado por: bizco en 17 Julio 2010, 06:42 am
yo pienso lo mismo que ari, soy mas de

Citar
Si das pescado a un hombre hambriento lo nutres durante una jornada. Si le enseñas a pescar, le nutrirás toda la vida.

gran frase.


Título: Re: sistema de noticias
Publicado por: n3fisto en 17 Julio 2010, 06:48 am
De echo tienes razon............... por eso el script que puse esta mal  >:D no esta completamente bien tiene que revisar


Título: Re: sistema de noticias
Publicado por: MonzterKuki. en 17 Julio 2010, 07:14 am
De echo tienes razon............... por eso el script que puse esta mal  >:D no esta completamente bien tiene que revisar
Entonces,para que lo pones si es erroneo,si ya ofreces en bandeja algo dejaselo bien  :¬¬

Como sistema de notixias,usa el classico cutenews y edita la parte visual hazle un skin a tu gusto etc..


Saludos.


Título: Re: sistema de noticias
Publicado por: n3fisto en 17 Julio 2010, 18:28 pm
De echo tienes razon............... por eso el script que puse esta mal  >:D no esta completamente bien tiene que revisar
Entonces,para que lo pones si es erroneo,si ya ofreces en bandeja algo dejaselo bien  :¬¬

Como sistema de notixias,usa el classico cutenews y edita la parte visual hazle un skin a tu gusto etc..


Saludos.

No es eso si no todo hay en internet el solo debe de buscar y darse modos nada mas que eso otra cosa es no tener la idea de buscar informacion y crecer es muy distinta.... el ya vera si le sirve o no ademas el code que puse ya hay en inter


Título: Re: sistema de noticias
Publicado por: elquenosabe en 17 Julio 2010, 20:27 pm
no peleen jeje cada uno tiene la idea de la enseñansa en internet de verdad agradezco cada uno de los comentarios y el codigo no lo uso para copiar y pegar partes del codigo por que si hiciera eso solo me complicaria mas la existencia y jamas lograria un buen resultado, estoy seguro que aprendere con este script que quiero hacer y pues todos los codigos y de mas que han dejado han sido de mucha ayuda y pues el cutenews es como rendirme y negarme a aprender creo jeje y si deplano soy un fracaso creo que usare un tagboard jajajajajaja xD buena solucion no?? broma broma


Título: Re: sistema de noticias
Publicado por: n3fisto en 18 Julio 2010, 22:48 pm
no peleen jeje cada uno tiene la idea de la enseñansa en internet de verdad agradezco cada uno de los comentarios y el codigo no lo uso para copiar y pegar partes del codigo por que si hiciera eso solo me complicaria mas la existencia y jamas lograria un buen resultado, estoy seguro que aprendere con este script que quiero hacer y pues todos los codigos y de mas que han dejado han sido de mucha ayuda y pues el cutenews es como rendirme y negarme a aprender creo jeje y si deplano soy un fracaso creo que usare un tagboard jajajajajaja xD buena solucion no?? broma broma

Bueno hermano aver si cuando lo terminas nos muestras


Título: Re: sistema de noticias
Publicado por: Zazú en 19 Julio 2010, 05:31 am
Mira, te muestro este que es un poquito mas complejo(tambien lo codie aca pero es para que veas bien y te guies más rapido)  :silbar:  ;-)

index.php
Código
  1. <?php
  2. include("conectar.php");
  3. $a=mysql_query("select * from noticias order by id desc");
  4. while($b=mysql_fetch_array($a)){
  5. echo "\n ".$b[titulo]." \n\r";
  6. echo " ".$b[noticia]."\n\n";
  7. echo "Fecha: ".$b[fecha]."\n\n";
  8. echo "<a href='noticia.php?id=".$b[id]."'> Seguir leyendo </a>\n\n";
  9. }
  10. ?>


noticia.php

Código
  1. <?php
  2. include("conectar.php");
  3. $que=sprintf("select * from noticias where id='%s'", mysql_real_escape_string($_GET[id]));
  4. $a=mysql_query($que);
  5. while($b=mysql_fetch_array($a)){
  6. echo "\n ".$b[titulo]." \n\r";
  7. echo " ".$b[noticia]."\n\n";
  8. echo "Fecha: ".$b[fecha]."\n\n";
  9. }
  10. ?>

Lo que queria que veas era sobre todo esto..

echo "<a href='noticia.php?id=".$b[id]."'> Seguir leyendo </a>\n\n";

Eso pondria un link al archivo noticia.php con el id de cada noticia que se vaya mostrando.
Cualquier cosa mandame un pm que te respondo cualquier duda que tengas :)

Suerte  ;)


Título: Re: sistema de noticias
Publicado por: elquenosabe en 19 Julio 2010, 20:47 pm
Aqui esta lo prometido les muestro mi codigo

----------nuevanoticia.php----------
Código
  1. <?php
  2. $con = mysql_connect("localhost","root","") or die (mysql_error());
  3. mysql_select_db("BD",$con) or die (mysql_error());
  4. if(($_POST['password'] == 'pass') && ($_POST['user'] == 'admin')) {
  5.  
  6. $pass = $_POST['password'];
  7. $user = $_POST['user'];
  8.  
  9. if(isset($_POST['titulo']) && isset($_POST['comentario'])) {
  10.  
  11.  $por = $_POST['por'];
  12.  $titulo = $_POST['titulo'];
  13.  $imagen = $_POST['imagen'];
  14.  $comentario = $_POST['comentario'];
  15.  $fuente = $_POST['fuente'];
  16.  $fecha = time();
  17.  
  18.  $conecta ="INSERT INTO noticias(por, titulo, imagen, texto, visto, fecha) values ('$por', '$titulo', '$imagen', '$comentario', '$fuente', '$fecha');";
  19.  $otro = mysql_query($conecta) or die(mysql_error());
  20.  
  21.  echo"<a href=index.php>Noticia incluida...</a> $por, $titulo
  22.  <form method=\"post\" action=\"nuevanoticia.php\">
  23.  <input type=\"hidden\" name=\"password\" value=\"$pass\">
  24.  <input type=\"hidden\" name=\"user\" value=\"$user\">
  25.  </form>";
  26.  
  27. }
  28.  
  29. if(empty($_POST['titulo']) && (empty($_POST['comentario']))) {
  30.  
  31.  echo"
  32.    <form method=\"post\" action=\"nuevanoticia.php\">
  33.  
  34.     <input type=\"text\" name=\"por\">Por<br>
  35.     <input type=\"text\" name=\"titulo\">Titulo<br>
  36.     <input type=\"text\" name=\"imagen\">Imagen/Video<br>
  37.     <input type=\"text\" name=\"fuente\">fuente<br>
  38.     <input type=\"hidden\" name=\"password\" value=\"$pass\">
  39.     <input type=\"hidden\" name=\"user\" value=\"$user\">
  40.     <textarea name=\"comentario\"></textarea><br>
  41.     <input type=\"submit\" value=\"Enviar\" name=\"enviar\">
  42.  
  43.    </form>";}
  44.  
  45. } else {
  46. echo"
  47.    <form method=\"post\" action=\"nuevanoticia.php\">
  48.  
  49.     Usuario<br><input type=\"text\" name=\"user\"><p>
  50.     Contrase&ntilde;a<br><input type=\"text\" name=\"password\"><br>
  51.     <input type=\"submit\" value=\"Entrar\">
  52.  
  53.    </form>";
  54. }
  55. ?>
Segun yo no preocupo tanto por la seguridad de esta sección


----------index.php----------
Código
  1. <?php
  2. $con = mysql_connect("localhost","root","") or die (mysql_error());
  3. mysql_select_db("BD",$con) or die (mysql_error());
  4.  
  5. $respuesta=mysql_query("SELECT * FROM noticias ORDER BY id DESC") or die (mysql_error());
  6.  
  7. while($datos=mysql_fetch_array($respuesta)) {
  8.  
  9. $fecha = date("d/m/Y",$datos[fecha]);
  10. echo "
  11.        <div class=\"notitulo\">
  12.          $datos[titulo];</div>
  13.        <div class=\"viagen\">
  14.          <img src=\"$datos[imagen]\" border=\"0\" alt=\"$datos[titulo]\" title=\"$datos[titulo]\"></div>
  15.        <div class=\"informacion\">
  16.          <div class=\"datos\">Fecha_</div>$fecha<div class=\"datos\">Fuente_</div>$datos[visto]</div>
  17.        <div class=\"espnoti\">
  18.          </div>
  19.        <div class=\"conoti\">
  20.          $datos[texto]... <a href=\"noticias.php?id=$datos[id]\">Leer mas...</a></div>";
  21. }
  22. ?>
imprimo los registros de la tabla


----------noticias---------
Código
  1. <?php
  2. $con = mysql_connect("localhost","root","") or die (mysql_error());
  3. mysql_select_db("BD",$con) or die (mysql_error());
  4.  
  5. $respuesta=sprintf("select * from noticias where id='%s'", addcslashes(mysql_real_escape_string($_GET[id]),'%_'));
  6. $query = mysql_query($respuesta);
  7.  
  8. if (mysql_num_rows($query) == 0)
  9.  
  10. {
  11.  
  12. echo "Error";
  13.  
  14. } else {
  15.  
  16. while($datos=mysql_fetch_array($query)) {
  17.  
  18. echo "$datos[titulo]<br>$datos[texto]";
  19.  
  20. }
  21. }
  22.  
  23. ?>
aqui es donde seguramente recivire muchos regaños jojo no supe bien que hacer al ser el id un campo que el usuario no registra. He leido un poco lo de los caracteres que se le agregan como la comilla simple que se puede evitar con el get_magic_quotes_gpc() o con el UNION+SELECT aun que este ultimo no lo entiendo bien y bueno mientras les dejo el codigo y seguire leyendo sobre el SQLI


Título: Re: sistema de noticias
Publicado por: Carluís en 21 Julio 2010, 22:12 pm
siempre me intereso en temas como este...

Acontinuación te dejare un sistema de noticias simple con la utilización de archivos de texto reemplazando así las bases de datos.

Este pequeño script es simple pero efectivo,si desean ver un demo pueden ver la parte de Temas Destacados de elhacker.net,notece que los anuncios se actualizan,este script genera noticias y las actualiza cada vez que recarges la página.

Este provee un Panel de Administración donde podrás administrar cada noticia.

http://www.simpleforo.net/simplenoticias.zip (http://www.simpleforo.net/simplenoticias.zip)

Espero pueda servirte... saludos.


Título: Re: sistema de noticias
Publicado por: Zazú en 23 Julio 2010, 17:00 pm
Carluis, no me parece fiable manejar las noticias con archivos, me parece mucho mas simple hacerlo en mysql :)