utf8 rawurlencode codificar array acentos php wordpress get urlencode

php - rawurlencode - Los saltos de solicitud de urlencode y GET en Ampersand



php urlencode acentos (3)

Debe usar urlencode antes de imprimir el enlace al usuario, no después de que haga clic en el enlace:

$link = "http://www.somesite.com/redirector.aspx?aid=334&cid=2502&tid=3"; echo ''<a href="http://www.mysite.com/go/go.php?url=''.urlencode($link).''">'' . $link . ''</a>'';

[+]

Recomiendo escribir un script que cambie las entradas existentes con las correctas. Si todos comienzan con www.mysite.com/go/go.php?url= , puede reemplazarlo con nada en la base de datos, agregue esta parte a su metaetiqueta y echo urlencoded link desde db.

Cualquier otra solución será solo un kludge. Una de ellas es recrear la URL original del resto de parámetros GET en go.php:

$url = $_GET[''url'']; unset($_GET[''url'']); if ($_GET) { $url .= ''&'' . http_build_query($_GET); }

Estoy trabajando en un sitio web de wordpress que tiene miles de páginas y el propietario ha ingresado un enlace de afiliado para cada página a través de un campo personalizado llamado: afflink

El enlace de afiliado se publica en la página usando:

<?php echo get_post_meta(get_the_ID(), ''afflink'', true) ?>

El usuario hace clic en el enlace que lo envía a una página llamada go.php

El enlace se ve así:

www.mysite.com/go/go.php?url=http://www.somesite.com/redirector.aspx?aid=334&cid=2502&tid=3

Dentro de la página go.php está la siguiente etiqueta meta refresh:

<meta http-equiv="refresh" content="5;<?php echo $_GET[''url'']?>

"/>

Sin embargo, cuando la página se actualiza, nos envía a solo:

http://www.somesite.com/redirector.aspx?aid=334

¿Cómo puedo arreglar esto?


Estás haciendo un uso indebido de las URL.

Su URL se analiza de esta manera:

  • Ruta: go/go.php
  • ?
  • Primer argumento de cadena de consulta: url=http://www.somesite.com/redirector.aspx?aid=334
  • &
  • Segundo argumento de la cadena de consulta: cid=2502
  • &
  • Tercer argumento de cadena de consulta: tid=3

En su lugar, debe codificar el URL-parameter de la URL interna.