Login / Session

FireForce

Grünschnabel
Hi,

ich habe ein Login/Session System geschrieben und jetzt habe ich folgendes Problem:

Auf die eigentlich geschuetzte startseite.php kann man voellig unbeschraenk zugreifen,
ohne sich zuvor eingeloggt zu haben.

Hier ein auszug von den betroffenen Dateien:

checkuser.php (das login formular uebergibt username+psswort an diese datei):
PHP:
<?php
session_start ();

$connID = mysql_connect ("...", "...", "...");
@mysql_select_db ("DB38400", $connID);

$sql = "SELECT * FROM Userdata WHERE (Username like '$username') AND (Password = '$password')";
$result = mysql_query ($sql, $connID);

if (mysql_num_rows ($result) > 0) {
  $datenrichtig = true;

  $user_eingeloggt = true; 
} else {
  $datenrichtig = false;

  $user_eingeloggt = false;
}

session_register ("user_eingeloggt");
?>
<html>
<head>
<?php if ($datenrichtig) { ?>
<meta http-equiv="Refresh" content="2; url=startseite.php?<?=session_name()?>=<?=session_id()?>">
<?php } ?>
</head>

<body>
<?php

if ($datenrichtig) { 
  echo "Vielen Dank für’s Einloggen. Sie werden weitergeleitet...";
} else {
  echo "Die Daten waren falsch.";
}

?>
</body>
</html>

startseite.php:
PHP:
<?php

session_start ();

if ((session_is_registered ("user_eingeloggt")) AND ($user_eingeloggt)) {
} else {
}

?>
<html>
<head>
</head>

<body>
Das ist die Startseite.
</body>
</html>

logout.php:
PHP:
<?php

session_start ();

$user_eingeloggt = false;
session_register ("user_eingeloggt");

?>
<html>
<head>
<meta http-equiv="Refresh" content="1; url=index_main.html">
</head>

<body>
Sie werden zur Startseite weitergeleitet…
</body>
</html>

Ich hoffe, ihr koennt mir dabei helfen.

CU Fire
 
Zuletzt bearbeitet:
Hm... wo ist da die Logik bei der if-Abfrage in der startseite.php? Weder im if- noch im else-Block wird was ausgegeben... vielleicht ist ja das der Fehler.

Noch was: bei der logout.php könnte man mit session_destroy() arbeiten. Tut man normalerweise auch. Versuch's mal.



reima
 
Erstmal Danke fuer die schnelle Antwort.

Aber was soll ich denn nun aendern.

Ich habe erst vor 2 Wochen mit PHP angefangen und daher noch nicht so viel Ahnung.
 
Also ich das mit der Startseite würde ich so umschreiben:

PHP:
<?php
session_start ();

if ((session_is_registered ("user_eingeloggt")) AND ($user_eingeloggt)) 
{
?>

<html>
<head>
</head>

<body>
Das ist die Startseite.
</body>
</html>

<?php
} 
else 
{
  die("Du bist nicht eingeloggt.");
}

?>
 
wieso fragst du eigentlich doppelt ab ob der user eingelooged ist? :) sieht das hier nicht einwenig besser aus?

PHP:
if ((session_is_registered("user_eingeloggt")) 
{

:-)
 
Na wenn er ohne session_destroy() arbeitet, macht das schon Sinn @loki2002
session_is_registered() prüft ja nur, ob eine bestimmte Sessionvariable existiert. $user_eingeloggt kann eine Sessionvariable sein, aber gleichzeitig auch den Wert false enthalten... alles klar? ;)

@FireForce:
Die startseite.php machst du so, wie es workaholic erklärt hat.
Bei der logout.php schreibst du im PHP-Tag nur
PHP:
session_destroy();
, der Rest fliegt raus.


reima
 
Hi,
bin zwar etwas spät dran, aber egal :)

Leider bin ich auch ein Anfänger was PHP angeht.

Meinst du, dass du mir dein script mal schicken kannst?

von der login bis zur logout :)

meine mailadresse ist webmaster@phelikx-online.de

Danke schonmal,... Felix
 
hast du eigentlich schon mal auf das Datum des Posts geschaut?

Das ist über 2 Jahre her! Warum kann man erledigte Threads nicht einfach schlafen lassen? :mad:

-> Tutorial zu diesem Thema

Kannst das ja lesen und selber machen

Gruß Mirko
 
Zurück