Comunidad PHPeros
Lenguajes => PHP => Tutoriales PHP => Mensaje iniciado por: naveda en 02 de Noviembre de 2006, 19:59:19 pm
-
Hola PHPeros, este tutorial será el primero de los 3 que pretendo hacer sobre este tema ;)
Voy a intentar ayudaros lo maximo posible en cuanto al tema de los sistemas de noticias.
Para evitar confusiones, el sistema se hará utilizando una base de datos MySQL.
En esta primera parte del tutorial vamos a dedicarnos a crear la base del sistema de noticias. En la segunda parte del tutorial avanzaremos en el sistema añadiendo un archivo de administración sencillo y, por ultimo, en la tercera parte del tutorial se avanzará aun mas añadiendo opciones BBCode y Emoticonos.
Antes de nada vamos a comentar las partes basicas del Sistema de Noticias:
- Formulario de Envio
- Archivo de Muestra
[Formulario de Envio]:
El formulario será sencillo, 1 campo de texto, un cuadro de texto y un Boton de Envio.
<form action="enviar.php" method="POST">
<input type="text" name="titulo" value="Titulo de la noticia"><br>
<textarea name="noticia">El texto de la noticia</textarea><br>
<input type="submit" name="enviar" value="Enviar Noticia">
</form>
Los datos enviados desde el formulario deben ser procesados y almacenados en la base de datos, eso lo conseguimos con el PHP. Para guardar datos en una base de datos MySQL debemos crear primeramente una tabla en la base de datos.
Para crear una tabla en la base de datos debemos usar codigo SQL:
create table `noticias` (
id int primary key auto_increment,
titulo varchar(255) not null,
noticia text not null,
autor varchar(255) not null,
fecha varchar(255) not null
);
Con el codigo SQL anterior crearemos una tabla llamada noticias en la que habrán 5 campos, ID (Numero Identificador de cada noticia), TITULO, NOTICIA, AUTOR (Lo usaremos en la 2ª parte del tutorial), FECHA (2ª Parte del tutorial).
Explicación Detallada del Codigo SQL anterior:
- create table `noticias` // Crea una tabla llamada "noticias"
- id int primary key auto_increment // Crea un campo llamado "id" que cada vez se incrementa en 1 unidad.
- titulo varchar(255) not null // Crea un campo llamado "titulo" de tipo texto (Máx. 255 Caracteres) que puede ser nulo (vacio).
- noticia text not null // Crea un campo llamado "noticia" de gran capacidad de texto
- autor varchar(255) not null // Crea un campo llamado "autor" de tipo texto (Máx. 255 Caracteres) que puede ser nulo (vacio).
- fecha varchar(255) not null // Crea un campo llamado "fecha" de tipo texto (Máx. 255 Caracteres) que puede ser nulo (vacio).
El formulario se procesa mediante PHP:
<?PHP
if (isset($_POST['enviar'])) { //Se comprueba si el boton enviar ha sido pulsado
if (!empty($_POST['titulo']) && !empty($_POST['noticia'])) { //Se comprueba si los campos no estan vacios
$sql = "INSERT INTO `noticias` (titulo,noticia,autor,fecha) values"; //Definimos el codigo para...
$sql.= "('".$_POST['titulo']."','".$_POST['noticia']."','Autor','".time()."')"; //...Ingresar los datos del formulario en la DB
if (mysql_query($sql)) { //Aquí se ingresa y se comprueba si se ha ingresado bien
echo "Noticia Enviada Correctamente";
} else { //Si algo ha fallado
echo "Ha ocurrido un error, no se ha procesado la noticia";
}
} else { //Si faltan campos por completar
echo "La noticia no se ha enviado, completa el formulario";
}
} else { ?>
<form action="enviar.php" method="POST">
<input type="text" name="titulo" value="Titulo de la noticia"><br>
<textarea name="noticia">El texto de la noticia</textarea><br>
<input type="submit" name="enviar" value="Enviar Noticia">
</form>
<? } ?>
Para mostrar la noticia, primero tenemos que extraerla de la base de datos y despues procesar los datos extraidos para mostrarlos adecuadamente.
<?PHP
$query = @mysql_query("SELECT * FROM `noticias` ORDER BY `id` DESC"); //Se extraen las noticias en orden reciente
if (@mysql_num_rows($query)) { // Se comprueba si hay alguna noticia publicada
while ($noticia = @mysql_fetch_array($query)) { //Se hace un bucle para mostrar cada noticia una a una
echo '<table border="0" width="100%">
<tr><td align="center">'.$noticia['titulo'].'</td></tr>
<tr><td>'.$noticia['noticia'].'</td></tr>
<tr><td>Enviada por '.$noticia['autor'].' || Fecha: '.$noticia['fecha'].'</td></tr>
</table><hr>';
}
} else {
echo "No hay ninguna noticia publicada";
}
@mysql_free_result($noticia); //Se borran los datos usados
?>
Funciones Utilizadas:
- isset(); // Comprueba si una variable tiene valores
- empty(); // Comprueba si una variable esta vacia
- time(); // Devuelve la hora, fecha... del servidor
- mysql_query(); // Ejecuta codigos SQL en la base de datos
- mysql_num_rows(); // Devuelve numero de filas en una tabla MySQL
- mysql_fetch_array(); // Extrae datos de una base de datos MySQL a una matriz
- mysql_free_result(); // "Limpia" los datos extraidos de la base de datos.
Para entender completamente el codigo debes "saber":
- Instrucciones PHP (condicionales, bucles, ...) --> Lee más... (http://www.phperos.net/foro/index.php?topic=24.0)
- Variables SuperGlobales ($_POST, $_GET, $_SERVER, ...)
- Fundamentos BASICOS de MySQL
-
Muy Bueno ;)
-
Buenas tengo un pequeño problema con la tabla del SQL me da el siguiente error; si alguien me aclara como se arregla le doy las gracias de antemano ;)
Error
consulta SQL:
Errorconsulta SQL : CREATE TABLE `noticias` (
id int PRIMARY KEY AUTO_INCREMENT ,
titulo varchar( 255 ) NOT NULL ,
noticia text NOT NULL ,
autor varchar( 255 ) NOT NULL ,
fecha varchar( 255 ) NOT NULL
);
MySQL ha dicho: Documentación
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Error
consulta SQL:
CREATE TABLE `noticias` (
id int PRIM
-
Enanotf, a mi me pasaba eso, cuando posteo esto naveda por 1 vez, y cuando lo modifico y termino la 1 parte, lo intente otra vez y funciono, yo pienso que hay que esperar
-
olle pues omo q cuando lo hago no me deja enviar las noticias es decir no tiene como abrirlas no tiene un archivo Conectar.php o algo hasi esta bien o esta sin terminar xD ???
-
Yo doy por sentado que vosotros sabeis que hay que conectar a la base de datos, y eso os lo dejo a vosotros.... Recuerdo que no damos codigos enseñamos a crearlos... Y por lo tanto yo doy por entendido que al llegar a un nivel suficiente como para saber crear un sistema de noticia se sabe que para extraer datos de una base de datos es necesario conectarse a ella de antemano...
Bueno por si tu mente no ha entendido... CONCLUSION:
Debes conectar a la base de datos
-
pero naveda aun tienes que acabarlo no? o ya esta listo
-
Esta es la primera parte pero ya podeis empezar a verla y aprender a crear un sistema similar...
-
>.< Aquí les dejo el código que edité.. me da error..
Parse error: syntax error, unexpected T_IF in /home/virtual/sitio103039/www/Sn/enviar.php on line 3
Aquí les dejo el archivo enviar.php
<?PHP
include ("conectar.php");
if (isset($_POST['enviar'])) { //Se comprueba si el boton enviar ha sido pulsado
if (!empty($_POST['titulo']) && !empty($_POST['noticia'])) { //Se comprueba si los campos no estan vacios
$sql = "INSERT INTO `noticias` (titulo,noticia,autor,fecha) values"; //Definimos el codigo para...
$sql.= "('".$_POST['titulo']."','".$_POST['noticia']."','Autor','".time()."')"; //...Ingresar los datos del formulario en la DB
if (mysql_query($sql)) { //Aquí se ingresa y se comprueba si se ha ingresado bien
echo "Noticia Enviada Correctamente";
} else { //Si algo ha fallado
echo "Ha ocurrido un error, no se ha procesado la noticia";
}
} else { //Si faltan campos por completar
echo "La noticia no se ha enviado, completa el formulario";
}
} else { ?>
<form action="enviar.php" method="POST">
<input type="text" name="titulo" value="Titulo de la noticia"><br>
<textarea name="noticia">El texto de la noticia</textarea><br>
<input type="submit" name="enviar" value="Enviar Noticia">
</form>
<? } ?>
El error sería en if (isset($_POST['enviar'])) {
Pero en teoría está bien.. :-\
-
Wee yo solito encontré el error!
Estaba en la 2 linia
include ("conectar.php");
Me dejé ; jeje.. error mio ::)
-
Vale bien, ahora me dice que la noticia ha sido mandada correctamente pero, cuando voy a: noticias.php no visualizo nada.. probé de hacer:
include ("Sn/noticias.php") //"Sn" es la carpeta donde tengo el sistema de noticias
Y no me muestra nada :-\
¿Lo mejor sería que no lo tubiera en una carpeta "Sn" y lo tubiera en la carpeta raíz?
-
Vale bien, ahora me dice que la noticia ha sido mandada correctamente pero, cuando voy a: noticias.php no visualizo nada.. probé de hacer:
include ("Sn/noticias.php") //"Sn" es la carpeta donde tengo el sistema de noticias
Y no me muestra nada :-\
¿Lo mejor sería que no lo tubiera en una carpeta "Sn" y lo tubiera en la carpeta raíz?
Yo siempre he usado include con archivos en al misma raiz. No se si así funcionará. Prueba a meterlo todo en una misma carpeta ;)
-
Sí, pueden usarse subdirectorios para la inclusión de páginas de include()
-
Sí, pueden usarse subdirectorios para la inclusión de páginas de include()
oKis, Ya me has aclarado algo a mi tmb :D
-
¿Entonces, donde está el error?
-
¿Entonces, donde está el error?
Yo he visto que en el include que nos has dado no has cerrado con " ; "
Revisalo ... xD
-
Esto.. muy bien, pero si lees más abajo mis posts ya lo indiqué que había encontrado el error u.u (PDT:Ahora lo he modificado en el foro) ;)
-
No es fallo del include. La página noticias.php se ve blanca por sí sola.
El error viene de alguna de las consultas de noticias.php, y este no se muestra porque Naveda escribe una @ delante del código para evitar mostrar mensajes de error.
Elimina las arrobas (@) del código y revisa el error.
-
Al quitar las "@"..
Warning: mysql_query(): Access denied for user 'admin103039'@'localhost' (using password: NO) in /home/virtual/sitio103039/www/Sn/noticias.php on line 2
Warning: mysql_query(): A link to the server could not be established in /home/virtual/sitio103039/www/Sn/noticias.php on line 2
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/virtual/sitio103039/www/Sn/noticias.php on line 3
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/virtual/sitio103039/www/Sn/noticias.php on line 4
Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in /home/virtual/sitio103039/www/Sn/noticias.php on line 14
Todas las que quité dieron error :-\
-
Mala conexión a la base de datos.... o mejor dicho... hay conexión a la base de datos?
EDIT: No me mandes los códigos por privado! Yo no soy toda la comunidad!
<?php
$Host = "localhost";
$Usuario = "admin103039";
$Contraseña = "noteladigoxD";
$DBname = "db_naruto-fanaticos_gratishost_com";
$link = mysql_connect ($Host, $Usuario, $Contraseña);
mysql_select_db ($DBname, $link);
?>
Cambia contraseña por contrasena. No uses acentos ni caracteres del idioma cuando estás escribiendo código................
-
dios esto si que uff aver quien sabe no da errores pero no sale la noticia:
-http://www.mispruevas.webspacemania.com/enviar.php (http://www.mispruevas.webspacemania.com/enviar.php)
-http://www.mispruevas.webspacemania.com/noticias.php (http://www.mispruevas.webspacemania.com/noticias.php)
-Lo curioso que pone eso pero en el msql si que salen las noticias :S i en la url no
Gracias de ante mano
-
Ya he corregido el error, se encontraba en la linea:
if (!@mysql_num_rows($query)) {
Y el codigo correcto es:
if (@mysql_num_rows($query)) {
El codigo hacia lo contrario de lo que se deseaba, mostraba que no habia noticias cuando si las habia y mostraba o mejor dicho intentaba mostrar las noticias cuando no habia.
Ahora esta solucionado ya que he quitado el caracter ! que significa negación en las instrucciones condicionales de PHP.
Siento el error :S
-
Bueno.. me sucede el mismo error que a Drek.
Envio la noticia y me dice que se a enviado, pero cuando voy a noticias.php, me dice que no hay ninguna noticia :-\
¿A que es debido? PDT: Ya modifiqué el noticias.php quitandole el ! pero sigue diciendome que no hay noticias :-X
-
sii ya esta me funciona mirarlo:
http://www.mispruevas.webspacemania.com/noticias.php
pero me gustaria saber como cambiar eso de autor y que salga y lo de fecha :) MUXISIMAS GRACIASS ATODOS :D
-
El autor y todo eso se mostrará con el archivo admin_noticias.php (Explicado en el segundo tutorial) ;)
PDT: ¿Que hicistes para que te funcionara? xD
-
sinceramente ya te lo dije en msn exacamente lo que fuisteis diciendo :)
-
Ale arreglado, me había dejado el include ("conectar.php") en el noticias.php xD
-
Ale arreglado, me había dejado el include ("conectar.php") en el noticias.php xD
Pues eso. Conexión nula. ;)
-
No consigo hacer que funcioné! :S He puesto el archivo conectar.php, he hecho el include() pero nada no hay manera! No me marca ningún error, pero las noticias no se agregan :S
¿Que hay mal?
-
no se agregan donde a msql o al noticias.php? si es en las noticias
postea el codigo y si es en msql es porque no habras hecho el sql no lo habras metido o no se
-
¿Mirastes que el include sea include ("conectar.php"); ?
Con el ; me refiero..
Otra forma para comprobar si todo está en orden, es ir a la base de datos y mirar si las noticias se escriben en las tablas que posteriormente creamos ;)
-
como ya dije puede ser que se le aya olvidado el msql que aya hecho el conectar pero no la tabla en msql
-
La tablas estan creadas, al menos deberían ya que esta es la 2ª parte y es necesario leerse la primera...
-
En el archivo enviar.php hay un error en la última línea ; (e la linea 68);
} else { ?>
es así:
} else {} ?>
;)
-
x'DDDDDDDDDDDDDDDDDDDDDDdddd
Vaya error..para eso se pone asi
} ?>
y yasta xDDDD
-
No hay ningun error de sintaxis ;)
Lo miré todo antes de publicarlo y despues de corregir un fallo que me dijeron lo probe en mi localhost. Funciona 100%
-
En el archivo enviar.php hay un error en la última línea ; (e la linea 68);
} else { ?>
es así:
} else {} ?>
;)
Pues a mi no me funcionaba sin corregir eso.
----
----
@Bighack:
claro que hice eso que has puesto, pero me daba error ;S
-
¿que error te da? Fijate que en sintaxis el error no esta porque:
} else { ?>
<form action="enviar.php" method="POST">
<input type="text" name="titulo" value="Titulo de la noticia"><br>
<textarea name="noticia">El texto de la noticia</textarea><br>
<input type="submit" name="enviar" value="Enviar Noticia">
</form>
<? } ?>
Abro y cierro las llaves :D
Lo dicho, informame sobre el error en concreto, linea... ;)
-
tengo un problema cuando envio la noticia me sale esto (ya tengo la tabla en mysql)
Warning: mysql_query(): Access denied for user 'admin147349'@'localhost' (using password: NO) in /home/virtual/sitio147349/www/enviar.php on line 8
Warning: mysql_query(): A link to the server could not be established in /home/virtual/sitio147349/www/enviar.php on line 8
Ha ocurrido un error, no se ha procesado la noticia
Lo unico que creo que pueda ser es q la mysql esta ocupada por otro archivo... eso tiene que ver?
-
Amigo eso es fallo de la configuración del conectar.php ;)
Un saludo
-
Buenas,
Naveda, que yo vea.. falta el archivo conectar.php & la inclusión de dicho archivo... sino no podría conectarse a la base de datos, no sé si tengo razón o es porque es la primera parte...
Saludos ;)
-
Si te fijas he dicho varias veces que cada uno conecta como quiere, no voy a poner ese codigo porque ya sería dar todo hecho, aquí estamos para enseñar con Tutoriales, que eso es lo que es.
-
Buenas de nuevo,
Ok.. no me he leído todos los POST, solo por encima alguno que otro...
Así que te pido disculpas :P
Saludos :)
-
Me sale un error
Ha ocurrido un error, no se ha procesado la noticia
-.-! no entiendo porque pasa eso -.-
-
Es posible que porque no has creado la tabla donde se introducen las noticias. Usa el codigo SQL que aparece en este tutorial y creala.
-
Perdon por revivir post :$ Pero esque tengo una duda xd
www.areagfx.webspacemania.com/habbohoy/enviar.php
Relleno el formulario y me dice:
Warning: mysql_query(): Access denied for user 'admin156803'@'localhost' (using password: NO) in /home/virtual/sitio156803/www/habbohoy/enviar.php on line 6
Warning: mysql_query(): A link to the server could not be established in /home/virtual/sitio156803/www/habbohoy/enviar.php on line 6
Ha ocurrido un error, no se ha procesado la noticia
^^ que paso? grax :D
-
Mal configurado el conectar... o el usuario de la db no tiene permisos o no existe ;)
-
Pero el conectar lo tengo bien... y las tablas en la SQL si que estan ^^
-
Acceso denegado para el usuario admin156803 (Lo dice claramente el error, eso si en ingles :P)
-
kerria saber cuando vas a poner la 2ª parte por k ando algo liado... xD
-
Y como vamos a entrar al admin para editar las noticias si no he registrado ningun user ni pass ni tampoco viene con instalador :S
Esta malo esto ¿Entonces como ago? :-X
-
Y como vamos a entrar al admin para editar las noticias si no he registrado ningun user ni pass ni tampoco viene con instalador :S
Esta malo esto ¿Entonces como ago? :-X
Leete el tutorial completo, con sus 3 partes y verás...
-
Leete el tutorial completo, con sus 3 partes y verás...
Si vi las 3 partes, y lo hize entero y lo modifique yo porque se veia feo todo y lo puse en unas lindas casillas y con una letra mas llamativas :laugh:
-
No me gusta la prepotencia Joel... guardatela para tus confianzas ;)
Si no hay ninguna duda más...
-
Me sale que hay un error :o
Warning: Cannot modify header information - headers already sent by (output started at /home/virtual/sitio169540/www/noticias/admin_noticias.php:1) in /home/virtual/sitio169540/www/noticias/admin_noticias.php on line 129
-
Algo habras hecho.
Ninguno de los codigos que se han puesto en este tema alcanzan las 129 lineas.
Y si vas a preguntar acerca de si influye demasiado agregarle codigo a un sistema así (sin los conocimientos necesarios) la respuesta es si.
Saludos
-
Algo habras hecho.
Ninguno de los codigos que se han puesto en este tema alcanzan las 129 lineas.
Y si vas a preguntar acerca de si influye demasiado agregarle codigo a un sistema así (sin los conocimientos necesarios) la respuesta es si.
Saludos
Esque las lineas se me saltaron osea, mira asi, te muestro todo el codigo lo hize en una celda de diseño pero en php:
<style type="text/css">
<!--
body {
background-image: url(imagenes/2lt4saq.jpg);
}
.titulo {
padding-top: 5px;
margin: 0;
color: #cc0000;
font-family: Verdana;
font-size: 24px;
font-weight: bold;
}
.frame {
width: 180px;
height: 350px;
overflow: auto;
}
.Enlacemenu {
color: #aa3300;
font-size: 10px;
font-style: normal;
font-family: verdana;
text-decoration: none;
}
.Enlacemenu: hover {
color: steelblue;
font-size: 10px;
font-style: normal;
text-decoration: none;
}
.Boton {
font-size: 10px;
font-family: Verdana, Arial, Helvetica, sans-serif;
border: 1px solid #909090;
color: #3E5766;
font-weight: bold;
background-color: #D6D6D6;
}
.Campo {
font-size: 10px;
font-family: verdana;
border: 1px solid #909090;
background-color: #DDDDDD;
}
.Select {
font-size: 10px;
border: 1px #000000 outset;
list-style-position: inside;
list-style-type: disc;
padding-top: 1px;
padding-right: 1px;
padding-bottom: 1px; padding-left: 1px;
font-family: Verdana;
}
A:link {color:#000000;FONT-SIZE: 10px; FONT-FAMILY: Verdana, Helvetica;text-decoration:none}
A:visited {color:#000000;FONT-SIZE: 10px; FONT-FAMILY: Verdana, Helvetica;text-decoration:none}
.Estilo2 {
color: #000000;
font-size: 10px;
font-style: normal;
font-family: verdana;
text-decoration: none;
font-weight: bold;
}
.Estilo5 {color: #FF0000; font-size: 10px; font-style: normal; font-family: verdana; text-decoration: none; }
.Estilo6 {color: #000000}
-->
</style><table width="958" border="0" cellpadding="0" cellspacing="0">
<!--DWLayoutTable-->
<tr>
<td width="206" height="68"> </td>
<td width="15"> </td>
<td width="513"> </td>
<td width="15"> </td>
<td width="209"> </td>
</tr>
<tr>
<td height="32"> </td>
<td valign="top"><img src="imagenes/vak_groot_01_004.gif" width="15" height="32" /></td>
<td valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0" background="imagenes/vak_groot_02_003.gif">
<!--DWLayoutTable-->
<tr>
<td width="513" height="32" align="left" valign="middle"><img src="imagenes/panel.gif" width="148" height="11" /></td>
</tr>
</table></td>
<td valign="top"><img src="imagenes/vak_groot_03.gif" width="15" height="32" /></td>
<td> </td>
</tr>
<tr>
<td height="546"> </td>
<td valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0" background="imagenes/vak_groot_04.gif">
<!--DWLayoutTable-->
<tr>
<td width="15" height="546"> </td>
</tr>
</table></td>
<td align="center" valign="middle" bgcolor="#FFFFFF"><?PHP
/* ANTES DE TODO EL CODIGO HAY QUE CONECTAR A LA BASE DE DATOS */
if(isset($_POST['login']) && isset($_POST['user']) && isset($_POST['pass'])) {
$admin = array("usuario","pass"); //Ejemplo
if ($admin[0] == $_POST['user'] && $admin[1] == $_POST['pass']) {
//Acceso Concedido
setcookie("admin",$_POST['pass'],time()+3600); //El acceso durará "1 hora (3600 segundos)"
} else {
exit("El usuario o contraseña son incorrectos. Acceso denegado.");
}
}
if (!isset($_COOKIE['admin'])) {
?>
<br />
<br />
<span class="Estilo2">Login admin:</span>
<form action="<?=$_SERVER['PHP_SELF'];?>" method="POST">
<span class="Estilo2">Usuario: </span>
<input name="user" type="text" class="Campo" value="Usuario">
<span class="Estilo2">Password:</span>
<input name="pass" type="password" class="Campo" value="pass"><br>
<br />
<input name="login" type="submit" class="Boton" value="Acceder">
</form>
<?php
exit();
}
echo '<p align="center"><a href="'.$_SERVER['PHP_SELF'].'">Principal</a></p><hr>'; //Enlace en cada pagina hacia la principal
if (isset($_GET['borrar'])) { //Borrado de Noticias
if (is_numeric($_GET['borrar'])) {
//Borrado de las noticia con id = a $_GET['borrar']
$borrando = "DELETE FROM `noticias` WHERE id = '".$_GET['borrar']."'";
if (mysql_query($borrando)) {
echo "La noticia #".$_GET['borrar']." ha sido borrada con éxito.";
} else {
exit("Ha ocurrido algún error, la noticia no se ha borrado.");
}
} else {
exit("Error: Noticia inexistente.");
}
} elseif (isset($_GET['editar'])) { //Edicion de Noticias
if (!is_numeric($_GET['editar'])) {
exit("Error: Noticia inexistente.");
}
if (isset($_POST['edit_form'])) {
$sql = "UPDATE `noticias` SET titulo = '".$_POST['titulo']."', ";
$sql.= "autor = '".$_POST['autor']."', ";
$sql.= "fecha = '".$_POST['fecha']."', ";
$sql.= "noticia = '".$_POST['noticia']."' WHERE id = '".$_GET['editar']."'";
if (mysql_query($sql)) {
echo "La noticia #".$_GET['editar']." ha sido editada con éxito.";
} else {
exit("Error: La noticia no se ha editado correctamente.");
}
} else {
$sql = mysql_query("SELECT * FROM `noticias` WHERE id = '".$_GET['editar']."'");
if (!mysql_num_rows($sql)) {
exit("Error: Noticia inexistente.");
}
$noticia = mysql_fetch_assoc($sql);
?>
<form action="<?=$_SERVER['PHP_SELF'];?>?editar=<?=$_GET['editar'];?>" method="POST">
<span class="Estilo2">Titulo:</span>
<input name="titulo" type="text" class="Campo" value="<?=$noticia['titulo'];?>"><br>
<span class="Estilo2">Autor:</span>
<input name="autor" type="text" class="Campo" value="<?=$noticia['autor'];?>"><br>
<span class="Estilo2">Fecha:</span>
<input name="fecha" type="text" class="Campo" value="<?=$noticia['fecha'];?>" readonly><br>
<br />
<textarea name="noticia" cols="30" rows="4" class="Campo"><?=$noticia['noticia'];?></textarea><br>
<br />
<input name="edit_form" type="submit" class="Boton" value="Editar Noticia">
</form>
<?php
mysql_free_result($noticia);
}
} else { //Listado de Noticias
$query = mysql_query("SELECT * FROM `noticias` ORDER BY `id` DESC"); //Se extraen las noticias en orden reciente
if (mysql_num_rows($query)) { // Se comprueba si hay alguna noticia publicada
while ($noticia = mysql_fetch_array($query)) { //Se hace un bucle para mostrar cada noticia una a una
echo '<table border="0" width="100%">
<tr><td align="center">'.$noticia['titulo'].'</td></tr>
<tr><td>'.$noticia['noticia'].'</td></tr>
<tr><td>Escrita y enviada por: '.$noticia['autor'].' || Fecha: '.$noticia['fecha'].'</td></tr>
<tr><td><b>Opciones Admin:</b> ';
echo '<a href="'.$_SERVER['PHP_SELF'].'?borrar='.$noticia['id'].'">Borrar</a> ||
<a href="'.$_SERVER['PHP_SELF'].'?editar='.$noticia['id'].'">Editar</a></td></tr>
</table><hr>';
}
} else {
echo "Lo siento, no hay ninguna noticia publicada.";
}
mysql_free_result($noticia); //Se borran los datos usados
}
?>
<br />
<br /> <img src="imagenes/habbo_reading.png" width="114" height="105" /><br />
<br />
<span class="Estilo5"><span class="Estilo6">Creado por Joel -</span> V1 Beta</span></td>
<td valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0" background="imagenes/vak_groot_06.gif">
<!--DWLayoutTable-->
<tr>
<td width="15" height="546"> </td>
</tr>
</table></td>
<td></td>
</tr>
<tr>
<td height="10"></td>
<td valign="top"><img src="imagenes/vak_groot_07.gif" width="15" height="10" /></td>
<td valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0" background="imagenes/vak_groot_08.gif">
<!--DWLayoutTable-->
<tr>
<td width="513" height="10"></td>
</tr>
</table></td>
<td valign="top"><img src="imagenes/vak_groot_09.gif" width="15" height="10" /></td>
<td></td>
</tr>
<tr>
<td height="115"></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</table>
El problema esta en el:
setcookie("admin",$_POST['pass'],time()+3600); //El acceso durará "1 hora (3600 segundos)"
-
No se puede mostrar ningun dato antes del uso de funciones como set_cookie() o header()
-
No se puede mostrar ningun dato antes del uso de funciones como set_cookie() o header()
Mmm :angel: Pero en el codigo de admin_noticias.php salia perfecto lo copie y lo pege en
archivo php y luego me sale ese error.. ¿Pero como? :'(
-
Tienes este codigo antes:
<style type="text/css">
<!--
body {
background-image: url(imagenes/2lt4saq.jpg);
}
.titulo {
padding-top: 5px;
margin: 0;
color: #cc0000;
font-family: Verdana;
font-size: 24px;
font-weight: bold;
}
...
...
...
Y eso es lo que hace que salte el error, como ya te dijieron no deberia haber nada.
Saludos
-
Tienes este codigo antes:
<style type="text/css">
<!--
body {
background-image: url(imagenes/2lt4saq.jpg);
}
.titulo {
padding-top: 5px;
margin: 0;
color: #cc0000;
font-family: Verdana;
font-size: 24px;
font-weight: bold;
}
...
...
...
Y eso es lo que hace que salte el error, como ya te dijieron no deberia haber nada.
Saludos
Aaa.. ok gracias :D
Y ahora me sale este error xD
Warning: mysql_query() [function.mysql-query]: Access denied for user 'admin169540'@'localhost' (using password: NO) in /home/virtual/sitio169540/www/noticias/admin_noticias.php on line 298
Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /home/virtual/sitio169540/www/noticias/admin_noticias.php on line 298
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/virtual/sitio169540/www/noticias/admin_noticias.php on line 302
Lo siento, no hay ninguna noticia publicada.
Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in /home/virtual/sitio169540/www/noticias/admin_noticias.php on line 406
-
Disculpa naveda pero, cuando publico mi noticia me sale noticia enviada correctamente y boy a mirara la noticia y sale No hay ninguna noticia publicada
-
Muy bueno,y... lo siento por revivir tema, pero esque así cualquiera puede enviar noticias. como puedo hacer que solo puedan los admins de mi MC? y que luego en el nombre del autor, salga su nombre?
Sería con if session y qué mas?...
-
para que solo el administrador pueda seria algo asi
if($_COOKIE['USUARIO'] == "Tu Usuario" && $_COOKIE['contrasena']){
y para que salga el autor asi
$query = mysql_query("SELECT * FROM noticias WHERE id = "'$_GET['id']'"");
$fetch = mysql_query_fetch($query);
(En el while) Autor: $fetch['autor']
-
Pero eso no es solo para poner el usuario del tio?
Yo digo para que comprueben si es de rango de Admin del MC
-
Para nuevas dudas, abrid un tema nuevo.