Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Pequeña función IF para comparar URL

Estas en el tema de Pequeña función IF para comparar URL en el foro de PHP en Foros del Web. Hola, necesito crear una función en PHP para Wordpress en la cual compare la URL activa con una URL determinada para saber si puedo colocar ...
  #1 (permalink)  
Antiguo 28/10/2014, 18:22
 
Fecha de Ingreso: noviembre-2011
Ubicación: La Plata
Mensajes: 21
Antigüedad: 13 años, 1 mes
Puntos: 0
Pequeña función IF para comparar URL

Hola, necesito crear una función en PHP para Wordpress en la cual compare la URL activa con una URL determinada para saber si puedo colocar un bloque de anuncio.

Sería algo asi:

Si (url_actual es distina a "http://url_especifica.com/") Entonces
Mostrar bloque de anuncio.

Mis conocimientos de programación en PHP son básicos e investigando logré formar una pequeña función que no logro hacerla andar:

Código:
<?php
$url_actual = get_permalink();
if($url_actual <> 'http://midominio.com/') {
<script>código anuncio</script>
}
---

Código:
<?php
$url_actual = 'http://'.$_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
if($url_actual <> 'http://midominio.com/') {
<script>código anuncio</script>
}
Cuál es el error? Con ninguna de las dos opciones logré hacerlo andar
  #2 (permalink)  
Antiguo 28/10/2014, 18:34
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Pequeña función IF para comparar URL

Y... yo te sugeriría que para saber por qué no funciona, prueba ver qué es lo que realmente estás obteniendo con esas funciones:
Código PHP:
Ver original
  1. $url_actual = 'http://'.$_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
  2. echo $url_actual ;

y
Código PHP:
Ver original
  1. $url_actual = $url_actual = get_permalink();
  2. echo $url_actual ;

Lo que quiero decir es que tu supones que con esas dos funciones obtienes "http://midominio.com/", pero ¿realmente es así?

Creo qu een realidad para lo que quieres, lo correcto sería:
Código PHP:
Ver original
  1. $url_actual = $url_actual = 'http://'.$_SERVER["SERVER_NAME"].'/';
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 28/10/2014 a las 18:40
  #3 (permalink)  
Antiguo 28/10/2014, 18:43
 
Fecha de Ingreso: noviembre-2011
Ubicación: La Plata
Mensajes: 21
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Pequeña función IF para comparar URL

Coincido contigo gnzsoloyo.

Lo he estado intentando toda la tarde y ni siquiera logro "imprimir" la url actual.

Esas funciones las saqué investigando por la web. Es decir, supuestamente en php la siguiente función determina la url actual

Código:
$url_actual = 'http://'.$_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
y en Wordpress que es donde lo voy a utilizar se simplificaría a lo siguiente:

Cita:
<?php get_permalink(); ?>
Estoy intentando sacar el valor de la variable de la siguiente manera:

Código:
<?php $url_actual = 'http://'.$_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
echo $url_actual ; ?>
Está bien escrito el código? Porque tampoco me imprime la varibale.

Modo: caos!
  #4 (permalink)  
Antiguo 28/10/2014, 18:47
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 8 meses
Puntos: 2534
Respuesta: Pequeña función IF para comparar URL

Cita:
Iniciado por elite11251 Ver Mensaje
Está bien escrito el código? Porque tampoco me imprime la varibale.
A ver, en primer lugar ¿debemos de analizar tu código y/o ejecutarlo mentalmente para saber si lo has escrito bien?

No.

Por favor, si estás haciendo pruebas lo mínimo que deberías saber es cómo ejecutar tu código: nosotros no lo vamos a hacer por ti.

El segundo código (que no usa Wordpress) está perfectamente escrito, crea un archivo .php nuevo y agrega el código para observar lo que resulta.

¿Funciona?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 28/10/2014, 18:50
 
Fecha de Ingreso: noviembre-2009
Mensajes: 205
Antigüedad: 15 años, 1 mes
Puntos: 15
Respuesta: Pequeña función IF para comparar URL

Que salida devuelve este código?

Código:
<?php 
	echo "<pre>";
	print_r($_SERVER);
	echo "<pre>";
?>
  #6 (permalink)  
Antiguo 28/10/2014, 19:01
 
Fecha de Ingreso: noviembre-2011
Ubicación: La Plata
Mensajes: 21
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Pequeña función IF para comparar URL

Entiendo lo que planteas pateketrueke, estoy poniendo todo mi esfuerzo para resolver el problema. Soy bastante ignorante en lo que a programación PHP se refiere pero no dudes que he estado unas cuantas horas investigando en la web para resolver el problema antes de postear.

RoyKeane te adjunto lo que imprimio ese codigo que me pasaste.

  #7 (permalink)  
Antiguo 28/10/2014, 19:04
 
Fecha de Ingreso: noviembre-2009
Mensajes: 205
Antigüedad: 15 años, 1 mes
Puntos: 15
Respuesta: Pequeña función IF para comparar URL

Si te devuelve esa salida es que el código PHP no está siendo parseado por el servidor web, asegurate de tener el módulo instalado.
  #8 (permalink)  
Antiguo 28/10/2014, 19:07
 
Fecha de Ingreso: noviembre-2011
Ubicación: La Plata
Mensajes: 21
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Pequeña función IF para comparar URL

Gracias RoyKeane.

Estoy utilizando Wordpress en un servidor de Hostgator. Voy a chequear el cpanel a ver que puedo hacer.
  #9 (permalink)  
Antiguo 28/10/2014, 19:08
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Pequeña función IF para comparar URL

Cita:
Iniciado por elite11251 Ver Mensaje
Entiendo lo que planteas pateketrueke, estoy poniendo todo mi esfuerzo para resolver el problema. Soy bastante ignorante en lo que a programación PHP se refiere pero no dudes que he estado unas cuantas horas investigando en la web para resolver el problema antes de postear.

RoyKeane te adjunto lo que imprimio ese codigo que me pasaste.

@elite11251:
Creo que estás haciendo algo mal, porque ese código debería haberte devuelto alco parecido a esto:
Código BASH:
Ver original
  1. Array
  2. (
  3.     [DOCUMENT_ROOT] => /home/xxxxxx/public_html/main
  4.     [EE_HOST] => main.xfiddle.com
  5.     [EE_LIB_PREFIX] => /home/xxxxxx/public_html/main/inclibs/
  6.     [EE_ROOT] => /home/xxxxxx/public_html/main/
  7.     [GATEWAY_INTERFACE] => CGI/1.1
  8.     [HTTP_ACCEPT] => text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
  9.     [HTTP_ACCEPT_LANGUAGE] => es-ar,es;q=0.8,en-us;q=0.5,en;q=0.3
  10.     [HTTP_CONNECTION] => close
  11.     [HTTP_DNT] => 1
  12.     [HTTP_HOST] => main.xxxxxx.com
  13.     [HTTP_REFERER] => http://xxxxxx.org/
  14.     [HTTP_USER_AGENT] => Mozilla/5.0 (Windows NT 6.0; rv:32.0) Gecko/20100101 Firefox/32.0
  15.     [HTTP_X_FORWARDED_FOR] => 255.255.255.255
  16.     [HTTP_X_REAL_IP] => 255.255.255.255
  17.     [PATH] => /bin:/usr/bin
  18.     [PHPRC] => /home/xxxxxx/public_html
  19.     [PROXY_ADDR] => 255.255.4.102
  20.     [QUERY_STRING] =>
  21.     [REDIRECT_STATUS] => 200
  22.     [REMOTE_ADDR] => 186.23.248.243
  23.     [REMOTE_PORT] => 38130
  24.     [REQUEST_METHOD] => GET
  25.     [REQUEST_URI] => /code_63601866.php
  26.     [SCRIPT_FILENAME] => /home/xxxxxx/public_html/main/code_63601866.php
  27.     [SCRIPT_NAME] => /code_63601866.php
  28.     [SERVER_ADDR] => 255.255.255.102
  29.     [SERVER_ADMIN] => xxxxx@xxxxxx.xxxxxx.xxxxxx.com
  30.     [SERVER_NAME] => xxxxxx.xxxxxx.com
  31.     [SERVER_PORT] => 80
  32.     [SERVER_PROTOCOL] => HTTP/1.0
  33.     [SERVER_SIGNATURE] =>
  34. Apache Server at main.xxxxxx.com Port 80
  35.  
  36.  
  37.     [SERVER_SOFTWARE] => Apache
  38.     [SITE_WEBMASTER] => xxxxxx Webmaster
  39.     [SITE_WEBMASTER_URI] => mailto:xxxxxx@xxxxxx.net
  40.     [UNIQUE_ID] => VFA94B8WBGYACX-ZCdMAAAAB
  41.     [PHP_SELF] => /code_63601866.php
  42.     [REQUEST_TIME] => 1414544864
  43.     [argv] => Array
  44.         (
  45.         )
  46.  
  47.     [argc] => 0
  48. )
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #10 (permalink)  
Antiguo 28/10/2014, 19:12
 
Fecha de Ingreso: noviembre-2011
Ubicación: La Plata
Mensajes: 21
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Pequeña función IF para comparar URL

Creo que el gran error que estoy cometiendo es usar código PHP en el widget de texto de Wordpress. Continúo en la investigación y al parecer no está permitido (de forma estandar) agregar código PHP en los widgets de texto.

Seguiré con las pruebas y ya les contaré, espero llegar a la solución para que además quede en este hilo.
  #11 (permalink)  
Antiguo 28/10/2014, 19:14
 
Fecha de Ingreso: noviembre-2009
Mensajes: 205
Antigüedad: 15 años, 1 mes
Puntos: 15
Respuesta: Pequeña función IF para comparar URL

Los servidores web no procesan código PHP en forma nativa, al menos los más populares (Apache, IIS).
Cuando el intérprete PHP no está presente el web server simplemente no puede encontrarle un significado especial a dicho código y lo "escupe" en forma literal.
  #12 (permalink)  
Antiguo 28/10/2014, 19:17
 
Fecha de Ingreso: noviembre-2009
Mensajes: 205
Antigüedad: 15 años, 1 mes
Puntos: 15
Respuesta: Pequeña función IF para comparar URL

Cita:
Iniciado por elite11251 Ver Mensaje
Creo que el gran error que estoy cometiendo es usar código PHP en el widget de texto de Wordpress. Continúo en la investigación y al parecer no está permitido (de forma estandar) agregar código PHP en los widgets de texto.
No tengo idea que es o que hace, pero si es Javascript debes tener en cuenta que eso se ejecuta en el lado del cliente y no en el servidor.
  #13 (permalink)  
Antiguo 28/10/2014, 19:34
 
Fecha de Ingreso: noviembre-2011
Ubicación: La Plata
Mensajes: 21
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Pequeña función IF para comparar URL

El problema estaba en que queria correr un código PHP en el widget de texto que tiene Worpdress y de forma estandar esto no es posible. Como solucion dejo el codigo que hay que pegar en functions.php para poder ejecutar php en el widget de texto

Código:
//Ejecutar PHP en widgets de texto
function ejecutar_php($html){
if(strpos($html,"<"."?php")!==false){
ob_start();
eval("?".">".$html);
$html=ob_get_contents();
ob_end_clean();
}
return $html;
}
add_filter('widget_text','ejecutar_php',100);
  #14 (permalink)  
Antiguo 28/10/2014, 19:35
 
Fecha de Ingreso: noviembre-2011
Ubicación: La Plata
Mensajes: 21
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Pequeña función IF para comparar URL

Gracias a todos! Tema cerrado.

Etiquetas: permalink, url, wordpress
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 08:41.