kölir: URL als Link, ohne dass w3c etwas beanstandet

Hi,

Ich habe bei meinem GB z.B. Besuchern die Möglichkeit gegeben mit einer Art BBCode einen Link einzufügen:
text :a:URL:/a/:LINKTEXT:/a: text

nun wird beim ausgeben zuerst
htmlspecialchars() angewandt und danach
preg_replace("/(?::a:)(.+?)(?::/a/:)(.+?)(?::/a:)/","<a href="$1">$2</a>",$eintrag);

Nun ja soweit so gut.

Aber da man als Webmaster ja stets bemüht ist, seine Seiten w3c-Konform zu halten, ist das leider nicht ganz unproblematisch bei falschen Benutzereingaben, oder Zeichen in der URL die speziell codiert werden müssten.

Und dann wäre noch die Sache mit http:// manche User tippen bestimmt nur "www.domainxyz.xyz" ein, also müsste ich prüfen, ob http:// eingegeben wurde und es gegebenenfalls ergänzen, aber was passiert dann mit Links wie ftp:// https:// mailto: usw??

Wie macht ihr das so?
Jemand ne brauchbare Idee, um meine Seiten vllt trotz eventueller Falscheingaben der Besucher w3c-Konform zu halten?

Danke schonmal

P.S.:Natürlich könnte ich die URL immer noch mit einem regulären Ausdruck prüfen, aber da wär man erstens wieder bei dem leidigen Thema mit diesen regulären Audrücken und zweitens würden & in einer koreekten URL trotzdem zu Beanstandungen führen im <a href="...

  1. Moin!

    P.S.:Natürlich könnte ich die URL immer noch mit einem regulären Ausdruck prüfen, aber da wär man erstens wieder bei dem leidigen Thema mit diesen regulären Audrücken und zweitens würden & in einer koreekten URL trotzdem zu Beanstandungen führen im <a href="...

    Du willst eine einfache Lösung, es gibt aber keine einfache Lösung. Das Thema ist deswegen komplex, weil die Eingabedaten auf viele Arten von dem gewünschten einfachen Standardmuster abweichen können. Also mußt du komplexe Methoden anwenden, um korrekte Ausgaben sicherzustellen.

    - Sven Rautenberg

    --
    "Love your nation - respect the others."
  2. Hallo Forum,

    Jemand ne brauchbare Idee, um meine Seiten vllt trotz eventueller Falscheingaben der Besucher w3c-Konform zu halten?

    Das Thema hatten wir gerade erst.

    P.S.:Natürlich könnte ich die URL immer noch mit einem regulären Ausdruck prüfen, aber da wär man erstens wieder bei dem leidigen Thema mit diesen regulären Audrücken und zweitens würden & in einer koreekten URL trotzdem zu Beanstandungen führen im <a href="...

    Einfach Daten passend für das Übertragungsmedium maskieren, in diesem Fall mit htmlspecialchars.

    Gruß
    Alexander Brock