Foros del Web » Programando para Internet » PHP »

[Aportillo] Sistema de noticias basiquisimo

Estas en el tema de [Aportillo] Sistema de noticias basiquisimo en el foro de PHP en Foros del Web. Es el sistema de noticias mas basico que he visto en mi vida, lo hice yo :S pero como estoy comenzando, es el primer script ...
  #1 (permalink)  
Antiguo 05/08/2009, 12:22
Avatar de fcdragons  
Fecha de Ingreso: agosto-2008
Ubicación: echo $_REQUEST['ubicacion'];
Mensajes: 474
Antigüedad: 15 años, 8 meses
Puntos: 13
[Aportillo] Sistema de noticias basiquisimo

Es el sistema de noticias mas basico que he visto en mi vida, lo hice yo :S pero como estoy comenzando, es el primer script que hago por mi cuenta :)

Bueno primero hay que comenzar creando las tablas en la base de datos :)

Código:
CREATE TABLE IF NOT EXISTS `noticias` (
  `titulo` varchar(255) character set latin1 collate latin1_general_ci NOT NULL,
  `email` varchar(255) character set latin1 collate latin1_general_ci NOT NULL,
  `web` varchar(255) character set latin1 collate latin1_general_ci NOT NULL,
  `noticia` varchar(255) character set latin1 collate latin1_general_ci NOT NULL,
  UNIQUE KEY `id` (`titulo`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
Bueno, tambien necesitamos una pagina donde mostrar las noticias, esta sera index.php

Código PHP:
<?php
//incluimos archivo de conexion
require("conexion.php");
//cogemos datos de la base
$select mysql_query("select * from noticias"$conectar)or die("Fallo el select: ".mysql_error());
//los mostramos
while($not mysql_fetch_array($select)){
//titulo de la web, con direccion a la web de quien la envio
echo "<a href=".$not['web'].">".$not['titulo']."</a><p>";
//mostramos el contenido de la noticia
echo $not['noticia'].'';
echo 
"<p><br><h5>Codigo by <a href=http://setratadeunblog.host22.com>Se trata de un Blog</a><p><br>";
echo 
"<a href=noticianueva.php>A&ntilde;adir una nueva noticia</a><p><br><p><hr><p><br><p>";
}
?>
Lleva marca de agua

Bueno, despues un formulario por donde enviar las noticias, este sera noticianueva.php, aunque podria haber sido HTML perfectamente

Código HTML:
<form action="procesarnoticia.php" name="aniadirnoticia" method="post" enctype="multipart/formdata">
Titulo de la noticia:<br>
<input type="text" name="titulo"><p>
Tu correo electronico:<br>
<input type="text" name="email"><p>
Tu sitio web:<br>
<input type="text" name="web"><p>
Tu noticia:<br>
<textarea cols="100" rows="30" name="noticia"></textarea>
<p>
<input type="reset" value="vaciar"><input type="submit" value="Enviar noticia">
</form> 
Y lo que procesa las noticias que se envian que es procesarnoticia.php

Código PHP:
<?php
//El archivo de conexion a la base de datos
require("conexion.php");
//Cogemos datos del formulario
$titulo $_POST['titulo'];
$email $_POST['email'];
$web $_POST['web'];
$noticia $_POST['noticia'];
//Miramos que no hayan campos vacios
if(!empty($_POST['titulo']) && $_POST['email'] && $_POST['web'] && $_POST['noticia']){
//insertamos datos en nuestra base de datos
$insertar mysql_query("insert into noticias(titulo, email, web, noticia) values ('$titulo', '$email', '$web', '$noticia')"$conectar)or die("No se pudieron meter los datos");
echo 
"Noticia enviada con exito! Ven <a href=index.php>Aqui</a> para verla";
}else{
echo 
"Rellena todos los campos! Vuelve al <a href=noticianueva.php>formulario</a> para meter los datos, ";
}

?>

Y por ultimo, para conectarse a la base de datos, el archivo conexion.php, este te tiras 2 horas seleccionandolo entero :O

Código PHP:
<?php
$conectar 
mysql_connect("servidor""usuario""password");
$base_datos mysql_select_db("base_de_datos"$conectar);
?>

Ya dije que es mi primer script, es normal que sea tan simple, espero que les agrade, esta probado, ya lo subire a una web de prueba

Adios :)


POR CIERTO. Hace poco subi un manual en PDF de PHP, me han dicho de ponerlo en una e-zine(revista online) Que les parece? Nose que hacer, si dar permiso o no :) ya asi me ayudan con esta dudilla
__________________
SumarioWeb
@sumarioweb
BasicNews

Última edición por fcdragons; 05/08/2009 a las 15:37 Razón: Arreglado un errorcillo
  #2 (permalink)  
Antiguo 05/08/2009, 13:37
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: [Aportillo] Sistema de noticias basiquisimo

Solo como observación, en tu archivo procesarnoticia.php de nada sirve que valides si hay campos vacios, ya que primero insertas en la BDD y luego verificas, necesitas invertir ese orden.

Saludos.
  #3 (permalink)  
Antiguo 05/08/2009, 13:38
Avatar de fcdragons  
Fecha de Ingreso: agosto-2008
Ubicación: echo $_REQUEST['ubicacion'];
Mensajes: 474
Antigüedad: 15 años, 8 meses
Puntos: 13
Respuesta: [Aportillo] Sistema de noticias basiquisimo

Gracias :D me encantan las criticas xD ahora lo cambio. Este codigo necesita montones de mejoras. Pero me hace ilusion que mi primer script sea un sistema de noticias.
__________________
SumarioWeb
@sumarioweb
BasicNews
  #4 (permalink)  
Antiguo 05/08/2009, 14:32
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: [Aportillo] Sistema de noticias basiquisimo

Aún sigues con el problema, aunque aparezca el mensaje va a hacer el insert, necesitas mejorar tu control de flujo.

Saludos.
  #5 (permalink)  
Antiguo 05/08/2009, 15:37
Avatar de fcdragons  
Fecha de Ingreso: agosto-2008
Ubicación: echo $_REQUEST['ubicacion'];
Mensajes: 474
Antigüedad: 15 años, 8 meses
Puntos: 13
Respuesta: [Aportillo] Sistema de noticias basiquisimo

Bueno GatorV creo que asi ya quedo bien :)
__________________
SumarioWeb
@sumarioweb
BasicNews
  #6 (permalink)  
Antiguo 05/08/2009, 15:45
 
Fecha de Ingreso: enero-2009
Mensajes: 408
Antigüedad: 15 años, 3 meses
Puntos: 14
Respuesta: [Aportillo] Sistema de noticias basiquisimo

Otro consejo amigo , valida los datos que tu usuario envie a tu aplicación , debido a que sino te pueden alterar las consultas sql y producir Sql Inject con lo cual provocas un desastre en tu server mysql.También te recomiendo que cuando ejecutas codigo en producción , debes eliminar todo reporte de errores que afecte a la seguridad de tu aplicación.

Saludos!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:52.