Foros del Web » Programando para Internet » PHP »

Ayuda con unos scripts

Estas en el tema de Ayuda con unos scripts en el foro de PHP en Foros del Web. Hola amigos tengo un problema con un script de noticias, el script muestra noticias articulos y anuncios que hago en mi pagina esto lo hago ...
  #1 (permalink)  
Antiguo 08/03/2005, 14:51
 
Fecha de Ingreso: noviembre-2003
Ubicación: Puente de ixtla
Mensajes: 773
Antigüedad: 14 años, 1 mes
Puntos: 0
Ayuda con unos scripts

Hola amigos tengo un problema con un script de noticias, el script muestra noticias articulos y anuncios que hago en mi pagina esto lo hago con un campo que tengo en mi tabla llamado categoria el cual utilizo una sentensia ssql para motrar lo que yo quiero, el problrma es que a la hora de paginar hay prolemas puesto que mi web es modular y en default tengo mi script en anuncios. Tengoel paginador de jpinedo pondre aqui mi script

<?
//conecto con la base de datos
include("configuracion.php");

if (!$HTTP_POST_VARS)
{
if(!$HTTP_GET_VARS )
{
//construyo la sentencia sql
$ssql = "SELECT * FROM noticias_articulos WHERE categoria = 'anuncio' ";
$ssql .= " ORDER BY id_noticia_articulo desc";
?><p align="center" class="Estilo5"><img src="imagenes/IMAGES/DOTS.GIF" width="10" height="10">Anuncio<img src="imagenes/IMAGES/DOTS.GIF" width="10" height="10"></p>
<?
}else{
$ca=$_GET["ca"];
?>
<p align="center" class="Estilo5"><img src="imagenes/IMAGES/DOTS.GIF" width="10" height="10"><?echo $ca;?><img src="imagenes/IMAGES/DOTS.GIF" width="10" height="10"></p>
<?
$ssql = "SELECT * FROM noticias_articulos WHERE categoria = '$ca' ";
$ssql .= " ORDER BY id_noticia_articulo desc";
}
$_pagi_sql = $ssql;
$_pagi_cuantos = 5;
$_pagi_nav_num_enlaces=5;
$_pagi_conteo_alternativo="true";
//tomo el juego de resultados
$resultid = mysql_query($ssql,$conn);
//verifico cuantas filas hay en la tabla
$num=mysql_num_rows($resultid);
include("pagin_noticias.php");
?>

<?
//muestro los datos en un bucle
while ($damefila=mysql_fetch_object($_pagi_result))
{
//arreglo para el uso de smilies en el libro de visitas

$var = $damefila->n_corta;
//corto las cadenas de texto para que no me las muestre a lo largo de la pagina
$var = wordwrap( $var,60, "<br />" );
$var = str_replace ('(t)','<img src=smilies/60.gif>',$var);
//creamos el tratocode para dar formato a las firmas
//codigos para alineacion
$var = str_replace ('{centrado}','<p align=center>',$var);
$var = str_replace ('{/centrado}','</p>',$var);
$var = str_replace('{izquierda}','<p align=left>',$var);
$var = str_replace('{/izquierda}','</p>',$var);
$var = str_replace('{derecha}','<p align=right>',$var);
$var = str_replace('{/derecha}','</p>',$var);
$var = str_replace('{justificado}','<p align=justify>',$var);
$var = str_replace('{/justificado}','</p>',$var);
//codigos para tamaño de la fuente
$var = str_replace ('{t=14}','<font size=4>',$var);
$var = str_replace ('{t=18}','<font size=5>',$var);
$var = str_replace ('{t=24}','<font size=6>',$var);
$var = str_replace ('{t=36}','<font size=7>',$var);
$var = str_replace ('{/t}','</font>',$var);
//codigos para color de la fuente
$var = str_replace ('{fcolor=rojo}','<font color=red>',$var);
$var = str_replace ('{fcolor=azul}','<font color=blue>',$var);
$var = str_replace ('{fcolor=aqua}','<font color=aqua>',$var);
$var = str_replace ('{fcolor=black}','<font color=black>',$var);
$var = str_replace ('{fcolor=verde}','<font color=green>',$var);
$var = str_replace ('{fcolor=red}','<font color=red>',$var);
$var = str_replace ('{fcolor=amarillo}','<font color=yellow>',$var);
$var = str_replace ('{fcolor=red}','<font color=red>',$var);
$var = str_replace ('{fcolor=lima}','<font color=lime>',$var);
$var = str_replace ('{fcolor=blanco}','<font color=white>',$var);
$var = str_replace ('{/fcolor}','</font>',$var);
//codigos para negritas, italica y subrayado
$var = str_replace ('{n}','<n>',$var);
$var = str_replace ('{/n}','</n>',$var);
$var = str_replace ('{i}','<i>',$var);
$var = str_replace ('{/i}','</i>',$var);
$var = str_replace ('{s}','<s>',$var);
$var = str_replace ('{/s}','</s>',$var);
//listas
$var = str_replace('{li}','<li>',$var);
//fotos
$var = str_replace('{foto}','<img src=',$var);
$var=str_replace('{/foto}','>',$var);
//links automaticos
$var=busca_url($var);
?>
</p>
<hr>
<b><i>Autor: </i></b>
<? //si el visitante no introdujo nombre muestro como nombre "Anónimo"
if ($damefila->autor == "-"){
echo "Anónimo";
}else{
$autor=emoticon_tratocode($damefila->autor);
echo $autor;
}
?>

<p align="justify"><b><i>
<?
$titulo=busca_url(emoticon_tratocode($damefila->titulo));
echo $titulo;
?><br><br>
Noticia:</i></b>
<p align="justify">
<?echo "$var\n";?></p>
<p align="justify"><? echo "<a href=index.php?enlace=noticia_larga&noticia=".$dam efila->id_noticia_articulo.">Leer +</a>";?></p>
<div align="justify"><br>
<b>Lugar:</b><?echo $damefila->lugar;?>
<br>
<b>Fecha:</b><?echo $damefila->fecha;?>
<br>
<b>Categoria.</b><? echo $damefila->categoria;?>
</p>
<br>
<?
} //termina el bucle while
//Incluimos la barra de navegación
echo"<p align=center>".$_pagi_navegacion."</p>";

//libero el conjunto de resultados
mysql_free_result($_pagi_result);

}
else
{
//estoy recibiendo datos del fomulario de firmas
//Formateamos un poco el formulario, por si acaso los datos son incorrectos

//eliminamos las etiquetas HTML y PHP de las cadenas de texto
$autor = strip_tags($_POST["autor"]);
$n_corta = strip_tags($_POST["noticia"]);
$lugar = strip_tags($_POST["lugar"]);
$titulo = strip_tags($_POST["titulo"]);
$n_larga = strip_tags($_POST["noticia_larga"]);
$categoria=$_POST["categoria"];
if($categoria=="no")
{
echo "Tienes que seleccionar una categoria";
}else{
//Cortamos las cadenas demasiado largas
$nombre=substr($autor,0,20);

//Comprobamos que el visitante se ha molestado en rellenar algo
if (strlen($autor)==0 and strlen($noticia)==0)
{
?>
</div>
<div align="center"><b>Gracias por el envio de tu noticia</b>.<br><br>Pero se te agradeceria que rellenaras los campos para publicar tu noticia</div>

<?
}else{
//si alguno de los campos falta prefiero colocar un guión o "sin comentarios"
if (!$autor)$autor="-";
if (!$noticia) $noticia="No hay noticia";

//Generamos la ssql e insertamos el registro
$ssql = "INSERT INTO noticias_articulos (autor,lugar,titulo,n_corta,n_larga,categoria,fech a) VALUES ('" . $autor . "','".$lugar."','" . $titulo . "','".$n_corta."','".$n_larga."','".$categoria."', CURDATE())";
//echo $ssql . "<p>";
mysql_query($ssql,$conn);
?>
<div align="center"><b>Muchas gracias por tu participaci&oacute;n</b></div>
<?
}
?>
<br>
<br>
<div align="center" class="Estilo6"><b><a href="index.php" >Volver a la pagina principal</a></b></div>
<span class="Estilo6">
<?
}
}
mysql_close($conn);
?>
</span>
__________________
°º¤ø,¸¸,ø¤º°`°º¤ø,¸[email protected]°º¤ø,¸¸,ø¤º°`°º¤ø,¸.
Dios solo nos dio el 0 y el 1 y con solo eso hemos construido un universo
  #2 (permalink)  
Antiguo 08/03/2005, 14:54
 
Fecha de Ingreso: noviembre-2003
Ubicación: Puente de ixtla
Mensajes: 773
Antigüedad: 14 años, 1 mes
Puntos: 0
Aqui esta el index

<?include("tratolib.php");?>
<p align="center">
<?
//Pon esta L&iacute;neas donde quires que se visualizen los usuarios online
include("class.online.php");

$enlinea = new Usuariosenlinea();
$enlinea->enlinea();
?>

<td width="460" align="center" height="322" valign="top"><table width="98%" border="0" cellpadding="3" cellspacing="1" bgcolor="#666666">
<tr>
<td height="25" valign="top" bgcolor="E3EDFF"><div align="center">
<?
$enlace=$_GET["enlace"];
switch($enlace)
{
case contacto:
include("mail.html");
break;
case mandar:
include("mandar.php");
break;
case noticias:
include("noticias.php");
break;
case articulos:
include("noticias.php");
break;
case encuestas:
include("sympoll/index.php");
break;
case noticia_larga:
include("noticia_larga.php");
break;
case recomendar_amigo:
include("recomendar.htm");
break;
case recomendar:
include("recomiendanos.php");
break;
case publicar_mensaje:
include("mensajes.php");
break;
case huevos:
include("huevos/huevos.htm");
break;
case amor_amistad:
include("huevos/amor.htm");
break;
default:
if(isset($vo))
{
include("sympoll/index.php");
}
include("noticias.php");
break;
}
?>
</div></td>
</tr>
</table> </td>
<?
$enlace=$_GET["enlace"];
if($enlace!="encuestas")
{
?>
<td width="141" align="center" valign="top" height="196" rowspan="2"><table width="66%" border="0" cellpadding="3" cellspacing="1" bgcolor="#666666">
<tr>

<td bgcolor="E3EDFF">
<?php
require 'sympoll/booth.php';
display_booth(1);
?>
__________________
°º¤ø,¸¸,ø¤º°`°º¤ø,¸[email protected]°º¤ø,¸¸,ø¤º°`°º¤ø,¸.
Dios solo nos dio el 0 y el 1 y con solo eso hemos construido un universo
  #3 (permalink)  
Antiguo 08/03/2005, 16:53
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 14 años, 2 meses
Puntos: 41
Hola... sería buena idea que edites tus mensajes anteriores y pongas el código entre etiquetas [ PHP] y [/PHP] para que se coloree y sea más fácil seguirlo.

Dices que a la hora de paginar hay problemas... ¿Cuáles?
Deberías poner si te sale algún mensaje de error o si al pasar a la segunda página pasa algo... etc... tata de dar más detalles para poder ir directo al punto.

Un saludo
  #4 (permalink)  
Antiguo 09/03/2005, 13:36
 
Fecha de Ingreso: noviembre-2003
Ubicación: Puente de ixtla
Mensajes: 773
Antigüedad: 14 años, 1 mes
Puntos: 0
Bueno no da error y muestra bien los enlaces hacia mas registros pero a la hora que quieres irte a ver mas registros y le das click en un enlace no te lo muestra los registros y como te digo el script lo utilizo para otras cosas
__________________
°º¤ø,¸¸,ø¤º°`°º¤ø,¸[email protected]°º¤ø,¸¸,ø¤º°`°º¤ø,¸.
Dios solo nos dio el 0 y el 1 y con solo eso hemos construido un universo
  #5 (permalink)  
Antiguo 09/03/2005, 15:44
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 14 años, 2 meses
Puntos: 41
Antes que nada bájate la última versión que acavbo de publicar ayer (1.6.0). He corregido un bug en la propagación de variables que hacía que no funcione correctamente con register globals en OFF. Y justamente tu problema parece ser de propagación de variables.

- Otra cosa... no es necesario hacer un mysql_query() y mysql_num_rows() para saber la cantidad de registros devueltos en la consulta. La cantidad total de registros está en la variable $_pagi_totalReg.

- Y tampoco le cambiaría el nombre a "pagin_noticias.php", porque la idea es que pueda servir para cualquier paginación que hagas (esto ya es cuestión de gustos).

- Para poder ver cualquier error que se pueda estar produciendo, pon esta línea al comienzo del script:
Código PHP:
error_reporting(E_ALL); 
- Para ver posibles errores de mysql que pueden generarse al pasar a otra página activa la variable $_pagi_mostrar_errores.

- Tu script podría quedar así:
Código PHP:
 $_pagi_sql $ssql;
$_pagi_cuantos 5;
$_pagi_nav_num_enlaces 5;
$_pagi_mostrar_errores true;
$_pagi_propagar = array("ca");
include(
"paginator.inc.php");// Acuérdate de bajar la última versión. 
Y si eso no funcionara, por lo menos tendrás algunos mensajes de error para contarnos.
Saludos

Última edición por jpinedo; 09/03/2005 a las 15:46
  #6 (permalink)  
Antiguo 14/03/2005, 12:12
 
Fecha de Ingreso: noviembre-2003
Ubicación: Puente de ixtla
Mensajes: 773
Antigüedad: 14 años, 1 mes
Puntos: 0
Buieno me sigue dando el mismo problema si quieren ver que es lo que pasa entren a http://tratoweb.webcindario.com
__________________
°º¤ø,¸¸,ø¤º°`°º¤ø,¸[email protected]°º¤ø,¸¸,ø¤º°`°º¤ø,¸.
Dios solo nos dio el 0 y el 1 y con solo eso hemos construido un universo
  #7 (permalink)  
Antiguo 15/03/2005, 12:15
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 14 años, 2 meses
Puntos: 41
Como ya te dije por mp, la línea:
Código PHP:
if(!$HTTP_GET_VARS 
Le cierra toda posibilidad a cualquier variable pasada por URL. Y dado que paginator pasa una variable _pagi_pg para saber qué número de página mostrar... entonces obtienes ese comportamiento no deseado.
Lo único que te interesa filtrar es la variable $_GET['ca'] y no todo el array $_GET.
Entonces deberás cambiar esa línea por
Código PHP:
if(!isset($_GET['ca'])) 
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 13:17.