Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

Wie eine Session "sauber" starten ?

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
Neues Thema Antworten
Gagget
PostRank 2
PostRank 2
Beiträge: 30
Registriert: 02.08.2006, 03:57

Beitrag von Gagget » 16.01.2007, 16:04

Ich habe da ein kleines Problem. Ich wollte meine Systeme endlich mal umschreiben so das sie nicht nur mit session cookies funktionieren.

Dazu möchte ich use_trans_sid ( hängt die SESSID automatisch an urls) nutzen. Aber das möchte ich natürlich nur nutzen wenn keine Cookies möglich sind und für sumas soll natürlich gar keine session gestarte werden.

Wenn ich das etz einfach nur mit session_start() umsetzte funktioniert das nicht. Ohne Cookies und ohne trans_sid gehts es gar nicht, mit trans_sid macht er es auch wenn cookies an sind.

Nun denk ich mir bin ich nicht blöd und schreib schnell ne Funktion dafür.

Code: Alles auswählen

function startSession()
{	
	// Tip of the Day: Never start session's for Search Engines
	if( is_searchEngine() ) return;
	
	session_name('PHPSESSID');
	
	if( isset($_GET['PHPSESSID']) 
		&& !isset($_COOKIE['PHPSESSID']) )
		 ini_set( 'session.use_trans_sid' , true);
	else ini_set( 'session.use_trans_sid' , false);

	session_start();

	if( ! isset($_COOKIE['PHPSESSID']) 
		&& ! isset($_GET['PHPSESSID']))
		header('Location: '.$_SERVER['SCRIPT_NAME'].'?PHPSESSID='.session_id());
	if(   isset($_COOKIE['PHPSESSID']) 
		&&   isset($_GET['PHPSESSID']))
		header('Location: '.$_SERVER['SCRIPT_NAME']);
}
Voila, schon fertig. Funktioniert auch wunderbar.

Dann komm ich mal auf die Idee zu gucken wie das eigtl eine große Foren Software macht und krieg erstma et maul net mehr zu. Anscheinend brauch man da um das zu entscheiden keine Weiterleitung. Auch hängen nur an einem Teil der Urls diese Session IDs, nicht an allen. Klick man auf einen Link mit SESSID kommt man auf dem selben link ohne sessid wieder raus. Verwunderung, dann denk ich mir "na aber das kannste nich" und hab mal frech auf einen der links geklickt die keine SESSID dran hatten. Und was soll ich sagen ... es funktioniert ... er verliert die SESSID nicht. Cookies und Javascript waren definitiv aus, hätt ja sein könne die machen clientseitig was.

Meine Frage kommt jetzt.

Wie geht das ? Macht das vbSeo ? Wenn ja wie verdammt ?
Oder bin ich grad bissl daneben und seh den Wald vor lauter Bäumen nich ?

Anzeige von ABAKUS

von Anzeige von ABAKUS »


Hochwertiger Linkaufbau bei ABAKUS:
  • Google-konformer Linkaufbau
  • nachhaltiges Ranking
  • Linkbuilding Angebote zu fairen Preisen
  • internationale Backlinks
Wir bieten Beratung und Umsetzung.
Jetzt anfragen: 0511 / 300325-0

everflux
PostRank 8
PostRank 8
Beiträge: 939
Registriert: 01.05.2006, 17:15

Beitrag von everflux » 16.01.2007, 16:46

Was meinst Du mit er verliert die Session-ID nicht, wenn Cookies aus sind und die Session nicht per URL Parameter weitergereicht wird?
Das geht doch garnicht - dafür gibts doch gerade Cookies :)
https://everflux.de/ blogging about life, programming, seo and the net

Gagget
PostRank 2
PostRank 2
Beiträge: 30
Registriert: 02.08.2006, 03:57

Beitrag von Gagget » 16.01.2007, 17:00

Ja, genau davon spreche ich. Mir ist klar das das normalerweise nicht geht. daher auch die Verwunderung und die Frage ob ich eventuell durcheinander bin bzw grad was nicht bedenke.

Nochmal grob die Fakten:
- Javascript und Cookies ausgeschaltet
- In der Browserzeile ist nie eine Session zu erkennen oder angehängt.
- Nur manche links auf der seite haben eine session ID hinten dran
- Auch wenn man einen link klickt der keine session ID dran hat ist danach
(ich guck bei den links mit session id), die id genau die selbe wie vorher.
- Auch bei Reload bzw. GoTo behält er trotzdem die Session ID

Und die Frage ist: Wie ? ...einfach nur Wie ? :crazyeyes: