Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/01/2010, 18:56
winjose
 
Fecha de Ingreso: julio-2008
Mensajes: 258
Antigüedad: 15 años, 9 meses
Puntos: 9
Mensaje Aporte -- sistema de noticias sencillooo!!! Explicado para nobatos.

Hola amigos, quiero aportar un sistema de noticias que inplmentaremos en cualquier zona de nuestra web con un header; Supongamos que tenemos noticia.php y que es el archivo que muestra nuestra noticia, pues con una tabla, y un poco de css hacemos lo que queramos en cuanto a diseño de y ubicacion de la noticia. En este aporte unicamente mostraré como generar, guardar y mostrar una noticia con (titulo, contenido).

1º Creamos la tabla en nuestra base de datos
Código:
Base de datos sistemanoticias
CREATE TABLE `home_not` (
  `not_ID` int(11) NOT NULL auto_increment,
  `notTitulo` varchar(255) NOT NULL,
  `notTexto` text NOT NULL,
  PRIMARY KEY  (`not_ID`)
) ENGINE=MyISAM;
Una vez creada la tabla, ya tenemos donde guardar los valores que adquirirá titulo y el contenido de nuestra noticia.
----------------------------------
2º Creamos la conexion a nuestra base de datos. db-cnx.php
Código PHP:
<?php
$db_link 
mysql_connect('localhost''usuario''contraseña');
if(!
$db_link){
    die(
'No se pudo conectar: ' mysql_error());
}
$db_selected mysql_select_db('sistemanoticias'$db_link);
if(!
$db_selected){
    die(
'No se selecciono la BD: ' mysql_error());
}
?>
en localhost para los que no sepan, sebe ir el nombre del servidor donde se aloja nuestra web (en este caso tenemos el servidor local de nuestro pc), tambien debemos sustituir los valores de contraseña y usuario.
-------------------------------------
3º Creamos el archivo que se encargará de recojer, procesar y guardar los datos de nuestra noticia en la base de datos. add-noticia.php (el nombre podría ser generar-noticia.php, o cualquier otro). Como vemos disponemos en la parte inferior de un formulario, que es a través del cual añadiremos nuestras noticias.
Código PHP:
<?php
// incluimos el archivo de conexion
include ('db-cnx.php');

// recibimos el formulario
if(isset($_POST['enviar']) && $_POST['enviar'] == 'Enviar'){
    
// comprobamos que el formulario no envie campos vacios
    
if(!empty($_POST['notTitulo']) && $_POST['notTexto']){
        
// creamos las variables y les asignamos los valores a insertar
        
$notTitulo $_POST['notTitulo'];
        
$notTexto $_POST['notTexto'];
        
// hacemos el INSERT en la BD
        
$sqlInsertNot mysql_query("INSERT INTO sn_noticias
                                     (notTitulo, notTexto)
                                     VALUES ('$notTitulo', '$notTexto')"
,
                                     
$db_link) or die(mysql_error());
        
// enviamos un mensaje de exito
        
echo "Los datos fueron gurdados correctamente";
    }else{
        
// si el formulario envia algun campo vacio
        // enviamos un mensaje de error
        
echo "Debe llenar todos los campos del formulario";
    }
}
?>
<!-- el formulario -->
<form name="noticia" action="<?php $_SERVER['PHP_SELF']; ?>" method="post">
    <p>
    T&iacute;tulo de la Noticia<br />
    <input type="text" name="notTitulo" size="50" />
    </p>
    <p>
    Texto de la Noticia<br />
    <textarea name="notTexto" rows="10" cols="50"></textarea>
    </p>
    <p>
    </select>
    </p>
    <p>
    <input type="submit" name="enviar" value="Enviar" />
    </p>
Este archivo lo que hace basicamente es conectarse a la base de datos, e introducir los valores del form, siempre y cuando se cumplan nuestras condiciones.
------------------------------------------
Al paso 3º, osea al anterior, le podriamos dotar de mayor seguridad, pero para iniciados mejor elejir la opcion de arriba. aqui os pongo la opcion con mayor seguridad:

Código PHP:
<?php
// incluimos el archivo de conexion
include ('db-cnx.php');
$env=addslashes(trim($_POST['enviar']));
$tit=addslashes(trim($_POST['notTitulo']));
$text=addslashes(trim($_POST['notTexto']));
// recibimos el formulario
if(isset($env) && $env == 'Enviar'){
    
// comprobamos que el formulario no envie campos vacios
    
if(!empty($tit) && $text){
        
// creamos las variables y les asignamos los valores a insertar
        
$notTitulo $tit;
        
$notTexto $text;
        
// hacemos el INSERT en la BD
        
$query_esc=mysql_real_escape_string("INSERT INTO sn_noticias
                                     (notTitulo, notTexto)
                                     VALUES ('$notTitulo', '$notTexto')"
);
        
$sqlInsertNot mysql_query($query_esc,$db_link) or die(mysql_error());                                                      
        
// enviamos un mensaje de exito
        
echo "Los datos fueron gurdados correctamente";
    }else{
        
// si el formulario envia algun campo vacio
        // enviamos un mensaje de error
        
echo "Debe llenar todos los campos del formulario";
    }
}
?>
<!-- el formulario -->
<form name="noticia" action="<?php $_SERVER['PHP_SELF']; ?>" method="post">
    <p>
    T&iacute;tulo de la Noticia<br />
    <input type="text" name="notTitulo" size="50" />
    </p>
    <p>
    Texto de la Noticia<br />
    <textarea name="notTexto" rows="10" cols="50"></textarea>
    </p>
    <p>
    </select>
    </p>
    <p>
    <input type="submit" name="enviar" value="Enviar" />
    </p>
-------------------------------------------
4º Creamos el archivo que recojerá los valores de la db. list-noticia.php
Código PHP:
<?php
// generamos nuestra consulta
$sqlQueryNot mysql_query("SELECT notTitulo, notTexto FROM sn_noticias"$db_link)
                            or die(
mysql_error);
echo 
"<h1>$titulo</h1>";
// mostramos las noticias,
// usamos un bucle while
while($rowNot mysql_fetch_array($sqlQueryNot)){
    echo 
"<h1>$rowNot[notTitulo]</h1>";
    echo 
nl2br("$rowNot[notTexto]");
}
?>
-------------------------------------
5º por ultimo. Esto es a gusto de cada uno. Crearemos el archivo.php, que recoge o muestra nuestra noticias. Yo personalmente lo que haría es en un html simple, crear una tabla de diseño, y asignarle una hoja css a mi gusto. posteriormente incluiría este html (que es el que incluye nuestra noticia) mediante un include en nuestra web.
index.php
Código PHP:
<html>
<head>
    <title>Sistema de Noticias</title>
</head>
<body>
<?php include('db-cnx.php'); ?>
    <?php include('list-noticia.php'); ?>
</div>
</body>
</html>
Como ven es simple, pero efectivo para empezar a crear una especie de web modular paa principiantes, este por ejemplo sería un modulo de noticias jejej...
Aun no la he probado, si ven algun fallo, o no les funciona algo comentenlo y lo aclaro, o lo areglo. Un saludo a todos y Feliz año jeje
__________________
"La diversidad de opiniones crean una perspectiva capaz de ver todas las caras del objeto"

Última edición por winjose; 05/01/2010 a las 07:45