archilles scriptworld Forum

» Startseite
  » Überblick
      » Das Forum-Archiv
          · Talkboard/Cookies und IIS Webserver

Seite: 1

Talkboard/Cookies und IIS Webserver Tabischer
Hallo,

hat sich wegen dem Cookie Problem bereits was getan?

Der Nutzer Fumpi scheint ja auch das Problem zu haben.
Wenn ich da richtig mitdenke müßte ja ein Befehl abgesetzt werden dass er eben einen setzt. Dieser Befehl müßte ja dann in der Login.php stehen. Wie lautet dieser Befehl und wohin schreibt er den Cookie?

Gruß und Danke

Re: Talkboard/Cookies und IIS Webserver Archilles
Der Befehl, der in PHP ein Cookie setzen soll, heisst setcookie(). Gespeichert werden diese kleinen Textbröckchen in dem Verzeichnis, welches im Browser dafür definiert wurde. Falls nicht, hilft die Suche nach dem Verzeichnis \"Cookies\" weiter oder eine Datei, die so heißt (wie z.B beim Linux-Opera).

Prinzipiell müssen sich Browser und Webserver bei diesen Informationen verstehen. Ein einfaches Testcookie läßt sich so setzen:

<?php
setcookie(\"Testcookie\",\"Hallo\",time()+3600);
?>

Entfernen läßt es sich so:

<?php
setcookie(\"Testcookie\",\"\",time()-3600);
?>

time() holt den aktuellen Unix-Timestamp (Sekunden seit dem 01.01.1970). Dieses Cookie ist dann für eine Stunde gültig, da zum aktuellen Timestamp eine Stunde (3600 Sekunden) addiert werden.

_______________
@Tabischer: Mein Cookiecode, den ich Dir per Mail mal geschickt habe, war leider nicht ganz korrekt. Dieser hier stimmt jetzt. Du kannst mich dafür :stein: :-D

Re: Talkboard/Cookies und IIS Webserver Tabischer
Dein Cookiesetting was Du mir vorher per Mail zugesandt hast ging aber einwandfrei.

Ich habe mir die Stelle mal angeschaut im script login.php

Sie sieht bei mir so aus.

srand((double)microtime()*1000000); // Okay, weiter im Text, wenn nicht genügend \"faillogins\"
$uin = strtoupper(md5(rand()));
setcookie($COOKIEuser,$db_user,time()+$COOKIElife,$COOKIEpath,$COOKIEdns,$IS_SSL);
setcookie($COOKIEpass,$db_pass,time()+$COOKIElife,$COOKIEpath,$COOKIEdns,$IS_SSL);
setcookie(\"TBF_SESS\",$uin,time()+$COOKIElife,$COOKIEpath,$COOKIEdns,$IS_SSL);
$SQL->putquery(\"UPDATE $TBLuser SET online = \'1\', logintime = NOW(), session = \'$uin\' WHERE name = \'$db_user\'\");
logging($form_user,\"LOGIN\");
checkfordeadsessions();
sleep(1);
header(\"Location: $FILEindex\");
}

Da er vermerkt, daß ich eingeloggt bin, daß sieht man über die Übersicht geh ich mal davon aus, daß er irgendwie den Cookie nicht setzt. Und am Server kann es nicht liegen, da er das beim Messageboard (auch von Dir) fein und brav macht.

Könnte in der Programmierung irgendwo ein Bugg liegen?

Wo kann ich mir ältere Versionen des Talkboards runterladen? Vielleicht ist sie dort anders. ??

Re: Talkboard/Cookies und IIS Webserver Archilles
Hmm, mir kommt da eine Idee. Probiere mal vor dem srand folgenden Test aus:

print $COOKIEuser . \" | $db_user<br>\";
print $COOKIEpass . \" | $db_pass<br>\";

Da der Name für die Cookies aus dem $PREFIX und einem Wert zusammengesetzt werden, lauten die per default tbuser und tbpass. Aber je nach Prefix können die anders lauten (das Prefix steht in der tb-config.php).

Vielleicht setzt er ja diese Namen nicht korrekt zusammen. Ein schwerer Fehler kann es aber nicht sein, da es auf meinen beiden Testservern und auch hier auf diesem Server läuft. Es kann höchstens etwas \"ungenau\" programmiert sein. Ich bin just dabei weiteren Servern habhaft zu werden ;-)

Einen korrekten Login mit Cookies erkennt man einwandfrei daran, daß das Menü den \"Login\" nach \"Logout (Benutzername)\" wechselt und \"Mein Profil\" erscheint. Bei allem anderen sind die Cookies nicht ordnungsgemäß gesetzt.

Ältere Versionen werden Dir da leider nicht helfen, da 1.0 bis 1.2 keine Cookies benutzt hatten und die 1.3 dieselbe Routine wie 1.4 verwendet. Ich kann Dir aber gerne trotzdem per Mail alle älteren Versionen zuschicken :-)

Re: Talkboard/Cookies und IIS Webserver Tabischer
:-?
Als ich Deine Zeilen eingebaut habe kommt folgende Fehlermeldung

tbuser | Admin
tbpass | 21232f297a57a5a743894a0e4a801fc3

Warning: Cannot add header information - headers already sent by (output started at C:\\Inetpub\\wwwroot\\Forum\\login.php:107) in C:\\Inetpub\\wwwroot\\Forum\\login.php on line 111

Warning: Cannot add header information - headers already sent by (output started at C:\\Inetpub\\wwwroot\\Forum\\login.php:107) in C:\\Inetpub\\wwwroot\\Forum\\login.php on line 112

Warning: Cannot add header information - headers already sent by (output started at C:\\Inetpub\\wwwroot\\Forum\\login.php:107) in C:\\Inetpub\\wwwroot\\Forum\\login.php on line 113

Warning: Cannot add header information - headers already sent by (output started at C:\\Inetpub\\wwwroot\\Forum\\login.php:107) in C:\\Inetpub\\wwwroot\\Forum\\login.php on line 118


Wat hat mir das zu sagen?

Re: Talkboard/Cookies und IIS Webserver Archilles
Exzellent. Dann sind schonmal alle nötigen Variablen vor dem Cookiesetzen vorhanden. Jetzt können es eigentlich fast nur noch die Parameter sein, die Schwierigkeiten machen.

btw: Der Fehler erscheint, weil Cookies nur gesetzt werden können, wenn vorher keine Ausgabe an den Browser geschehen ist oder ein anderer Header (wie beispielsweise ein Bild) angegeben wurde.

Jetzt wäre noch möglich die Cookies Schritt für Schritt zu \"kastrieren\". Die eingefügten print-Zeilen müssen wieder weg/auskommentiert werden. Danach wird ein Parameter nach dem nächsten bei den Cookies entfernt. Als erstes \"$IS_SSL\", dann \"$COOKIEdns\" und schließlich noch \"$COOKIEpath\". Bei \"$COOKIElife\" könnte man einfach mal manuell 3600 setzen. Klappt alles nicht, dann müssen die Cookies direkt gesetzt werden, statt per Variablen.

Quelltext:
============================================================
setcookie(\"tbuser\",$db_user,time()+3600);
setcookie(\"tbpass\",$db_pass,time()+3600);
setcookie(\"TBF_SESS\",$uin,time()+3600);


Vielleicht hilft dieser Lösungsansatz.... :-/

Re: Talkboard/Cookies und IIS Webserver Tabischer
Hm selbst mit dem automatisch gesetzten bringt er mir folgende Fehlermeldungen.

tbuser | Admin
tbpass | 21232f297a57a5a743894a0e4a801fc3

Warning: Cannot add header information - headers already sent by (output started at C:\\Inetpub\\wwwroot\\Forum\\login.php:107) in C:\\Inetpub\\wwwroot\\Forum\\login.php on line 111

Warning: Cannot add header information - headers already sent by (output started at C:\\Inetpub\\wwwroot\\Forum\\login.php:107) in C:\\Inetpub\\wwwroot\\Forum\\login.php on line 112

Warning: Cannot add header information - headers already sent by (output started at C:\\Inetpub\\wwwroot\\Forum\\login.php:107) in C:\\Inetpub\\wwwroot\\Forum\\login.php on line 113

Warning: Cannot add header information - headers already sent by (output started at C:\\Inetpub\\wwwroot\\Forum\\login.php:107) in C:\\Inetpub\\wwwroot\\Forum\\login.php on line 118


Und nu :-(
:cry:

Re: Talkboard/Cookies und IIS Webserver Tabischer
Und Kommando zurück. Man schütte :stein: über mich. Man :baller: mich. Man :kotzen: mich aus.

Tut mir furchtbar leid. Ich habe diesen Kackfehler gefunden. So nen Dreck. Ging aber nur mit den beiden Zeilen. Dieses blöde Temp Verzeichnis hat sich wieder schreibgeschützt und schon geht es nicht mehr. Toll.

Ich bin mir aber zu 100 % sicher es offen gelassen zu haben. Nun liegt es an Microsoft? Naja egal wie auch immer. Jetzt setzt er brav und treu die Cookies. Mann oh man

Re: Talkboard/Cookies und IIS Webserver Tabischer
Jetzt sehe ich alles und kann fast alles anklicken. Nur leider wenn ich auf mein Profil gehe sagt er mir keine Berechtigung ? :cry: :cry: :cry:

Warum dann jetzt schon wieder?

Re: Talkboard/Cookies und IIS Webserver Archilles
Wahrscheinlich müssen alle $HTTP_COOKIE_VARS[$COOKIEuser/pass] auch nach $HTTP_COOKIE_VARS[tbuser] oder $HTTP_COOKIE_VARS[tbpass] geändert werden. Falls das der ganze \"Fehler\" sein sollte, weiß ich ein hübsches Update für 1.41 ;-)

Wenn das tmp-Verzeichnis schreibgeschützt ist, funktioniert die Flood-Control (also nur ein Posting alle x Sekunden) nicht und der Counter. Sind die *.dat-Dateien nicht beschreibbar, läßt sich die Konfiguration (geschützte Usernamen/IP-Sperre und Ränge) nicht editieren.

Re: Talkboard/Cookies und IIS Webserver Tabischer
Ich habs auch grade gemerkt. Jetzt ist scheinbar der Cookie mal wieder nicht vorhanden. Ich verzweifel noch.

Ich logge mich ein und er zeigt auch an daß einer eingeloggt ist. Allerdings sind eben die Sachen nicht freigeschaltet. Also alles wieder wie vorher.

:help:

Re: Talkboard/Cookies und IIS Webserver Archilles
Also, ich hatte heute einen weiteren Fall mit diesem Cookieproblem - allerdings auf einem Apacheserver.

Als Lösung habe ich die tb-config.php editiert:

Quelltext:
============================================================
$COOKIEpath = \"/\";
$COOKIEdns = \"www.diedomain.de\";
oder
$COOKIEdns = \"\";


Die Installationsroutine setzt die Cookies sehr spezifisch, manchmal zu sehr für einige Serversysteme :-D

Seite: 1

Copyright (c) by "archilles scriptworld Forum", 2009. All rights reserved.
This archive has no free license, but any copyright laws applicable by your local country.