Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Sessionfrage [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
brauche Webseite ideal für Vereine und Firmen
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Sessionfrage


 
Flashfactor
19-11-2002, 19:25 
 
Also wenn ich eine Sessionstarte im File1 und viel Fiel2 aufrufe mittels "HTML-Link" übergibt PHP die Sessionid über die URL ala GET.

Möchte nehmlich nicht das die Sessionid in der url ist.

Mir ist nur eingefallen eine möglichkeit mittels Cookie. Das ich die Sessionid ins Cookie schreibe.

Meine Frage wäre ob es noch eine andere Möglcihkeit gibt die SessionVar. weiter zugeben.

 
MoRtAlAn
19-11-2002, 19:27 
 
session kann per Cookie, GET und POST übergeben werden, andere möglichkeiten hast du nicht!! Unterstützt der User keine Cookies, hast du das erste Prob, dann mußt du sie wieder an alle Links anhängen und hast sie wieder in der URL stehen...

Wieso soll die session nicht in der URL stehen ??

gruss

 
Flashfactor
19-11-2002, 19:29 
 
Das mit Post ist mir noch umbekannt , wie soll das gehen?

 
MoRtAlAn
19-11-2002, 19:44 
 
geht auch nur in formularen :D

gruss

 
TobiaZ
19-11-2002, 20:34 
 
Aber jeden Link mittels Hidden-Field aufzubauen ist wohl nicht die beste Möglichkeit.

Verstehe aber nicht, was daran so schlimm ist, die SID in die URL zu übernehmen. sms.de legt sogar für jede ID ne eigene Subdomain an. Natürlich nur Temporär und so, aber da stehts auch klar drinne.

 
Flashfactor
19-11-2002, 22:31 
 
Wenns so ist will ich gleich eine weitere Frage dazu stellen.

Was ist jetzt wenn ein anderer User diesen Link kopiert und in seine URL einfügt?

Kann er dann auf die Userdaten zugreifen? Falls die Session ID in in einer datenbank beim User gespeichert ist und Cookie deaktiviert ist?

 
MoRtAlAn
20-11-2002, 08:28 
 
das ist ein anderes Prob! Der eine User sieht ja nicht die SID eines anderen User, vorausgesetzt, du Programmierst das irgendwo ein!!

Hier im Forum ist ein regex, der die SID aus einem Beitrag entfernt! Wäre das nicht der fall, könntest du mit meinem geposteten Link als "ich" hier rumsurfen.

gruss

 
Flashfactor
20-11-2002, 17:25 
 
Ich möchte so etwas auch bewerkställigen. Was müsste ich dazu machen?

Oder wo finde ich Informationen darüber?

 
TobiaZ
20-11-2002, 17:29 
 
Der Bereich zwischen "s=" und "&" muss entfernt werden.

Wobei ich nicht weiß, wie man es bewerkstelligt, wenn kein & dahinter steht.

 
MoRtAlAn
20-11-2002, 17:33 
 
bla.php?deineSessionBezeichnug={32zeichen weiter}

gruss

 
TobiaZ
20-11-2002, 17:40 
 
http://php-resource.de/forum/showthread.php?s=&postid=75653#post75653

Sieht aus wie ne Kombi. Ich hab cookies aktivuert. Deswegen übergibt das Forum die SessionID nicht: ...post.php?s=&action... Wenn du jetzt 32 Zeichen weg nimmst, hast du ein Problem. Also kombi aus beidem...

 
Flashfactor
20-11-2002, 17:42 
 
Danke

Habs nun so gelöst:

In jedem Link steht nun:

z.B.:
<a href="index.php?s=">Link</a>

s... Sessionname

Damit funktioniert es super.

 
TobiaZ
20-11-2002, 17:43 
 
Klappts auch, wenn noch ne &action oder so danach kommt?

 
Flashfactor
20-11-2002, 18:21 
 
Ja

 
TobiaZ
20-11-2002, 19:05 
 
Hast also ne Kombi genommen? Kannste mal posten?

 
Flashfactor
20-11-2002, 19:18 
 
Kein Kombi verwendet, aber das "Ja" war einwenig voreilig. Lies dazu den Nachteiltext am ende.

einfacher test:

index.php

<?php
session_name("s");
session_start();
$_SESSION['name'] = "Flashfactor";
echo '<a href="test.php?a=1&s=">Link</a>';
?>


test.php

<?php
session_name("s");
session_start();
echo $_SESSION['name']."<br>";
echo $_GET['a'];
?>


Nachteil: das "s=" beim link muss immer am ende stehen.

 
TobiaZ
20-11-2002, 19:23 
 
Das meinte ich dann auch. Mit ner Kombi wäre das nicht nötig.

 
Flashfactor
20-11-2002, 19:39 
 
Dazu muss ich halt eine if-else bedienung einbauen.

if (Cookie existiert) {
//Sessionid wird aus Cookie ausgelesen
} else {
//Sessionid wird aus URL ausgelesen.
}

Aber wie soll ich die Ausgabe der Sessionid über url verhinden wenn.


<?php
session_name("s");
session_start();
echo "<a href="index.php"></a>";


In dem vorher genannten Bsp. wird ja automatisch die SessionID an die URL angehängt. Aber wie kann man das unterdrücken?

 
Abraxax
20-11-2002, 22:55 
 
php hängt die session.id doch erst an, wenn die cookiespeicherung beim user nicht aktiv ist.

da eigentlich viele user cookies verwenden, sollte das kein problem sein. und für die user, die keine cookies haben, kommst du ohnehin nicht drum, die session.id in der url zu haben.

ich muss aber auch dazu sagen, dass ich nicht verstehe, warum du die id nicht in der url haben willst.... :confused: da ist doch nix schlimmes bei....

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 15:04 Uhr.