• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Warum klappt diese Abfrage nur manchmal?

Nick

Mitglied
Hallo :(

Warum funktioniert die Folgende Abfrage nur manchmal?
Sie soll wenn uneingeloggte Benutzer in den Mitgliederbereich kommen sie wieder auf die Startseite zurückleiten. Wenn man allerdings angemeldet ist soll man nicht zurück geleitet werden.

Allerdings wird man in ca 1/5 Fällen trotz Anmeldung weggeleitet :(

PHP:
 <?php
 if ( !isset($_SESSION['valid_user']))  {    sleep(1);    header('Location: http://www.martin.nickw.de/');  }    ?>


MfG
 
Umd Sessions leben nicht ewig und haben eine Ablaufzeit.
Die Lebenszeit kann man in der php.ini setzen.
 
@hambam ja ganz am Anfang des Scriptes steht noch ein
<?php
session_start();
?>
;)

Naja sie halten vielleicht nicht ewig, aber doch wohl länger als 0.5 sekunden oder?

Außerdem ist das Problem nicht immer so gewesen, aber seit neustem obwohl ich nix geändert habe :/
 
Von 0,5 Sek steht da oben aber nichts. und du solltest den Code schon so zeigen, wie er im Script steht, sonst suchen wir uns hier dusselig.

Irgendwo muss die Session gesetzt werden.

PHP:
<?PHP
session_start();
$_SESSION['valid_user'] = 1;

Und in deinem Script
PHP:
<?PHP
session_start();

if ( !isset($_SESSION['valid_user'] or ($_SESSION['valid_user'] != 1)))  
{    
   sleep(1);    
   header('Location: http://www.martin.nickw.de/');  #
}
 
Okey Schuldigung.

Das hier ist der Ausschnitt aus dem Login Script. Wenn Email = Email & Password = Pasword ist, ist die Session okey. Und die ID ist gleich der Email Adresse. Man wird dann in den Mitgliedsbereich weitergeleitet.
PHP:
$query = 'select * from authorized_users '           ."where email='$email' "           ." and password='$password' "           ." and okey = 1";

  $result = $db_conn->query($query);  
  if ($result->num_rows)  {    
  $_SESSION['valid_user'] = $email;  
  }  
  $db_conn->close();}
  if (isset($_SESSION['valid_user']))  
  {    
  sleep(1);   
  header ("Location: http://martin.nickw.de/after-login/index.php"); 
  }

Vom Mitgliedsbereich wird man dann wenn man nicht eingeloggt ist wieder zur Startseite geschmissen. Das passiert leider manchmal direkt nach dem Login sofort :(


Hier ist der Code der den Mitgliederbereich absichert.
PHP:
<?php  session_start();?>
<?php include "../site/header.php" ?>
<body> 
<?php
 if ( !isset($_SESSION['valid_user'])) 
 {    
 sleep(1);   
 header('Location: http://www.martin.nickw.de/');  
 }    
?>

Hab jetzt noch ein wenig Ausprobiert, nachdem es einmal geklappt hat, funktioniert es immer.
Und wenn man per URL zum Mitgliederbereich geht klappt es auch. (Wenn man eingeloggt ist)...

Also ist da scheinbar was mit der Weiterleitung faul, da er sie manchmal ausführt trotz das die if bedingung nicht erfüllt ist...
 
Zuletzt bearbeitet:
Zurück
Oben