& - Zeichen in URL übergeben

Hallo,
ich habe ein kleines Problem: Ich habe eine Adressdatenbank mit Firmendaten und möchte nun einen Detaildatensatz über einen Link aufrufen dem ich den Firmennamen in der URL übergebe:

test.php?firma=Testfirma

soweit kein Problem. Mache Firmen heissen aber z.B. „Müller GmbH & Co KG“, d.h.

test.php?firma=Müller GmbH & Co KG

Nun stört bei dieser Übergabe das & ! Wenn ich einen str_replace auf „& amp ;“ mache, dann klappt es trotzdem nicht, weil er das Zeichen gleich für die Übergabe umwandelt.

Ich kann auch nicht über eine ID oder so suchen, sondern muss den Firmennamen nehmen…

Weiss jemand Rat?

Moin,
was hältst Du davon anstelle von str_replace „&“ auf z.B. „und“ zu verändern und dann im test.php das wieder zurück frühstückst - dabei fällt dann der „&“-Character wech und das Problem schiene mir gelöst.

Gruß
Christian

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

  1. htmlentities – Wandelt alle Sonderzeichen in entsprechende HTML-Codes um

  2. wenn Du in ein Formular ein & schreibst und das nicht mit POST sondern mit GET überträgst siehst Du, wie das „gemacht“ wird…
    Leerzeichen werden auch nicht mit Leerzeichen, sondern mit „+“ übergeben…

  3. htmlspecialchars sollte auch gehen.

Grüsse
Munich

Hallo

htmlentities(’&’) und htmlspecialchars(’&’) liefern beide &, richtig wäre aber %26 .
Am besten schreibst du $link=str_replace(’&’,’%26’,$link);

Hallo Marco,

… möchte nun einen Detaildatensatz über
einen Link aufrufen dem ich den Firmennamen in der URL
übergebe:

test.php?firma=Testfirma

soweit kein Problem. Mache Firmen heissen aber z.B. „Müller
GmbH & Co KG“, d.h.

test.php?firma=Müller GmbH & Co KG

Nun stört bei dieser Übergabe das & ! Wenn ich einen
str_replace auf „& amp ;“ mache, dann klappt es trotzdem
nicht, weil er das Zeichen gleich für die Übergabe umwandelt.

Am einfachsten ist es, die zu übergebenden Daten von php mittels
urlencode() oder rawurlencode() korrekt für die Verwendung in
der URL kodieren zu lassen.

http://de.php.net/manual/en/function.urlencode.php
http://de.php.net/manual/en/function.rawurlencode.php

Gruss
Thomas

Vielen Dank für die vielen Tipps. Der hier mit %26 tut prima. Danke…

Hallo

htmlentities(’&’) und htmlspecialchars(’&’) liefern beide
&, richtig wäre aber %26 .
Am besten schreibst du $link=str_replace(’&’,’%26’,$link);