2017-07-07 4 views
1

Wir bekommen URLs mit & statt & von einem Kunden-System: somedomain.com?param1=test&param2=test2

I $_GET['param1'] und $_GET['param2'] erhalten erwarten. Stattdessen bekomme ich $_GET['amp;param1'] und $_GET['amp;param2']

Kann ich es als eine Rewrite-Regel in .htaccess oder in PHP beheben?

UPDATE:

Eine temporäre Lösung ist die unten zu tun, aber es scheint ungeschickt:

foreach ($_GET AS $key => $value) 
{ 
    $param = str_replace('amp;', '', $key); 
    $_GET[$param] = $value; 
    unset($_GET[$key]); 
} 
+2

'html_entity_decode' –

+4

Sie können aufhören, Müll zu senden? –

+0

Wir senden eine E-Mail mit dem richtigen Link zu ihnen. Ich vermute, dass ihr E-Mail-Client den Link durcheinander gebracht hat. In diesem Fall ist es unwahrscheinlich, dass der Client Änderungen an ihrem System vornimmt, so dass es nun zu meinem Problem geworden ist :-( – Cudos

Antwort

-1

Es scheint, Sie definieren "somedomain.com?param1=test & param2 = test2" in HTML. So konvertiert HTML & in & Referenz.

Versuchen Sie einfach & statt & wie folgt zu setzen: somedomain.com?param1=test&param2=test2

0

Zeichen konvertieren ? und & einigen Tokens wie:

?-__Q__ mit str_replace('?', '__Q__', $toUrl)

& zu __AND__ mit str_replace('&', '__AND__', $toUrl)

Und übergeben Sie diese Daten auf URL.

Während diese Daten von der URL abgerufen werden, dekodieren Sie diese zurück.

str_replace('__Q__', '?', $fromUrl)

str_replace('__AND__', '&', $fromUrl)

Obwohl seine heikel, es funktioniert.

+1

Ich schlug nicht vor, sagte ich, um den Client zu stoppen, zwielichtige Daten senden: P –

+1

Ok, entfernte Ihre Referenz :) – Pupil