Foros del Web » Programando para Internet » PHP »

Rotacion de publicidades

Estas en el tema de Rotacion de publicidades en el foro de PHP en Foros del Web. Hola, ando buscando una forma de rotar mis 3 proveedores de publicidad en 3 div distintos de mis sitio: arriba, costado y abajo, utilizo session ...
  #1 (permalink)  
Antiguo 09/05/2012, 14:21
 
Fecha de Ingreso: agosto-2010
Mensajes: 177
Antigüedad: 13 años, 8 meses
Puntos: 5
Exclamación Rotacion de publicidades

Hola, ando buscando una forma de rotar mis 3 proveedores de publicidad en 3 div distintos de mis sitio: arriba, costado y abajo, utilizo session para que no se repita el proveedor ya que la idea es que cuando se imprima la pantalla aparezca una publicidad de cada proveedor tengo el siguiente codigo que acabo de hacer, pero no se porque motivo cada tanto se repite el proveedor a ver si alguien ve el problema o me sugiere algo:

Cita:
<?
session_start();

function publicidad ($banner){

if($_SESSION["proveedor"]==1){
$_SESSION["proveedor"]=2;
}elseif($_SESSION["proveedor"]==2){
$_SESSION["proveedor"]=3;
}elseif($_SESSION["proveedor"]==3){
$_SESSION["proveedor"]=1;
}

if ($banner=='arriba'){//BANNER ARRIBA

$proveedor=rand(1,3);
$_SESSION["proveedor"]=$proveedor;

if ($_SESSION["proveedor"]==1){

return 'Publicidad 3 arriba';

}elseif ($_SESSION["proveedor"]==2){

return 'Publicidad 2 arriba';

}elseif ($_SESSION["proveedor"]==3){

return 'Publicidad 3 arriba';

}

}elseif ($banner=='costado'){//BANNER COSTADO

if ($_SESSION["proveedor"]==1){

return 'Publicidad 1 costado';

}elseif ($_SESSION["proveedor"]==2){

return 'Publicidad 2 costado';

}elseif ($_SESSION["proveedor"]==3){

return 'Publicidad 3 costado';

}

}elseif ($banner=='abajo'){//BANNER ABAJO!

if ($_SESSION["proveedor"]==1){

return 'Publicidad 1 abajo';

}elseif ($_SESSION["proveedor"]==2){

return 'Publicidad 2 abajo';

}elseif ($_SESSION["proveedor"]==3){

return 'Publicidad 3 abajo';

}


}

}//FUNCION PUBLICIDAD


echo publicidad (arriba);
echo publicidad (costado);
echo publicidad (abajo);


?>
Lo mas raro de todo, es que el codigo tal cual lo pego aqui, funciona bien, pero cuando cambio ese texto por el codigo de la publicidad, no cumple el fin de 1 impresion por proveedor, sino que repite, cual puede llegar a ser el problema?


Alguna recomendacion?


Gracias!
  #2 (permalink)  
Antiguo 09/05/2012, 16:16
Avatar de NetGratis_eu  
Fecha de Ingreso: mayo-2012
Mensajes: 19
Antigüedad: 11 años, 11 meses
Puntos: 2
Respuesta: Rotacion de publicidades

En éstas líneas
Código PHP:
Ver original
  1. $proveedor=rand(1,3);
  2. $_SESSION["proveedor"]=$proveedor;
estás reseteando la sesión a un proveedor aleatorio *siempre*.
Por ello, a veces, se repetirá al cambiar de página. Si en su lugar usas algo similar a ésto:
Código PHP:
Ver original
  1. if(!$_SESSION["proveedor"]){
  2.     $proveedor=rand(1,3);
  3.     $_SESSION["proveedor"]=$proveedor;
  4. }
no deberías tener ese problema porque el orden de proveedores siguiente no va a coincidir con el anterior - continuará desde él.


Y para solucionar el problema de repetir, aquí veo lo que puede ser la causa:
Código PHP:
Ver original
  1. if ($_SESSION["proveedor"]==1){
  2.  
  3. return 'Publicidad 3 arriba';
  4.  
  5. }elseif ($_SESSION["proveedor"]==2){
  6.  
  7. return 'Publicidad 2 arriba';
  8.  
  9. }elseif ($_SESSION["proveedor"]==3){
  10.  
  11. return 'Publicidad 3 arriba';
  12.  
  13. }

En el proveedor 1, estarías usando publicidad del proveedor 3.

Etiquetas: publicidades, rotacion
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 18:46.