Rotador de Banner Aleatorio, ¿Me ayuda?

El primer Archivo que tengo es este... Al que llame random.php
En este archivo el usuario, contraseña y base de datos funcionan excelentemente bien... Este primer Archivo se encarga de mostrarme el banner aleatorio ubicado en la base de datos creada.
Este archivo funciona bien.
<?php
// Conecta con el servidor mysql
$link = mysql_connect('localhost', 'USUARIOBASEDEDATOS', 'CONTRASEÑA');
if(!$link) {
// Si no conecta, muestra un error y termina la ejecucion
die('No se pudo conectar con la base de datos:' . Mysql_error());
}
// Selecciona la base de datos que contiene la tabla banner
if(!mysql_select_db('NOMBREDELABASEDEDAT... $link))
{
// Si no se puede seleccionar muestra error y termina ejecucion
die('Error seleccionando base de datos: ' . Mysql_error());
}
// Toma un banner aleatorio de la base de datos
$sql = "SELECT banner_id, nombre, url, url_imagen FROM banner ORDER BY RAND() LIMIT 1";
$res = mysql_query($sql);
list($banner_id, $nombre, $url, $url_imagen) = mysql_fetch_array($res);
// Muestra el banner
echo "<a href=\"cuenta.php?banner_id=".$banner_id...
echo "<img src=\"".$url_imagen."\" width=\"1145\" height=\"220\" ";
echo "border=\"0\" alt=\"".$nombre."\"></a>\n";
// Actualiza la cantidad de impresiones del banner
$sql = "UPDATE banner SET impresiones=impresiones+1 WHERE banner_id=".$banner_id." LIMIT 1";
mysql_query($sql);
?>
Mi segundo archivo es este: al que llame cuenta.php
Este archivo se encarga de contar cuantos clics le han dado a cada banenr aleatorio que ha sido mostrado en el anterior archivo (random.php)
Aqui es donde surge el problema...
El codigo es el siguiente:
<?php
// Conecta con el servidor mysql
$link = mysql_connect('localhost', 'USUARIO', 'CONTRASEÑA');
if(!$link) {
// Si no conecta, muestra un error y termina la ejecucion
die('No se pudo conectar con la base de datos:' . Mysql_error());
}
// Selecciona la base de datos que contiene la tabla banner
if(!mysql_select_db('BASEDEDATOS', $link))
{
// Si no se puede seleccionar muestra error y termina ejecucion
die('Error seleccionando base de datos: ' . Mysql_error());
}
// Revisa si se paso el parametro correcto
if(!isset(tiny_mce_markerGET['banner_id']) || !eregi('^[0-9]+, tiny_mce_markerGET['banner_id']))
{
die('Ha seguido un enlace incorrecto');
}
$banner_id = tiny_mce_markerGET['banner_id'];
$sql = "SELECT url FROM banner WHERE banner_id=" . $banner_id;
$res = mysql_query($sql);
if(mysql_num_rows($res) == 0)
{
// Si el banner no existe muestra el error y termina ejecucion
die('Este banner no existe');
}
else
{
list($url) = mysql_fetch_array($res);
// Actualiza la cantidad de clics
$sql = "UPDATE banner SET clics=clics+1 WHERE banner_id=".$banner_id." LIMIT 1";
mysql_query($sql);
// Redirecciona el navegador
header('Location: ' . $url);
die();
}
?>
YA CASI EN LA PARTE FINAL DEL ARCHIVO "CUENTA.PHP" Se supone que me debe de redireccionar a la dirección URL que tiene asignado el banner en la base de datos... Pero No lo hace.
Me muestra lo siguiente:
"Warning: Cannot modify header information - headers already sent by (output started at /home/diosconn/public_html/cuenta.php:11... In /home/diosconn/public_html/cuenta.php on line 54"
Pero aun no puedo saber porque me hace esto... No se muy bien acerca de PHP, he intentado cambiarle pero nomas no sale...
Si me ayudan a corregir el archivo "CUENTA.PHP" se los agradecería mucho.
Dios les Bendiga y espero sus respuestas.
Gracias
Nota: Aclaro que el usuario y la contraseña, también las bases de datos están bien escritos... El único error que me sale es el que les mencione.
mi correo es: [email protected]

2 Respuestas

Respuesta
1
El comando header redirecciona enviando las cabeceras, para lo que es imprescindible que no se hayan enviado antes. Parece que se han enviado a causa de una orden en la línea 54 de cuenta.php
Ten en cuenta que no puede haber ninguna orden "echo" o similar que muestre nada en la pantalla porque esto envía automáticamente las cabeceras y por lo tanto ya no podrías volver a enviarlas para redireccionar.
Antes de header nada tiene que haber salido en la pantalla, ni ninguna etiqueta html.
Muchas gracias. Me sirvió mucho... Ya funciona bien el rotador de Banner...
Si tenia cosas de HTML arriba... la verdad no se mucho de PHP y espero me pueda seguir ayudando...
Mi correo es [email protected]
Y pues esto lo voy a implementar en un sitio web Crisitiano, le agradezco mucho su ayuda y que Dios lo Bendiga.
La dirección de que funciona correctamente es www.diosconnosotros.org.mx/random.php
Saludos!
Que tenga una excelente tarde!
Me alegro de que ya te funcione.
Respuesta
1
Este error sale porque estas enviando código html antes de enviar el header, ¿revisa si entre el primer tag de <?php y el inicio de la página no hay espacios, si estas mandando echos antes del header o si estas usando un sistema de inclusiones(función include o require), si el archivo padre esta imprimiendo datos antes de llamar al script cuenta.php.
En verdad me ayudo demasiado... Ya funciona correctamente el Rotador de Banner... Es usted muy amable en ayudarme.
En verdad que Dios lo Bendiga y muchas gracias...
De hecho es para un Sitio web Cristiano en el cual quiero implementar este rotador de banner...
Muchas Gracias...
Saludos y Bendiciones.
Le dejo el Link donde esta el rotador temporalmente...
www.diosconnosotros.org.mx/temp.hp
Le dejo mi correo porque quizá lo este molestando muy seguido je je (Claro si usted lo permite)...
[email protected]
Gracias.
Que tenga un excelente Día!
Con mucho gusto, es agradable saber que te sirvió la ayuda. Si necesitas mis servicios profesionales me puedes contactar por este medio.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas