Video Tutorial - PHP Registrierung | Loginsystem

Hallo,

ich leite ja nur weiter wenn keine Session vorhanden ist. Ich möchte auch nicht, das der Seitenname im header eingegeben werden kann.

Ich muß doch immer html Tags arbeiten für die ordentliche Darstellung im Browser!?
Bzw. ich müßte dann wieder für eine Seite mit mehreren php Seiten arbeiten und require_once, oder?


Gruß
 
Zuletzt bearbeitet:
Hi,
wenn keine Session da ist, kannst du ja einfach auf eine andere Seite weiterleiten, die Seite kann dann natürlich auch auf einer ganz anderen Datei basieren wie die von der du weiterleitest. Kann dir leider nicht ganz folgen.

Gruß
 
Hi,
in dem Video sagst du das du in der login_logic.php auf jede beliebige Seite weiterleiten kann. Das habe ich gemacht (erster Post). Damit habe ich doch den eigentlichen Login Vorgang beendet und bewege mich in einem geschützten Bereich. Wenn in diesem Bereich mehrere Seiten geschützt sind wie überprüfe ich ob ich eingeloggt bin und ich möchte vermeiden, das jemand über URL Eingabe auf die Seiten kommt. Wie sieht auf dieser/diesen Seite die Überprüfung aus ob die Session vorhanden ist?
Grüß
 
Hi,
Wie überprüfe ich ob ich eingeloggt bin und ich möchte vermeiden, das jemand über URL Eingabe auf die Seiten kommt. Wie sieht auf dieser/diesen Seite die Überprüfung aus ob die Session vorhanden ist?
Grüß

Na das wird doch auch alles gezeigt, PHP Login Tutorial erstes Video ab ca. 10 Minuten, da wird eine check_login() Funktion erstellt. Mithilfe dieser check_login() Funktion wird eben geprüft, ob der Besucher eingeloggt ist oder nicht.

PHP:
if(check_login() == false) {
   // MACHE DIES WENN BENUTZER NICHT EINGELOGGT IST
   // Zum Beispiel weiterleiten
   header('Location: http://deineDomain.de/notLoggedIn');
   exit;
}
// Alles hier drunter wird ausgeführt, wenn der Benutzer eingeloggt ist
 
Genau das habe ich gemacht! Schau dir mal bitte meinen ersten Post auf der zweiten Seite ganz unten an.
Gruß

Hey,
na ganz genau so hast du es nicht gemacht, du verwendest zum Beispiel Refresh um weiterzuleiten und ein exit um das Skript zu killen verwendest du auch nicht. Außerdem musst du eine Session starten (session_start(); ganz am Anfang der Datei), bevor das Ganze funktioniert natürlich (weiß jetzt nicht ob das in einer Datei geschieht die du einbindest).

Mit dem exit wird definitiv das was darunter kommt nicht mehr ausgeführt und angezeigt.
 
Hallo,

ich habe da noch mal eine Frage bzw. Problem. Ich habe es mal online gestellt. Das Anmelden hat wunderbar funktioniert allerdings klappt das Login nicht. Nachdem ich den Benutzernamen und Kennwort eingebe bekomme ich diese Fehlermeldung.
Wär super wenn Du aushelfen kannst :D

Danke und Gruß

PHP:
Fatal error: Call to a member function bind_param() on a non-object in /mnt/web7/42/64/52244564/htdocs/meinname/functions.php on line 16
Hier der Code von functions.php
PHP:
1 <?php
 2 function login($username, $password, $db, $salt){
 3     $password = hash('sha256', $password.$salt);
 4     
 5     $sql = '
 6         SELECT
 7                 COUNT(*)
 8         FROM
 9                 USER
10         WHERE
11                 Username = ?
12         AND
13                 Password = ?
14                 ';
15     $stmt = $db->prepare($sql);
16     $stmt->bind_param('ss', $username, $password);
17     $stmt->execute();
18     $stmt->bind_result($result);
19     $stmt->fetch();
20     $stmt->close();
21     
22     if($result ==1) {
23         $_SESSION['logged_in'] = true;
24         $_SESSION['username'] = $username;
25         return true;
26     } else {
27         return false;
28     }
29 }
30     function check_login(){
31         if(isset($_SESSION['logged_in']) && $_SESSION['logged_in'] === true) {
32             return true;
33         }
34         return false;
35     }
36 
37 ?>
 
Hi,
sehe jetzt auf den ersten Blick eigentlich keinen Fehler. Du kannst mal schauen was für ein Datenbankfehler auftritt, indem du unter die Zeile 15 folgendes schreibst:

PHP:
echo $db->error;
 
Hi,
super, danke es hat funktioniert!
Kommte nicht auf die Datenbankt mit den Namen "dbName.USER" zugegriffen werden.
PHP:
 5     $sql = '
 6         SELECT
 7                 COUNT(*)
 8         FROM
 9                 USER
10         WHERE
11                 Username = ?
12         AND
13                 Password = ?
14                 ';
Nachdem ich USER in user geänder habe funktionierte es. Auf xxampp hat es nichts ausgemacht.

Allerdings bekomme ich nun diese Fehlermeldung. :(
Warning: Cannot modify header information - headers already sent by (output started at /mnt/web7/42/64/52244564/htdocs/name/config.php:8) in /mnt/web7/42/64/52244564/htdocs/name/login_logic.php on line 18

PHP:
<?php
if(isset($_POST['logout'])){
    unset($_SESSION);
    session_destroy();
    return;
}


if(!isset($_POST['submit']))    return;

if(!isset($_POST['username']) || !isset($_POST['password']) ||
    empty ($_POST['username']) || empty ($_POST['password'])) {
    $error_msg = "Das Formular ist nicht vollständig ausgefüllt.";
    return;
}

if(login($_POST['username'], $_POST['password'], $db, $salt)) {
    header('Location: login_markup_logged_in.php');               // Zeile 18 
} else {
    $error_msg = "Der Benutzername oder Passwort ist falsch.";
}

?>
 
Zurück