PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Fehler beim ersten Aufruf der Seite wird durch SESSION ID erzeugt?



Alexander
29-07-2004, 15:00
Hallo,

wurde heute auf einen kleinen Fehler in einer meiner Seiten aufmerksam gemacht. Wenn man die Seite zum ersten mal aufruft erhält man ein Javascript Fehler. Ja ja, sicher was hat das mit PHP zu tun?

Nun der Fehler wird von PHP verursacht. Beim ersten aufruf der Seite wird an jedem Link auf der Seite folgendes mit angehängt: ?PHPSESSID=...

Das ist nicht gewollt. Leider leiden die Javascripte darunter, da zusätzlich noch "" mit hinzukommt. Somit funktioniert der Bilderticker nicht mehr. Bis ich darauf gekommen bin habe ich schon den kompletten Ticker auseinander genommen und 'beinahe' neu programmiert.

Das ist auch die einzige Seite wo dieser Fehler auftritt. Andere Seiten die auch mit PHP arbeiten auf dem selben Server haben nicht das Problem.

Kennt einer von euch diesen Fehler?

Gruß Alexander

Gaert
29-07-2004, 16:05
Hallo Alexander,

"It's not a bug! It's a feature!"

Das automatische anhängen der SID ist teil der PHP Session Implementierung.
Eigentlich sollte es URL's mit JavaScript in Ruhe lassen... poste bitte mal den Code Abschnitt wo die Session ID ergänzt wird.

Gruß,

Gaert

Alexander
29-07-2004, 16:17
Hi Gaert,

so sieht der Code dann aus, wenn man die Seite aufruft:



for (i=0;i<=slideurl.length-1;i++) {
picturecontent+="<td>"
if(slidelink[i]!="") { picturecontent+="<a href="\?PHPSESSID=7c5014a996caa51342e304b49cf202a7"""+slidelink[i]+"\"

target=\"pics\">" }
picturecontent+="<img src=\""+slideurl[i]+"\" border=0 height=120>"
if(slidelink[i]!="") { picturecontent+="</a>" }
picturecontent+="</td>"
}


Noch als Erklärung. Es handelt sich um einen Bilder Ticker der auf einer Internetseite verschiedene Bilder aus einer Datenbank ließt (mit PHP) und diese dann an ein Javascript übergibt, welches die Bilder dann darstellt.

Der Fehler liegt laut debugger an den """ die Du oben im Ausschnitt siehst. Das PHPSESSID wird in der kompletten Seite an jeden Link gnadenlos mit angehängt.

Das Javascript wird in einer eigenen Datei generiert welche in die Hauptseite Includet wird.

Hast Du eine Idee?

Gruß Alexander

Gaert
29-07-2004, 17:34
Versuch das Javascript folgendermaßen zu generieren...



...
{ picturecontent+='&lt;a href="' + slidelink[i] + '" target="pics"&gt;' }
...

Alexander
30-07-2004, 08:31
Ahh... (und es werde Licht) :D

allerdings geht folgendes noch nicht ganz:


{ picturecontent+='&lt;a href="' + slidelink[i] + '" target="pics"&gt;' }


habe dieses hier verwendet:


{ picturecontent+='<a href="' + slidelink[i] + '" target="pics">' }

Gaert
30-07-2004, 13:22
Alles klar... habe sicherheitshalber die Klammern noch kodiert - wusste nicht genau ob JavaScript das wieder auflöst.

Alexander
03-08-2004, 10:41
Hi,

habe da nochmal eine ganz andere Frage. Kann man mit Sessions arbeiten, ohne dass die PHPSESSID Variable an jeden Link mit angehängt wird? :confused:

Das wäre wichtig für die Suchmaschienenoptimierung, da z.B. Google dynamische Seiten auslässt. :rolleyes:

Wenn jetzt an jeden Link auf meiner Seite ein ?PHPSESSID=... mit angehängt wird, wird keine Seite von Google 'gescannt'. :(

Gruß Alexander

Gaert
03-08-2004, 12:49
Servus,



habe da nochmal eine ganz andere Frage. Kann man mit Sessions arbeiten, ohne dass die PHPSESSID Variable an jeden Link mit angehängt wird? :confused:

PHPSESSID wird in der Standardeinstellung nur angehängt, wenn dein Client keine cookies akzeptiert - du kannst das Verhalten aber auch über die php.ini abschalten (nicht zu empfehlen).



Das wäre wichtig für die Suchmaschienenoptimierung, da z.B. Google dynamische Seiten auslässt. :rolleyes:

:mad: Das ist ein Gerücht, was sich wacker hält - selbstverständlich indiziert Google dynamische Seiten ...

Alexander
03-08-2004, 12:55
Das ist ein Gerücht, was sich wacker hält - selbstverständlich indiziert Google dynamische Seiten ...

hmm... habe die info erst von einer Seite im internet, welche sich mit suchmaschienenoptimierung beschäftigt. hast du eventuell eine andere quelle für mich? diese quelle scheint nicht sehr 'genau','richtig' zu sein.

Gaert
03-08-2004, 14:01
Hallo,

Die einfachste Quelle:
Geh auf google und suche irgendwas... du wirst sehr viele dynamische URL's als Suchergebnisse finden.

Von woher hattest du denn die Info?