Script klappt bei Anbieter x, aber nicht bei Anbieter y?
Sven
- php
0 Wilhelm Turtschan0 Rouven0 afra
Hallo zusammen,
Ich entwerfe grade für einen Chatraum ein Adminsystem. Ich habe grade das Login und ein paar Grundfunktionen fertig, da ist mir nun folgendes aufgefallen:
Bei meinem bisherigen Webspace-Provider hat alles geklappt. Man wurde NUR eingeloggt, wenn Username und Password korrekt waren, sonst Fehlermeldung.
Nach meinem Wechsel zu 1&1 nun ist das anders: Ich werde IMMER eingeloggt, selbst bei einem Benutzernamen, den es gar nicht gibt. Mir fehlen dann zwar ein paar Funktionen, die ich nur habe, wenn ich mich korrekt als Admin anmelde, aber ich bin "drin", und das sollte nicht sein.
Es scheint aber mit meinem Script alles okay zu sein, denn: Bei einem weiteren Anbieter geht es wieder problemlos. Nur bei 1&1 tritt das Problem auf.
Nun meine Frage: Ist irgendetwas bekannt, was bei 1&1 nun anders ist, als bei vielen anderen Anbietern? Das Script ist nicht komplex, ich hab da einen Haufen Abfragen, Sessions, eine mySQL-Datenbank und das wars.
Ihr könnt ja mal selbst schauen:
So ist es richtig:http://www.kingchris.de/jms/base/front_login.php
Probiert mal euch einzuloggen, mit irgendeinem Username. Es klappt nicht, ihr bekommt eine Fehlermeldung.
Hier das gleiche bei 1&1: http://jms.jugendflirtchat.de
Bei jeder Username/Password-Kombination wird man eingeloggt!
Die Versionen sind beide komplett identisch. Die Datenbanken ebenfalls.
Ich weiß, es ist irgendwie Unsinn, euch zu fragen wo ihr keine Zeile des Codes kennt - aber vielleicht ist da ja ein generelles Problem bekannt oder jemand kann sich auf Anhieb denken, woran das liegt?
Wäre schön, wenn jemand helfen könnte!
Grüße
Sven
habe d'ehre Sven
Nach meinem Wechsel zu 1&1 nun ist das anders: Ich werde IMMER eingeloggt, selbst bei einem Benutzernamen, den es gar nicht gibt. Mir fehlen dann zwar ein paar Funktionen, die ich nur habe, wenn ich mich korrekt als Admin anmelde, aber ich bin "drin", und das sollte nicht sein.
Was passiert mit den POST-Variablen?
BTW:
1und1 hat prinzipiell register_globals ON, das musst Du mit einer php.ini in den Skriptverzeichnissen abschalten. Vielleicht liegt es daran.
man liest sich
Wilhelm
Hi,
Die Versionen sind beide komplett identisch. Die Datenbanken ebenfalls.
und wie sieht's mit den Einstellungen aus? ->phpinfo();
Ich weiß, es ist irgendwie Unsinn, euch zu fragen wo ihr keine Zeile des Codes kennt - aber vielleicht ist da ja ein generelles Problem bekannt oder jemand kann sich auf Anhieb denken, woran das liegt?
Eventuell(!) an schlampiger Programmierung? Werden da vielleicht Login-Variablen nur dann NICHT gesetzt, wenn z.B. eine Prüfung 0 Datensätze ergibt und irgendwo in der Kette tritt ein Fehler auf? Schalte am Besten mal error_reporting auf E_ALL, vielleicht fällt PHP noch was auf...
MfG
Rouven
Hallo Sven!
Wie die anderen hier auch schon geschrieben haben kann das sehr gut an Deinem Script liegen. Einen "Fehler" würde ich hier nicht bei 1und1 suchen. Ich habe dort seit Jahren meine Daten liegen und bin eigentlich recht zufrieden.
Das schon angesprochene "register_globals" auf on könnte tatsächlich ein Fehler sein. Du musst dafür aber in jedem Ordner in dem die Scripte ausgeführt werden sollen den Wert auf "off" setzen. Es gibt aber die Möglichkeit den Server dazu zu zwingen PHP5 zu verwenden, dieses hat standardgemäß register_globals "off". Dazu musst Du nur alle Dateien in *.php5 umbenennen.
Test also ob Du irgendwo im Script das überschreiben von Deinen Variablen cms_user und cms_pass zulässt. Ohne diese vorher zu initialisieren. EVentuell liegt da der Haken. Denn der Fehler kann ja nur wirklich in Deinem Script liegen, wenn selbst ein "anmelden" ohne irgendwelche Angaben - also mit Leerstrings - funktioniert. Zumindest solche fehlerhaften Angaben solltest Du abfangen
Schönen Gruß
Afra
Hallo Sven!
Wie die anderen hier auch schon geschrieben haben kann das sehr gut an Deinem Script liegen. Einen "Fehler" würde ich hier nicht bei 1und1 suchen. Ich habe dort seit Jahren meine Daten liegen und bin eigentlich recht zufrieden.
Fehler war vielleicht falsch ausgedrückt ;) Ich hätte es vielleicht "Eigenheit" nennen sollen... etwas worauf ich achten muss, wenn ich PHP-Scripts entwickle.
Ich werde zunächst mal versuchen, wie es sich mit den Endungen .php5 verhält, andernfalls die Ratschläge hier beherzigen und mir mein Script nochmal vornehmen.
Danke :-)
Grüße
Sven
habe d'ehre Sven
Fehler war vielleicht falsch ausgedrückt ;) Ich hätte es vielleicht "Eigenheit" nennen sollen... etwas worauf ich achten muss, wenn ich PHP-Scripts entwickle.
Also ich wuerde diese niedliche "Eigenheit" schon als ausgewachsenen Fehler bezeichnen, wenn man sich mit jeder x-beliebigen Anmeldung einloggen kann. Fuer was dann ueberhaupt ein Login?
Ich finde es schon schade, dass Du die relevanten Routinen nicht praesentiert hast.
man liest sich
Wilhelm