aitee: Login Script

Hi all,

ich bin jetzt seid etwas mehr als zwei Wochen dabei ein Login Script zu schreiben (zugegebenermaßen mit Frustpausen dazwischen) und es will mir nicht recht gelingen.

Meine Struktur fängt so an:

» wenn form gesendet, prüfe ob felder ausgefüllt wurden (isses($_POST['..'])
» wenn felder gefüllt und name und passwort sind in der kombination in der db vorhanden, dann ...

und jetzt komme ich ins wanken. Ich denke ich muss das mit Sessions kombinieren. Dafür habe ich in Anlehnung an ein Buch folgende Funktionen erstellt:

session_module_name ("...");
session_set_save_handler ('open', 'close', 'read', 'write', 'destroy', 'gc');
session_name (...');

Ich denke nun, dass ich den Usernamen oder vielleicht ne Variable wie: "$login = true" mit write in die variablen liste der session tabelle schreiben könnte ...

... oder so ...

kann mir wer ein paar tips geben? Mit Session_register möchte ich ungern arbeiten, in dem Buch stand drinne, dass dies unter umständen nicht so sicher ist.

wer mich versteht möge sich melden ;)

  1. zu Deiner ersten Überprüfung: wenn das Formular gesendet wurde, dann sind auch die entsprechenden POST-Variablen gesetzt, ob nun mit einem Leerstring oder nicht, die Funktion isset() liefert auf jeden Fall TRUE zurück.

    Vom Prinzip her würde ich es schon mit Session machen. Wenn der Login erfolgreich war, wird einfach die ID des Users in einer Session-Variable gespeichert.

    <?php

    session_start();
    if ($_POST['submit'] == 'Login' && ! isset ($_SESSION['userid'])) {
      $query = MYSQL_QUERY ("SELECT id,pass FROM user WHERE name = '".$_POST['loginname']."'",$db_connect);
      if ($row = MYSQL_FETCH_OBJECT ($query)) {
        if ($row->pass == $_POST['loginpass']) {
          echo 'Login erfolgreich!';
          $_SESSION['userid'] == $row->id;
        }
        else {
          echo 'Falsches Passwort';
        }
      }
      else {
        echo 'Username existiert nicht!';
      }

    }

    ?>

    Hinzu kommen natürlich noch die Datenbankverbindung. Außerdem musst Du noch die Query auf Deine Tabelle anpassen. Aber das Prinzip müsste so funktionieren.

    1. funzt leider nicth so ganz ... ich kriege immer den folgenden Fehler:

      Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in c:.......php on line 23

      Diese Zeile enthält:

      if ($row = mysql_fetch_object ($query_usr_data))

      Kann mir da jemand nen Tip geben? Weil solche Fehler hab ich des öfteren ... und bisher noch nicht rausgefunden, warum eigentlich ...

      1. Dieser Fehler ist ein Indiz dafür, dass entweder die Verbindung zur DB oder die Query fehlerhaft ist. Überprüfe bitte nochmal, ob die Verbindung besteht und ob Tabellen- und Spaltenbezeichnung in der Query denen in der DB entsprechen.

        1. Hehe ... vielen Dank, das wars ... ich Dummerchen ;)

          greetzle aus Hamburg ... t