<a href="i.php?vari=123&vary=blabla">
ist falsch. Siehe http://www.htmlhelp.com/tools/validator/problems.html#amp.
ich versteh nicht ganz... sieht man doch aber immer so, warum soll das denn auf einmal falsch sein...
Wenn tausend Leute aus dem Fenster springen, springst Du dann auch? ;)
ich hab den link schon gelesen, kann mir aber nicht erklären warum...
Sven hat das zwar schon richtig erklärt, aber trotzdem nochmal ganz kurz:
In HTML-Quellcode werden Sonderzeichen per & eingeleitet, zum Beispiel ö für ö, ß für ß, > für > und & für &. Da hinter jedem & also eine Sonderzeichenangabe folgt, kann das & niemals alleine im Quellcode stehen.
Diese Regel gilt im der _gesamten_ HTML-Bereich, also auch beim href-Attribut für <a>.
Selbstverständlich macht der Browser aber auch dort genau das, was er an anderen Stellen mit diesen &-Dingern ("Entities") auch macht: Er ersetzt sie automatisch durch das richtige Zeichen. Hast Du also
<a href="i.php?vari=123&vary=blabla">
im Quellcode stehen, macht der Browser ganz brav daraus die Adresse "i.php?vari=123&vary=blabla" für die Adressleiste.
Daß es auch anders funktioniert, liegt einfach daran, daß die Browser in diesem Punkt sehr fehlertolerant sind - eben weil's beinahe jeder falsch macht. Davon wird es aber nicht richtiger, ein Gewohnheitsrecht gibt es in HTML schließlich nicht :)
irgendwo hab ich auch die definition zu urlparametern gelesen...
der erste paramater wird von der url mit ? getrennt jeder weitere mit &... bitte um erkläreung...
Das ist nur zur Hälfte ganz korrekt. URL-Parameter werden mit dem Fragezeichen eingeleitet, das stimmt schon, aber was dahinter kommt, ist vollkommen egal. Davon unabhängig wird zur Trennung von einzelnen Parametern zwar gerne das Und (also &) benutzt, aber auch das ist nicht zwingend vorgeschrieben. Das W3C bittet beispielsweise angesichts obigem Dauerfehler darum, statt dem Und das Semikolon zu verwenden:
<a href="i.php?vari=123;vary=blabla">
Und das funktioniert auch wunderbar, man muß es nur seinem jeweiligen Skript bzw. dessen Interpreter beibringen; in PHP zum Beispiel mit der (leider in der Anleitung nicht aufgeführten) Einstellung arg_separator.input=";&".
Gruß,
soenk.e