Seite schützen?

@Alex_T:

Denke ich nicht, schau mal hier, fehlt da eine geschweifte Klammer?
Beim else kann man sie auch weglassen.

@Chewbacca:

Das ist zumindest die einfachste Lösung. Man könnte aber auch die Session-ID per URL (GET) übergeben.
Aber nunja wer Cookies abgeschaltet hat, könnte auch nicht hier das Forum oder z.B. Hotmail und viele andere Websites benutzen.


@lissylucky:

Verändere mal die Funktion IsLoggedIn() folgendermaßen:
PHP:
function IsLoggedIn()
{
  if (isset($_SESSION["email"]))
  {
   /* Wenn Zeitspanne größer als 600 Sekunden (=10 Minuten), dann... */
   if (time()-$_SESSION["startTime"]>=300)
   {
      echo "Zeit abgelaufen (\$_SESSION[\"startTime\"]=".$_SESSION["startTime"]." | ==> Diff=".(time()-$_SESSION["startTime"]).")!";
      Logout();
      return false;
   }
   else
   {
     echo "Immernoch eingeloggt (\$_SESSION[\"startTime\"]=".$_SESSION["startTime"]." | ==> Diff=".(time()-$_SESSION["startTime"]).")"; 
     return true;
   }
  }
  echo "\$_SESSION[\"email\"] is not set!";
  return false;
}
(Obiger Code könnte Fehler enthalten ;))
 
Zuletzt bearbeitet:
Funktioniert leider immer noch nicht :(

PHP:
<?php 
/* Überarbeitete Funktion IsLoggedIn() */
function IsLoggedIn()
{
  if (isset($_SESSION["email"]))
  {
   /* Wenn Zeitspanne größer als 600 Sekunden (=10 Minuten), dann... */
   if (time()-$_SESSION["startTime"]>=300)
   {
      echo "Zeit abgelaufen (\$_SESSION[\"startTime\"]=".$_SESSION["startTime"]." | ==> Diff=".(time()-$_SESSION["startTime"]).")!";
      Logout();
      return false;
   }
   else
   {
     echo "Immernoch eingeloggt (\$_SESSION[\"startTime\"]=".$_SESSION["startTime"]." | ==> Diff=".(time()-$_SESSION["startTime"]).")"; 
     return true;
   }
  }
  echo "\$_SESSION[\"email\"] is not set!";
  return false;
}  
 
/* Neue Funktion Logout() */
function Logout()
{
  unset($_SESSION["email"]);
  unset($_SESSION["startTime"]);
  // evtl. weitere Dinge...
}  

if (!IsLoggedIn()) // Wenn nicht eingeloggt, dann...
{
  header("Location: index.php"); // Zum Login-Formular weiterleiten
  exit();
}
// Ansonsten anezeigen

?>
 
Zuletzt bearbeitet:
Hm also komischerweise habe ich herausgefunden, warum es nicht geht:
Der Captcha ist schuld.
Sitzt der falsch?


PHP:
<?php 
ob_start();
session_start(); 
?> 

<?php 
require_once('recaptchalib.php');
$privatekey = "6LdUocESAAAAAIXVtPPq2q4okxizdqlRQ1u0iMt5";
$resp = recaptcha_check_answer ($privatekey,
                            $_SERVER["REMOTE_ADDR"],
                            $_POST["recaptcha_challenge_field"],
                            $_POST["recaptcha_response_field"]);

$verbindung = mysql_connect("*****************", "**********" , "**************") 
or die("Verbindung zur Datenbank konnte nicht hergestellt werden"); 
mysql_select_db("*************") or die ("Datenbank konnte nicht ausgewählt werden"); 

$email = $_POST["email"]; 
$passwort = md5($_POST["passwort"]); 
 
$abfrage = "SELECT email, passwort FROM login WHERE email LIKE '$email' LIMIT 1"; 
$ergebnis = mysql_query($abfrage); 
$row = mysql_fetch_object($ergebnis); 
 
 
if($row->passwort == $passwort) 
{ 
  $_SESSION["email"] = $email; 
  $_SESSION["startTime"] = time();
  header("Location: redeem.php"); 
  exit();
}
else 
{ 
  echo "E-Mail und/oder Passwort waren falsch. <a href=\"index.html\">Login</a>"; 
} 
 
ob_end_flush()
?>
 
Zurück