Loginscript Fehlerhaft nach Webserverwechsel?

TMG

Mitglied
Hi Jungs,

ich hab da ein böses Problem. Und zwar habe ich den Webserver von Levanzo.com zu 1und1.de(.com?) gewechselt und nun funktioniert mein Loginscript nicht mehr.
Das ist ziemlich verwirrend, da ich an ihm nichts geändert habe. Ich weiß nicht genau ob es an der Session, an den Cookies oder an irgendwas anderem liegt. Ich bin völlig ratlos nach 3 Tagen rumprobieren. Nun komme ich zu euch und hoffe, ihr könnt mir helfen.

Hier das Script:

PHP:
function check_nutzer() {
 session_start();
 
 if (isset($_SESSION["versuch"]) && $_SESSION["versuch"]>5) {
    return false;
 }

 if (!isset($_SESSION["auth"]) && !isset($_POST["username"])) {
    return false;
 }

 if (isset($_POST["username"])) {
    if (!isset($_SESSION["versuch"])) {
     $_SESSION["versuch"]=1;
    } else {
     $_SESSION["versuch"]++;
    }

    if (!isset($_COOKIE[session_name()])) {
     return false;
    }
	

    
	$nutzer = $_POST["username"];
    $pwd  = $_POST["passwort"];
	

    if (strlen($nutzer)<3) {
     return false;    
    }
    
    if ($nutzer == 'lingua' and $pwd == 'mortis') {
	$pruef = 1;} else {$pruef = '';}
	if ($pruef != ''){
     $_SESSION["auth"]=$nutzer;
     return true;
    } else {
     return false;
    }
 }

login.php

PHP:
if ($_GET['logout'] == 1) {echo 'Du wurdest erfolgreich ausgeloggt<br>';}
				if (!check_nutzer()) {
				include ('login.php');
				if ($_GET['login'] != 1) {
				if (isset($_SESSION["versuch"]) && $_SESSION["versuch"] < 6) {
					echo "Login nicht erfolgreich!
					Es stehen Dir noch ".(6-$_SESSION["versuch"]) . " Versuche zur Verfügung!";
				} 	else if ($_SESSION["versuch"] == 6) {
						echo "Es stehen Dir keine weiteren Versuche zur Verfügung!";
					}
			}}
			
			if (check_nutzer()) { echo 'Du wurdest erfolgreich eingelogt.';}

Und hier das Formular dazu:

HTML:
<form name="form1" method="post" action="home.php?content=login&sub=<? echo $_GET['sub']; ?>_1">
  <table width="75%" border="0" cellspacing="0" cellpadding="5">
    <tr>
      <td>Benutzername:</td>
      <td>&nbsp;</td>
      <td><input type="text" name="username" id="username"></td>
    </tr>
    <tr>
      <td>Passwort:</td>
      <td>&nbsp;</td>
      <td><input type="password" name="passwort" id="passwort"></td>
    </tr>
    <tr>
      <td align="right"><input type="submit" name="submit" id="submit" value="Einloggen"></td>
      <td>&nbsp;</td>
      <td><input type="reset" name="reset" id="reset" value="Zurücksetzen"></td>
    </tr>
  </table>
</form>


Das Ganze könnt ihr dann ausprobieren unter:
http://www.linguamortis.de

Vielen Dank :)

TMG
 
Also ich war gerade auf deiner Seite und habe probiert mich mit irgendwelchen Daten einzulogen. Da gabs keine Fehler wäre vielleicht sinnvoll wenn du mal ein test user anlegst.

Oder schreibst mal genauer, wie der Fehler auftritt. Kommt ein fehler oder wirst du nur nicht eingeloggt?
 
Also erstens werde ich nicht eingelogt und zweitens scheint keine Session angelegt zu werden. Ob das so ist, weiß ich aber nicht.

Weiterhin funktioniert der Zähler für die Versuche nicht mehr.
Es gibt insgesamt 6 Versuche. Wenn der 6. fehl schlägt kann man sich nicht mehr einloggen und muss den Browser neu starten damit das funktioniert. Nunja... wenn man sich nun einlogt, dann geht der Zähler auf 4 und versucht man es nochmal geht er wieder auf 5 und bleibt da bei jedem weiteren Versuch. Kann es damit irgendwie zusammenhängen?

Ich bin verzweifelt.

Die Logindaten habe ich für eure Versuche mal auf:

user: 123
PW: 123

geändert.
 
Also das die Versuche zurück gesetzt werden scheint wirklich das Problem zu sein, das keine Session läuft mit
PHP:
print_r($_SESSION);
kannst du dir den Session-Inhalt ausgeben lassen.

Kannste ja mal oben in deine home.php
PHP:
error_reporting(E_ALL);
einfügen, dann sollten alle Fehler dort auftauchen, die während des Parsens auftreten.
 
Das hier sind die Fehlermeldungen wenn ich das loginscript aufrufe:

In der Reihenfolge tauchen sie auf:


Notice: Undefined index: logout in /homepages/25/d251457921/htdocs/content/login.php on line 1

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /homepages/25/d251457921/htdocs/home.php:10) in /homepages/25/d251457921/htdocs/config.php on line 51

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /homepages/25/d251457921/htdocs/home.php:10) in /homepages/25/d251457921/htdocs/config.php on line 51
Array ( )
Benutzername:
Passwort:


Notice: Undefined index: login in /homepages/25/d251457921/htdocs/content/login.php on line 4

Notice: Undefined index: versuch in /homepages/25/d251457921/htdocs/content/login.php on line 8

Notice: A session had already been started - ignoring session_start() in /homepages/25/d251457921/htdocs/config.php on line 51
Array ( )
 
Er bemängelt, das vor dem ersten session_start() schon eine Ausgabe gibt.
Ich starte die Session immer auf der Hauptseite (bei dir die home.php) ganz oben.
Dann kannste dir auch das session_start() in der config.php auf der Zeile 51 sparen.

PS: Er bemängelt außerdem mit der Fehlermeldung Undefined index, dass du $_GET['login'] und $_GET['logout'] abfragst, obwohl sie nicht gesetzt sind.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: TMG
Super, hat funktioniert, seitdem ich session_start() ganz nach oben gepackt habe..

Vielen Dank :)
 
Zurück