• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

Session Problem bei 1&1

John

Macoun
Registriert
08.06.09
Beiträge
119
Guten Tag,
und zwar habe ein Problem mit meinem Login-Script. Ich hatte zunächst ein ähnliches Script auf einem kostenlosen Server (funpic) getestet, dort hat soweit auch alles funktioniert.
Heute habe ich dann dasselbe auf einem 1&1 Server versucht, doch klaptt es nicht so wie ich möchte.

#1: Die Daten werden in ein Formular eingegeben und an die 2. Seite mittels "$_POST" weitergeschickt. (klappt)
#2: Die eingegebenen Daten werden mit den Daten in der Datenbank vergleicht (klappt)
#3: Sind die Daten gleich wird einen der Session ein username zugeordnet und man wird auf einen 3. Seite weitergeleitet (klappt)
#4: Hier liegt dann mein Problem. $_SESSION['user'] ist leer obwohl es im 3. Schritt zugeordnet wurde. Auf der 2. Seite kann ich $_SESSION['user'] auch ausgeben.

Hier der zugehörige Code:

Login.php
Code:
session_start();

include('config/config.php');

$user = $_POST['user'];
$password = $_POST['pass'];

$pass = md5($password);

$sql = "SELECT user, password FROM login WHERE user = '$user'";
$login = mysql_query($sql);	
$daten = mysql_fetch_array($login);

if ($daten == "") {
	echo "Login failed!";
	echo "<a href=''>Zurück zum Login</a>";
}
else if ($daten['password'] == $pass AND $daten['user'] == $user) {
	$_SESSION['user'] = $user; 
   	echo "Login war erfolgreich - <a href='home.php'>weiter</a>";
}
else {
	echo "Login failed!";
}

home.php (auszug)
Code:
session_start();

include('config/config.php');

$action = $_GET["action"];

// Session überprüfen

if (!isset($_SESSION['user'])) {
	echo "<div class='login' align='center'>";
	echo "Bitte erst einloggen<br>";
	echo "<a href=''>ZurŸck zum Login</a>";
	echo "</div>";
	exit;
}

Ich habe den gleichen Code noch einmal auf meinem Funpic-Server getestet und dort funktionierte es. Nun komme ich nicht weiter o_O

so far
John
 

naich

Pomme d'or
Registriert
22.11.08
Beiträge
3.082
Mal geschaut, ob die Session korrekt übernommen wird? Dh. ob der Session Cockie gesetzt ist, und oder der Link die SESSION ID enthält?

Ich hoffe aber, dass du den finalen Code dann noch von der Sicherheit her optimieren wirst. Denn das direkt mit POST übergebene $user hat so nix in einer SQL-Abfrage zu suchen (SQL-Injection-Gefahr!!).
 
  • Like
Reaktionen: John

John

Macoun
Registriert
08.06.09
Beiträge
119
Okay,
dann werd ich das erstmal ändern, solang ich bei meinem anderen Problem nicht weiter komme.
Danke für den Hinweis
 

John

Macoun
Registriert
08.06.09
Beiträge
119
Kann geschlossen werden. Problem gelöst, lag daran dass ich vor dem PHP-Teil noch ein HTML-Teil hatte. Den sollte ich nach Meinung von 1&1 weglassen. Gesagt, getan und es funktioniert o_O
 

naich

Pomme d'or
Registriert
22.11.08
Beiträge
3.082
Hehe, dann ist das kein Wunder.
session_start() muss vor jeglicher Ausgabe aufgerufen werden, sonst kann der Header nicht für das erzeugen des Cookies angepasst werden.