InicioServicio HostingPHP
Responder
Nuevo problema envio noticias pero no aparecen
Haz clic para ver el perfil del usuario

Usuario habitual
Usuario habitual

#1

Bueno comento:

Estoy usando el sistema de registro de usuarios sin mysql, ahora al darle a enviar noticia me deja enviar me dice que vale la noticia a sido añadida correctamente pero luego.. no aparece al pulsar en el menu para ver las noticias ninguna noticia :8) hmmm dejor aqui lo que es el contenido del archivo de noticias.php y enviar noticias.php por si alguien me puede ayudar O_o'

Noticias.php

<title>Noticias</title><body>&nbsp;
<?
if (!$n) {
?>
<?
// Funcion para borrar los directorios
function deldir($dir)
{
$handle = opendir($dir);
while (false!==($FolderOrFile = readdir($handle)))
{
if($FolderOrFile != "." && $FolderOrFile != "..")
{
}
}
closedir($handle);
if(rmdir($dir))
{ $success = true; }
return $success;
}

if($borrar) {
$_GET["borrar"];
@include("noticias/$borrar.php");
// si el usuario borra un mensaje
if ($nick = $_COOKIE[ucnnick]) {
@unlink("noticias/$borrar.php") ;
for($bn=0;$bn<1000;$bn++){
@unlink("noticias/$borrar/contador.txt") ;
@unlink("noticias/$borrar/$bn.php") ;
}
deldir("noticias/$borrar");
echo "<p>La noticia <b>$titulo</b> ha sido borrada con éxito. Haz click <a href=index.php?id=noticias>aquí</a> para regresar.<br><br>" ;
}
}
?>
<?php
// Le damos valor a las variables de configuración
$Config['Path'] = "noticias/"; // Directorio donde stan los archivos a mostrar.
$Config['Show'] = 20; // Numero de archivos a mostrar por páginas.

$Show['20 Anteriores'] = 0; // Por defecto no se mostrara 10 Anteriores
$Show['20 Siguientes'] = 0; // Por defecto no se mostrara 10 Siguientes

if ($c == "") $c = 0; // Si $c no tiene valor es porque es la primera vez que se visita la página.
$dir = @opendir($Config['Path']); // Abrimos el directorio donde estan los archivos
$Plus = $c; // Le damos el valor de $c a $plus porque el valor de $c se perdera y lo necessitaremos mas tarde.

while ($c > 0 && $elemento = @readdir($dir)) // Mientras la variable $c sea mayor de 0 saltamos archivos.
{
$Show['20 Anteriores'] = 1;
$c--;
}

$Counter = 0; // Ponemos a 0 el contador

// Si es la primera vez que vez añadimos 2 filas, si no lo es se las quitamos.
if ($Show['20 Anteriores'] == 0) $Counter=$Counter-2; else {
$c = 2;
while ($c > 0 && $elemento = @readdir($dir)) // Mientras la variable $c sea mayor de 0 saltamos archivos.
{
$Show['20 Anteriores'] = 1;
$c--;
}
}

// Mostramos el numero de archivos que se tienen que mostrar por página.
while (($Counter != $Config['Show']) && ($elemento = @readdir($dir)))
{
$Counter++;

$elemento1 = strtolower($elemento);

if (strpos($elemento1, ".php") > 0 && $elemento != "index.php") {
// Asignamos el archivo sin extension
$elemento2 = str_replace(".php","",$elemento);
?>
<?
if(file_exists("noticias/$elemento2.php")) {
require ("noticias/$elemento2.php");
// Dia
$diassemana = array("Domingo","Lunes","Martes","Miércoles","Jueves","Viernes","Sábado") ;
$mesesano = array("Ene","Feb","Mar","Abr","May","Jun","Jul","Ago","Sep","Oct","Nov","Dic") ;
$diasemana = date(w,$fecha_noticia) ; $diames = date(j,$fecha_noticia) ; $mesano = date(n,$fecha_noticia) - 1 ; $ano = date(Y,$fecha_noticia) ;
$fecha_noticia = "$diassemana[$diasemana] $diames de $mesesano[$mesano] del $ano" ;
$noticia = str_replace("\r\n","<br>",$noticia) ;
}
?>
<table width="100%" border="0" cellspacing="0" cellpadding="5" style='border: #757575 1 solid'>
<tr>
<td class="tabla_titulo">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><div class="t1"><? echo $titulo ?></div></td>
<td><div align="right"><? echo $fecha_noticia ?></div></td>
</tr>
</table>
</td>
</tr>
<tr>
<td height="28" class="tabla_mensaje"><table width="100%" border="0" cellspacing="0" cellpadding="4">
<tr>
<td colspan="3"><? echo $noticia ?></td>
</tr>
<tr>
<td width="40%"><a href="index.php?id=noticias&n=<? echo $elemento2 ?>">Ver
comentarios</a>
<? if ($_COOKIE[ucnnick] == $nick) { echo "| [<a href='index.php?id=noticias&borrar=$secciones$elemento2'>borrar</a>]"; } ?>
</td>
<td width="40%"><strong>Comentarios :
<?
if(file_exists("noticias/$elemento2/")) {
// Usuarios en linea
$path2 = "noticias/$elemento2/";
// Contar el total
$dir2 = opendir($path2);
$i = 0;
while ($elemento = readdir($dir2))
{
$elemento3 = strtolower($elemento);
if (strpos($elemento3, ".php") > 0) {
$i++;
}
}
echo $i ;
closedir($dir2);
}
else {
echo "0";
}
?>
</strong></td>
<td width="20%"><div align="right"><b>Enviada por: </b><? echo $nick ?>
</div></td>
</tr>
</table> </td>
</tr>
</table>

<br>
<?php
}
}

// Si sobran archivos pondremos el "10 Siguientes"
if ($elemento = @readdir($dir))
{
$Show['20 Siguientes'] = 1;
}

//Cerramos el directorio
@closedir($dir);
?>
<div align="right">
<?php
// Mostraos si es necessario el "10 Anteriores" y "10 Siguientes".
if ($Show['20 Anteriores'] == 1) echo("<a href=\"index.php?id=noticias&c=".($Plus-$Config['Show'])."\">20 Anteriores | </a>");
if ($Show['20 Siguientes'] == 1) echo("&nbsp;<a href=\"index.php?id=noticias&c=".($Plus+$Config['Show'])."\">20 Siguientes</a></p>");
}
?>
</div>
<? if ($n) {
if(file_exists("noticias/$n.php")) {
require ("noticias/$n.php");
}
// Dia
$diassemana = array("Domingo","Lunes","Martes","Miércoles","Jueves","Viernes","Sábado") ;
$mesesano = array("Ene","Feb","Mar","Abr","May","Jun","Jul","Ago","Sep","Oct","Nov","Dic") ;
$diasemana = date(w,$fecha_noticia) ; $diames = date(j,$fecha_noticia) ; $mesano = date(n,$fecha_noticia) - 1 ; $ano = date(Y,$fecha_noticia) ;
$fecha_noticia = "$diassemana[$diasemana] $diames de $mesesano[$mesano] del $ano" ;
$noticia = str_replace("\r\n","<br>",$noticia) ;
?>
<table width=100% border=0 cellpadding=5 cellspacing=0 class='tabla_principal'>
<tr>
<td class="tabla_titulo"><p class=t1><? echo $titulo ?></p></td>
<td class="tabla_titulo"><div align=right><? echo $fecha_noticia ?></div></td>
</tr>
<tr>
<td colspan=2 class="tabla_mensaje"> <? echo $noticia ?><br>
<br>
<hr>
<b>Enviada por:</b> <? echo $nick ?><br>
<a href="index.php?id=noticias">· Regresar a la página principal</a>
<p>

<p><b>Total de comentarios:</b>
<?
if(file_exists("noticias/$n/")) {
// Usuarios en linea
$path2 = "noticias/$n/";
// Contar el total
$dir2 = opendir($path2);
$i = 0;
while ($elemento = readdir($dir2))
{
$elemento2 = strtolower($elemento);
if (strpos($elemento2, ".php") > 0) {
include("noticias/$n/$elemento2");
$i++;
}
}
echo $i ;
closedir($dir2);
}
else {
echo "0" ;
}
?>
<br>
<br>
<?php
if(file_exists("noticias/$n/")) {
// Le damos valor a las variables de configuración
$Config['Path'] = "noticias/$n/"; // Directorio donde stan los archivos a mostrar.
$Config['Show'] = 5; // Numero de archivos a mostrar por páginas.

$Show['5 Anteriores'] = 0; // Por defecto no se mostrara 10 Anteriores
$Show['5 Siguientes'] = 0; // Por defecto no se mostrara 10 Siguientes

if ($c == "") $c = 0; // Si $c no tiene valor es porque es la primera vez que se visita la página.
$dir = @opendir($Config['Path']); // Abrimos el directorio donde estan los archivos
$Plus = $c; // Le damos el valor de $c a $plus porque el valor de $c se perdera y lo necessitaremos mas tarde.

while ($c > 0 && $elemento = @readdir($dir)) // Mientras la variable $c sea mayor de 0 saltamos archivos.
{
$Show['5 Anteriores'] = 1;
$c--;
}
$Counter = 0; // Ponemos a 0 el contador
// Si es la primera vez que vez añadimos 2 filas, si no lo es se las quitamos.
if ($Show['5 Anteriores'] == 0) $Counter=$Counter-2; else {
$c = 2;
while ($c > 0 && $elemento = @readdir($dir)) // Mientras la variable $c sea mayor de 0 saltamos archivos.
{
$Show['5 Anteriores'] = 1;
$c--;
}
}
// Mostramos el numero de archivos que se tienen que mostrar por página.
while (($Counter != $Config['Show']) && ($elemento = @readdir($dir)))
{
$Counter++;
$elemento1 = strtolower($elemento);
if (strpos($elemento1, ".php") > 0 && $elemento != "index.php") {
include("noticias/$n/$elemento1");
// Asignamos el archivo sin extension
$elemento2 = str_replace(".php","",$elemento);
// fecha
$mesesano = array("Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto",
"Septiembre","Octubre","Noviembre","Diciembre") ;
$diames = date(j,$fecha_noticiacom) ; $mesano = date(n,$fecha_noticiacom) - 1 ; $ano = date(Y,$fecha_noticiacom) ; $hora = date("h:i A",$fecha_noticiacom) ;
$fecha_noticiacom = "$diames $mesesano[$mesano] $ano $hora" ;
// Espacios correspondientes en comentarios
$comentario = str_replace("\r\n","<br>",$comentario)
?>
<table width=100% border=0 cellpadding=5 cellspacing=0 class='tabla_principal'>
<tr>
<td class="tabla_subtitulo"><b>&lt;<? echo $nick_noticiacom ?>&gt;</b></td>
<td class="tabla_subtitulo"><div align=right><b><? echo $fecha_noticiacom ?></b></div></td>
</tr>
<tr>
<td height="4" colspan=2 class="tabla_mensaje"> <? echo $comentario ?>
</td>
</tr>
</table>
<br>
<?
}
}

// Si sobran archivos pondremos el "10 Siguientes"
if ($elemento = @readdir($dir))
{
$Show['5 Siguientes'] = 1;
}
//Cerramos el directorio
@closedir($dir);
?>
<div align="right">
<?php
// Mostraos si es necessario el "10 Anteriores" y "10 Siguientes".
if ($Show['5 Anteriores'] == 1) echo("<a href=\"index.php?id=noticias&c=".($Plus-$Config['Show'])."&n=$n\">5 Anteriores | </a>");
if ($Show['5 Siguientes'] == 1) echo("&nbsp;<a href=\"index.php?id=noticias&c=".($Plus+$Config['Show'])."&n=$n\">5 Siguientes</a></p>");
}
?>
</div>

<p><br>
<?
if($enviar){
function quitar($texto) {
$texto = trim($texto) ;
$texto = htmlspecialchars($texto) ;
$texto = stripslashes($texto) ;
return $texto ;
}
// distinge entre nick registrado y nick anonimo
if ($_COOKIE[ucnnick]) {
$cnnick = $_COOKIE[ucnnick];
}
else {
$cnnick = "No Registrad@";
}

$cnfechacom = time() ;
$cncomentario = quitar($cncomentario) ;

$nuevo .= "<"."?\n";
$nuevo .="\$nick_noticiacom = \"$cnnick\";\n";
$nuevo .="\$fecha_noticiacom = \"$cnfechacom\";\n";
$nuevo .="\$noticiacom = \"$cnnoticia\";\n";
$nuevo .="\$comentario = \"$cncomentario\";\n";
$nuevo .= "?".">";

// añadimos la nueva noticia a contador.txt
if(!file_exists("noticias/$n/")) { mkdir("noticias/$n/", 0777); }
if(!file_exists("noticias/$n/contador.txt")) { $ncrea = fopen("noticias/$n/contador.txt","w"); fwrite($ncrea, "0"); fclose($ncrea); }

$file = "noticias/$n/contador.txt";
$nclicks = fopen($file,"r+");
$clicks = fgets($nclicks,1024);
$clicks++;
rewind($nclicks);
fwrite($nclicks,$clicks);
fclose($nclicks);

$new = fopen("noticias/$n/$clicks.php","w");
fputs($new,$nuevo);
fclose($new);

echo "<script>location='index.php?id=noticias&n=$n'</script>";
}
?>
<br>
<b>Escribir comentario</b>
<form method=post action="index.php?id=noticias&n=<? echo $n?>">
<input type="hidden" name="cnnoticia" value="<? echo $n ?>" >
Comentario:<br>
<textarea name="cncomentario" cols="30" rows="5" class="form"></textarea><br><br>
<input type="submit" name="enviar" value="Enviar" class="form">
</form>
</td>
</tr>
</table>
<?
}
?>
</body>

noticiasenviar.php

<?
include("login.php") ;
?>
<?
if($enviar) {

function quitar($texto) {
$texto = trim($texto) ;
$texto = htmlspecialchars($texto) ;
$texto = stripslashes($texto) ;
return $texto ;
}
$cnnick = $_COOKIE[ucnnick];
$cnfecha = time() ;
$cntitulo = quitar($cntitulo) ;
$cnnoticia = quitar($cnnoticia) ;

$edita .= "<"."?\n";
$edita .="\$nick = \"$cnnick\";\n";
$edita .="\$fecha_noticia = \"$cnfecha\";\n";
$edita .="\$titulo = \"$cntitulo\";\n";
$edita .="\$noticia = \"$cnnoticia\";\n";
$edita .= "?".">";

// añadimos la nueva noticia a contador.txt
if(!file_exists("noticias/contador.txt")) { $ncrea = fopen("noticias/contador.txt","w"); fwrite($ncrea, "0"); fclose($ncrea); }

$file = "noticias/contador.txt";
$nclicks = fopen($file,"r+");
$clicks = fgets($nclicks,1024);
$clicks++;
rewind($nclicks);
fwrite($nclicks,$clicks);
fclose($nclicks);

$edit = fopen("noticias/$clicks.php","w");
fputs($edit,$edita);
fclose($edit);
echo "Tu noticia ha sido enviada con exito. Haz click <a href=index.php?id=noticias>aquí</a> para regresar a la página principal.<br><br>" ;
}
?>
<p class="t1">Enviar noticias
<p>
<script>
function revisar() {
if(formulario.cnnoticia.value.length == 0) { alert('Debes poner un email válido.') ; return false ; }
if(formulario.cnnoticiaext.value.length > 255) { alert('La descripción supera los 255 caractéres.') ; return false ; }
}
</script>
<form name="formulario" method="post" action="index.php?id=noticiasenviar" onsubmit="return revisar()">
<b>Titulo :</b><br>
<input name="cntitulo" type="text" class="form" id="cntitulo" maxlength="40">
<br>
<b>Noticia:</b><br>
<textarea name="cnnoticia" cols="30" rows="5" class="form" id="cnnoticia"></textarea>
<br><br>
<input type="submit" name="enviar" value="Enviar" class="form">
</form>

Gracias , y un saludo. ;-)

Haz clic para ver el perfil del usuario

Okupa del foro
Okupa del foro

#2

Pero el problema es que no la envia, o que las borra todas menos esa?

Bye.

Haz clic para ver el perfil del usuario

Usuario habitual
Usuario habitual

#3

Lo que me sucede es que dice que si envia y que ha sido enviada correctamente, pero no aparece al entrar en noticias

Haz clic para ver el perfil del usuario

Usuario habitual
Usuario habitual

#4

Por ejemplo al enviar una descarga o enviar un link si lo realiza y si se ve pero las noticias no :S


Otra cosa que me gustaria saber es si se puede crear algo para dar nivel de envio a las noticias ,es decir, que No todo el que se pase por la web pueda enviar una noticia sino los admins de la misma.

Ayuda plz !


Saludos.


Haz clic para ver el perfil del usuario

@man / @woman
@man / @woman

#5

Supongo que debería venir un txt con instrucciones... tiene pinta que lo guarda en un archivo de texto ¿esta credo? ¿tiene los permisos oportunos?


Sobre que pase por un admin, sin saber php mejor es que busques otros script.

Haz clic para ver el perfil del usuario

Usuario habitual
Usuario habitual

#6

Me ocurre esto :


Warning: fopen("noticias/.php", "w") - Permission denied in /home/apache/net-gravity/registro/noticiasenviar.php on line 36

Warning: fputs(): supplied argument is not a valid File-Handle resource in /home/apache/net-gravity/registro/noticiasenviar.php on line 37

Warning: fclose(): supplied argument is not a valid File-Handle resource in /home/apache/net-gravity/registro/noticiasenviar.php on line 38
Tu noticia ha sido enviada con exito. Haz click aquí para regresar a la página principal.

Las lineas de los errores mostrados son asi :

36 $edit = fopen("noticias/$clicks.php","w");
37 fputs($edit,$edita);
38 fclose($edit);




Que permiso tiene que tener le dado 777 y 755 y no va :S

Me sigue diciendo que si la envia pero no aparece en la pagina donde devería aparecer :y)

Saludos

Haz clic para ver el perfil del usuario

@man / @woman
@man / @woman

#7
Escrito originalmente por _rEg_

Warning: fopen("noticias/.php", "w&quot - Permission denied in /home/apache/net-gravity/registro/noticiasenviar.php on line 36


Mejor que poner códigos fuentes que no suelen estar mal es mejor dar estos fallos.

Si te das cuenta intenta grabar la noticia en un arhivo, pero no lo tienes definido. Mira a ver si hay un .txt explicando como configurar el script o algo asi.
Haz clic para ver el perfil del usuario

Usuario habitual
Usuario habitual

#8

Que va no hay ningun leeme o algo similar

No consigo hacer que se vean por cierto como puedo definir el archivo para que me lo grabe ?

Nada mas hago probar y probar pero no doy con la tecla :S


Saludos.

Haz clic para ver el perfil del usuario

@man / @woman
@man / @woman

#9

El nombre del archivo lo saca de la variable $clicks pero no parece estar definida.... y tiene que estarlo por algun lado. Revisalo o ponte en contacto con el autor del script.

Haz clic para ver el perfil del usuario

Okupa del foro
Okupa del foro

#10

te reomiendo usar mysql... es un poco rollo eso de los txt' s, bye.

ATENCIÓN: Este tema no tiene actividad desde hace más de 6 MESES,
te recomendamos abrir un nuevo tema en lugar de responder al actual
Opciones:
Suscribir

Permisos:

TU NO PUEDES Escribir nuevos temas en este foro
TU NO PUEDES Responder a los temas en este foro
TU NO PUEDES Editar tus propios mensajes en este foro
TU NO PUEDES Borrar tus propios mensajes en este foro
Ahora son las 05:11 UTC+02:00 DST
Ir al subforo:
Temas similares
TemaUsuariosRespuestasVisitasActividad
1733Aug/05
2838Jan/05
2817Sep/09
32kNov/08
2909Feb/05