Foros del Web » Programando para Internet » PHP »

Alternar enlaces con PHP

Estas en el tema de Alternar enlaces con PHP en el foro de PHP en Foros del Web. Después de pelearme con Javascript y no poder resolver el problema, pensé que se podría solucionar usando PHP. Para ello hice este código: Código PHP: ...
  #1 (permalink)  
Antiguo 25/01/2010, 06:51
 
Fecha de Ingreso: enero-2006
Ubicación: Barcelona, España
Mensajes: 126
Antigüedad: 18 años, 3 meses
Puntos: 1
Alternar enlaces con PHP

Después de pelearme con Javascript y no poder resolver el problema, pensé que se podría solucionar usando PHP. Para ello hice este código:

Código PHP:
<?php
    
// You can place PHP like this


$enlace[1]="<object width="340" height="285"><param name="movie" value="http://www.youtube.com/v/lAEfizVIn9A&hl=es_ES&fs=1&color1=0x234900&color2=0x4e9e00&border=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/lAEfizVIn9A&hl=es_ES&fs=1&color1=0x234900&color2=0x4e9e00&border=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="340" height="285"></embed></object>";
$enlace[2]="<object width="340" height="285"><param name="movie" value="http://www.youtube.com/v/jfrMY984cxM&hl=es_ES&fs=1&color1=0x234900&color2=0x4e9e00&border=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/jfrMY984cxM&hl=es_ES&fs=1&color1=0x234900&color2=0x4e9e00&border=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="340" height="285"></embed></object>";
$enlace[3]="<object width="340" height="285"><param name="movie" value="http://www.youtube.com/v/HINjxTLdSCI&hl=es_ES&fs=1&color1=0x234900&color2=0x4e9e00&border=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/HINjxTLdSCI&hl=es_ES&fs=1&color1=0x234900&color2=0x4e9e00&border=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="340" height="285"></embed></object>";


$total_enlaces=1;
while ( !empty(
$enlace[$total_enlaces+1]) ) {
        
$total_enlaces++;
}


$aleatorio=rand(1,$total_enlaces);



echo 
"$enlace[$aleatorio]";
?>
Parece que este todo bien pero a la hora de ejecutar el código no responde. Como debería de enviar la consulta?

Muchas gracias!
  #2 (permalink)  
Antiguo 25/01/2010, 06:56
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Alternar enlaces con PHP

Usa el "backslash" (\) para escapar el "fowardslash" (/). Algo así
Código PHP:
Ver original
  1. http:\/\/......
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 25/01/2010, 07:10
 
Fecha de Ingreso: enero-2006
Ubicación: Barcelona, España
Mensajes: 126
Antigüedad: 18 años, 3 meses
Puntos: 1
Respuesta: Alternar enlaces con PHP

Hola, gracias por tu consejo. Imagino que debo ponerlo en todos los enlaces que ponga. Lo hago de este modo y sigue sin funcionarme. Además cuando pruebo el código en localhost, me sale el siguiente mensaje:

Parse error: parse error in H:\xampp\htdocs\videos.php on line 5


"<object width="340" height="285"><param name="movie" value="http:\/\/www.youtube.com/v/lAEfizVIn9A&hl=es_ES&fs=1&color1=0x234900&color2=0 x4e9e00&border=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http:\/\/www.youtube.com/v/lAEfizVIn9A&hl=es_ES&fs=1&color1=0x234900&color2=0 x4e9e00&border=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="340" height="285"></embed></object>"
  #4 (permalink)  
Antiguo 25/01/2010, 07:13
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 4 meses
Puntos: 89
Respuesta: Alternar enlaces con PHP

Todas las comillas dobles, que estén dentro de otras comillas dobles, deben ser escapadas.

Ej:

Código PHP:
Ver original
  1. "<object width=\"340\"...

Así con todo tus links.

Nos vemos.
__________________
Nunca te olvidaré mi negra hermosa. Te extraño demasiado.
  #5 (permalink)  
Antiguo 25/01/2010, 07:18
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Alternar enlaces con PHP

No me fije en las comillas, Spider_boy tiene razón, debes escapar las comillas, aquí verás el uso http://www.forosdelweb.com/f18/como-...1/#post2414268
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #6 (permalink)  
Antiguo 25/01/2010, 08:19
Avatar de dasuve  
Fecha de Ingreso: marzo-2007
Ubicación: Gijón
Mensajes: 71
Antigüedad: 17 años, 1 mes
Puntos: 2
Respuesta: Alternar enlaces con PHP

Otra opción....

Código PHP:
$enlace[1]="<object width='340' height='285'><param name='movie' value='http://www.youtube.com/v/lAEfizVIn9A&hl=es_ES&fs=1&color1=0x234900&color2=0x4e9e00&border=1'></param><param name='allowFullScreen' value='true'></param><param name='allowscriptaccess' value='always'></param><embed src='http://www.youtube.com/v/lAEfizVIn9A&hl=es_ES&fs=1&color1=0x234900&color2=0x4e9e00&border=1' type='application/x-shockwave-flash' allowscriptaccess='always'' allowfullscreen='true' width='340' height='285'></embed></object>"
  #7 (permalink)  
Antiguo 25/01/2010, 08:48
 
Fecha de Ingreso: enero-2006
Ubicación: Barcelona, España
Mensajes: 126
Antigüedad: 18 años, 3 meses
Puntos: 1
Respuesta: Alternar enlaces con PHP

Hola,

Muchas gracias por encaminarme, voy a probarlo a ver si funciona.

Un saludo!
  #8 (permalink)  
Antiguo 26/01/2010, 05:48
 
Fecha de Ingreso: enero-2006
Ubicación: Barcelona, España
Mensajes: 126
Antigüedad: 18 años, 3 meses
Puntos: 1
Respuesta: Alternar enlaces con PHP

Hola! Ya tengo el código funcionando correctamente. Lo pongo aquí por si alguien tambien le resulta útil, solo debe de cambiar los enlaces. Lo que si he visto es que hay un error que no acabo de comprender y es que he puesto este código varias veces en la página. Una para mostrar videos marineros y otra para mostrar videos de corbatas. El problema es que a veces en el sitio de los nudos de corbata, aparece un video de nudo marinero y no lo entiendo porque en principio son códigos completamente distintos y la URL del video está bien puesta.

Código PHP:
<?php

//Lista de enlaces
$enlace[1]="<object width=\"340\" height=\"285\"><param name=\"movie\" value=\"http://www.youtube.com/v/60KBUdgRCRw&hl=es_ES&fs=1&color1=0xe1600f&color2=0xfebd01&border=1\"></param><param name=\"allowFullScreen\" value=\"true\"></param><param name=\"allowscriptaccess\" value=\"always\"></param><embed src=\"http://www.youtube.com/v/60KBUdgRCRw&hl=es_ES&fs=1&color1=0xe1600f&color2=0xfebd01&border=1\" type=\"application/x-shockwave-flash\" allowscriptaccess=\"always\" allowfullscreen=\"true\" width=\"340\" height=\"285\"></embed></object>";
$enlace[2]="<object width=\"340\" height=\"285\"><param name=\"movie\" value=\"http://www.youtube.com/v/gGDS_Q15xsg&hl=es_ES&fs=1&color1=0xe1600f&color2=0xfebd01&border=1\"></param><param name=\"allowFullScreen\" value=\"true\"></param><param name=\"allowscriptaccess\" value=\"always\"></param><embed src=\"http://www.youtube.com/v/gGDS_Q15xsg&hl=es_ES&fs=1&color1=0xe1600f&color2=0xfebd01&border=1\" type=\"application/x-shockwave-flash\" allowscriptaccess=\"always\" allowfullscreen=\"true\" width=\"340\" height=\"285\"></embed></object>";
$enlace[3]="<object width=\"340\" height=\"285\"><param name=\"movie\" value=\"http://www.youtube.com/v/gGDS_Q15xsg&hl=es_ES&fs=1&color1=0xe1600f&color2=0xfebd01&border=1\"></param><param name=\"allowFullScreen\" value=\"true\"></param><param name=\"allowscriptaccess\" value=\"always\"></param><embed src=\"http://www.youtube.com/v/gGDS_Q15xsg&hl=es_ES&fs=1&color1=0xe1600f&color2=0xfebd01&border=1\" type=\"application/x-shockwave-flash\" allowscriptaccess=\"always\" allowfullscreen=\"true\" width=\"340\" height=\"285\"></embed></object>";
$enlace[4]="<object width=\"340\" height=\"285\"><param name=\"movie\" value=\"http://www.youtube.com/v/ELvU4inKfQI&hl=es_ES&fs=1&color1=0xe1600f&color2=0xfebd01&border=1\"></param><param name=\"allowFullScreen\" value=\"true\"></param><param name=\"allowscriptaccess\" value=\"always\"></param><embed src=\"http://www.youtube.com/v/ELvU4inKfQI&hl=es_ES&fs=1&color1=0xe1600f&color2=0xfebd01&border=1\" type=\"application/x-shockwave-flash\" allowscriptaccess=\"always\" allowfullscreen=\"true\" width=\"340\" height=\"285\"></embed></object>";

//Calculo el numero total de enlaces
$total_enlaces=1;
while ( !empty(
$enlace[$total_enlaces+1]) ) {
$total_enlaces++;
}

//Genero numero aleatorio sin superar a enlaces
$aleatorio=rand(1,$total_enlaces);

//Escribo el vinculo
echo "<div align='center'>$enlace[$aleatorio]</div>";

?>
  #9 (permalink)  
Antiguo 26/01/2010, 05:57
Avatar de Ryo
Ryo
 
Fecha de Ingreso: marzo-2008
Ubicación: Bilbao
Mensajes: 269
Antigüedad: 16 años, 1 mes
Puntos: 14
Respuesta: Alternar enlaces con PHP

Una sugerencia: no es necesario que te preocupes por hacer tu propio código para contar el número total de enlaces. La función count puede hacer ese trabajo por ti.
  #10 (permalink)  
Antiguo 26/01/2010, 06:14
 
Fecha de Ingreso: enero-2006
Ubicación: Barcelona, España
Mensajes: 126
Antigüedad: 18 años, 3 meses
Puntos: 1
Respuesta: Alternar enlaces con PHP

Hola Ryo,

Entoces podría dejarlo así el código?

Código PHP:
<?php

//Lista de enlaces
$enlace[1]="<object width=\"340\" height=\"285\"><param name=\"movie\" value=\"http://www.youtube.com/v/60KBUdgRCRw&hl=es_ES&fs=1&color1=0xe1600f&color2=0xfebd01&border=1\"></param><param name=\"allowFullScreen\" value=\"true\"></param><param name=\"allowscriptaccess\" value=\"always\"></param><embed src=\"http://www.youtube.com/v/60KBUdgRCRw&hl=es_ES&fs=1&color1=0xe1600f&color2=0xfebd01&border=1\" type=\"application/x-shockwave-flash\" allowscriptaccess=\"always\" allowfullscreen=\"true\" width=\"340\" height=\"285\"></embed></object>";
$enlace[2]="<object width=\"340\" height=\"285\"><param name=\"movie\" value=\"http://www.youtube.com/v/gGDS_Q15xsg&hl=es_ES&fs=1&color1=0xe1600f&color2=0xfebd01&border=1\"></param><param name=\"allowFullScreen\" value=\"true\"></param><param name=\"allowscriptaccess\" value=\"always\"></param><embed src=\"http://www.youtube.com/v/gGDS_Q15xsg&hl=es_ES&fs=1&color1=0xe1600f&color2=0xfebd01&border=1\" type=\"application/x-shockwave-flash\" allowscriptaccess=\"always\" allowfullscreen=\"true\" width=\"340\" height=\"285\"></embed></object>";
$enlace[3]="<object width=\"340\" height=\"285\"><param name=\"movie\" value=\"http://www.youtube.com/v/gGDS_Q15xsg&hl=es_ES&fs=1&color1=0xe1600f&color2=0xfebd01&border=1\"></param><param name=\"allowFullScreen\" value=\"true\"></param><param name=\"allowscriptaccess\" value=\"always\"></param><embed src=\"http://www.youtube.com/v/gGDS_Q15xsg&hl=es_ES&fs=1&color1=0xe1600f&color2=0xfebd01&border=1\" type=\"application/x-shockwave-flash\" allowscriptaccess=\"always\" allowfullscreen=\"true\" width=\"340\" height=\"285\"></embed></object>";
$enlace[4]="<object width=\"340\" height=\"285\"><param name=\"movie\" value=\"http://www.youtube.com/v/ELvU4inKfQI&hl=es_ES&fs=1&color1=0xe1600f&color2=0xfebd01&border=1\"></param><param name=\"allowFullScreen\" value=\"true\"></param><param name=\"allowscriptaccess\" value=\"always\"></param><embed src=\"http://www.youtube.com/v/ELvU4inKfQI&hl=es_ES&fs=1&color1=0xe1600f&color2=0xfebd01&border=1\" type=\"application/x-shockwave-flash\" allowscriptaccess=\"always\" allowfullscreen=\"true\" width=\"340\" height=\"285\"></embed></object>";

//Calculo el numero total de enlaces
$total_enlaces count($enlace);

//Genero numero aleatorio sin superar a enlaces
$aleatorio=rand(1,$total_enlaces);

//Escribo el vinculo
echo "<div align='center'>$enlace[$aleatorio]</div>";

?>
Lo acabo de probar y no funciona, parece que esté todo bien, no?
  #11 (permalink)  
Antiguo 26/01/2010, 06:26
Avatar de Ryo
Ryo
 
Fecha de Ingreso: marzo-2008
Ubicación: Bilbao
Mensajes: 269
Antigüedad: 16 años, 1 mes
Puntos: 14
Respuesta: Alternar enlaces con PHP

No veo nada mal, pero algo se nos escapa. ¿Te da algún error? De todas formas, haz echo $total_enlaces y a ver qué te sale.

Edit: Creí que el problema sería el hecho de que en PHP los arrays empiezan en 0, pero tú te encargas de que éste empiece en 1...
  #12 (permalink)  
Antiguo 26/01/2010, 06:37
 
Fecha de Ingreso: enero-2006
Ubicación: Barcelona, España
Mensajes: 126
Antigüedad: 18 años, 3 meses
Puntos: 1
Respuesta: Alternar enlaces con PHP

Error ninguno, solo que no muestra nada, y con el echo, tampoco.
  #13 (permalink)  
Antiguo 26/01/2010, 06:53
Avatar de bacc  
Fecha de Ingreso: febrero-2009
Ubicación: Argentina
Mensajes: 33
Antigüedad: 15 años, 2 meses
Puntos: 1
lo probe en mi pc y anda bien.... que version de php tenes?

Hace una cosa, cambia la lista de enlaces:

Código PHP:
Ver original
  1. //lista de enlaces
  2. $enlace[1]="a"
  3. $enlace[2]="b"
  4. $enlace[3]="c"
  5. $enlace[4]="d"

y mas abajo cambia esto

Código PHP:
Ver original
  1. //Escribo el vinculo
  2. echo "El enlace seleccionado es el ";
  3. echo "$enlace[$aleatorio]";

Me comentas que te muestra. Saludos

Última edición por GatorV; 26/01/2010 a las 10:17
  #14 (permalink)  
Antiguo 26/01/2010, 07:19
 
Fecha de Ingreso: enero-2006
Ubicación: Barcelona, España
Mensajes: 126
Antigüedad: 18 años, 3 meses
Puntos: 1
Respuesta: Alternar enlaces con PHP

La versión que usa mi servidor es la 5.2.5.
  #15 (permalink)  
Antiguo 26/01/2010, 07:38
Avatar de bacc  
Fecha de Ingreso: febrero-2009
Ubicación: Argentina
Mensajes: 33
Antigüedad: 15 años, 2 meses
Puntos: 1
Respuesta: Alternar enlaces con PHP

bien, y que te salio con los cambios en el código que te mencione antes??
  #16 (permalink)  
Antiguo 26/01/2010, 07:49
 
Fecha de Ingreso: enero-2006
Ubicación: Barcelona, España
Mensajes: 126
Antigüedad: 18 años, 3 meses
Puntos: 1
Respuesta: Alternar enlaces con PHP

Acabo de probarlo en mi localhost (PHP 5.2.9( y funciona correctamente.

Código PHP:
<?php

$enlace
[1]="<object width=\"340\" height=\"285\"><param name=\"movie\" value=\"http://www.youtube.com/v/60KBUdgRCRw&hl=es_ES&fs=1&color1=0xe1600f&color2=0xfebd01&border=1\"></param><param name=\"allowFullScreen\" value=\"true\"></param><param name=\"allowscriptaccess\" value=\"always\"></param><embed src=\"http://www.youtube.com/v/60KBUdgRCRw&hl=es_ES&fs=1&color1=0xe1600f&color2=0xfebd01&border=1\" type=\"application/x-shockwave-flash\" allowscriptaccess=\"always\" allowfullscreen=\"true\" width=\"340\" height=\"285\"></embed></object>";
$enlace[2]="<object width=\"340\" height=\"285\"><param name=\"movie\" value=\"http://www.youtube.com/v/gGDS_Q15xsg&hl=es_ES&fs=1&color1=0xe1600f&color2=0xfebd01&border=1\"></param><param name=\"allowFullScreen\" value=\"true\"></param><param name=\"allowscriptaccess\" value=\"always\"></param><embed src=\"http://www.youtube.com/v/gGDS_Q15xsg&hl=es_ES&fs=1&color1=0xe1600f&color2=0xfebd01&border=1\" type=\"application/x-shockwave-flash\" allowscriptaccess=\"always\" allowfullscreen=\"true\" width=\"340\" height=\"285\"></embed></object>";
$enlace[3]="<object width=\"340\" height=\"285\"><param name=\"movie\" value=\"http://www.youtube.com/v/gGDS_Q15xsg&hl=es_ES&fs=1&color1=0xe1600f&color2=0xfebd01&border=1\"></param><param name=\"allowFullScreen\" value=\"true\"></param><param name=\"allowscriptaccess\" value=\"always\"></param><embed src=\"http://www.youtube.com/v/gGDS_Q15xsg&hl=es_ES&fs=1&color1=0xe1600f&color2=0xfebd01&border=1\" type=\"application/x-shockwave-flash\" allowscriptaccess=\"always\" allowfullscreen=\"true\" width=\"340\" height=\"285\"></embed></object>";
$enlace[4]="<object width=\"340\" height=\"285\"><param name=\"movie\" value=\"http://www.youtube.com/v/ELvU4inKfQI&hl=es_ES&fs=1&color1=0xe1600f&color2=0xfebd01&border=1\"></param><param name=\"allowFullScreen\" value=\"true\"></param><param name=\"allowscriptaccess\" value=\"always\"></param><embed src=\"http://www.youtube.com/v/ELvU4inKfQI&hl=es_ES&fs=1&color1=0xe1600f&color2=0xfebd01&border=1\" type=\"application/x-shockwave-flash\" allowscriptaccess=\"always\" allowfullscreen=\"true\" width=\"340\" height=\"285\"></embed></object>";

//Contar enlaces
$total_enlaces count($enlace);

//Genero numero aleatorio sin superar a enlaces
$aleatorio=rand(1,$total_enlaces);

//Escribo el vinculo
echo "<div align='center'>$enlace[$aleatorio]</div>";
?>
Lo subo al hosting y compruebo que funciona, actualizo la pagina y no funciona, vuelvo a actualizar y si funciona...

Puedes ver la prueba en la página principal http://www.nudos.org en el apartado nudos cotidianos. Tengo publicado el código que usaba yo para sacar el numero, por lo que o salen una vez o salen dos veces el video.

Muchas gracias!
  #17 (permalink)  
Antiguo 26/01/2010, 08:07
 
Fecha de Ingreso: enero-2006
Ubicación: Barcelona, España
Mensajes: 126
Antigüedad: 18 años, 3 meses
Puntos: 1
Respuesta: Alternar enlaces con PHP

Hola de nuevo,

Diria que al final hemos conseguido solucionar el problema. Tambien he aprovechado para reducir un poco el codigo, y la llama echo le he incorporado toda la parte constante de los enlaces.

Código PHP:
<?php
$enlace
[1]="http://www.youtube.com/v/60KBUdgRCRw&hl=es_ES&fs=1&color1=0xe1600f&color2=0xfebd01&border=1";
$enlace[2]="http://www.youtube.com/v/gGDS_Q15xsg&hl=es_ES&fs=1&color1=0xe1600f&color2=0xfebd01&border=1";
$enlace[3]="http://www.youtube.com/v/ELvU4inKfQI&hl=es_ES&fs=1&color1=0xe1600f&color2=0xfebd01&border=1";
$enlace[4]="http://www.youtube.com/v/gjuX9pwcjJ0&hl=es_ES&fs=1&color1=0xe1600f&color2=0xfebd01&border=1";

//Contar enlaces
$total_enlaces count($enlace);

//Genero numero aleatorio sin superar a enlaces
$aleatorio=rand(1,$total_enlaces);

//Escribo el vinculo
echo "<div align='center'><object width='340' height='285'><param name='movie' value='$enlace[$aleatorio]'></param><param name='allowFullScreen' value='true'></param><param name='allowscriptaccess' value='always'></param><embed src='$enlace[$aleatorio]' type='application/x-shockwave-flash' allowscriptaccess='always' allowfullscreen='true' width='340' height='285'></embed></object></div>";
?>
Lo pongo aquí para si le resulta útil a alguien.

Un saludo!

Etiquetas: enlaces
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 23:32.