Manston: LoginSystem

hi

Ich bin auch dabei ein loginsystem zu machen mit "register.php", "login.php", "profile.php" und "logout.php" herzustellen aber was auch ohne erfolg bisher war. meine bezugsqullen war

http://tut.php-quake.net/de/login.html#s1

...Problem ist das zwar register usw angezeigt wird aber es ist ob ich was im testfeld rein schreib oder nicht. ich kann mich so oder so registrieren oder einlogen.

ich kopier mal mein "register.php" hier rein. ihr könnt auch mal unter www.outlawz2011.de/register.php gucken

<?php  
$ret = array();  
$ret['filename'] = 'register.tpl';  
$ret['data'] = array();  
if ('POST' == $_SERVER['REQUEST_METHOD']) {  
     //formular verarbeiten  
}  
return $ret;  
?>  
  
  
  
<?php  
$ret = array();$ret['filename'] = 'register.tpl';  
$ret['data'] = array();  
if ('POST' == $_SERVER['REQUEST_METHOD']) {  
    if (!isset($_POST['Username'], $_POST['Password'], $_POST['Email'],  
               $_POST['Antwort'], $_POST['formaction'])) {  
        return INVALID_FORM;  
     }  
}  
return $ret;  
?>  
  
<?php  
error_reporting(E_ALL);  
ini_set('display_errors', 1);  
  
include 'constants.php';  
include 'functions.php';  
include 'classes.php';  
include 'variables.php';  
// [...]  
?>  
  
<?php  
define('INVALID_FORM', 'Benutzen sie nur Formulare von der Homepage.');  
?>  
  
<?php  
$ret = array();  
$ret['filename'] = 'register.tpl';  
$ret['data'] = array();  
if ('POST' == $_SERVER['REQUEST_METHOD']) {  
    if (!isset($_POST['Username'], $_POST['Password'], $_POST['Email'],  
               $_POST['Antwort'], $_POST['formaction'])) {  
        return INVALID_FORM;  
    }  
    if (!is_array($_POST['Password']) OR count($_POST['Password']) != 2) {  
        return INVALID_FORM;  
    }  
    if ($_POST['Password'][0] != $_POST['Password'][1]) {  
        return 'Bitte geben sie das gleiche Password ein.';  
    }  
}  
return $ret;  
?>  
  
<?php  
$ret = array();  
$ret['filename'] = 'register.tpl';  
$ret['data'] = array();  
if ('POST' == $_SERVER['REQUEST_METHOD']) {  
    if (!isset($_POST['Username'], $_POST['Password'], $_POST['Email'],  
               $_POST['Antwort'], $_POST['formaction'])) {  
         return INVALID_FORM;  
    }  
    if (!is_array($_POST['Password']) OR count($_POST['Password']) != 2) {  
        return INVALID_FORM;  
    }  
    if ($_POST['Password'][0] != $_POST['Password'][1]) {  
        return 'Bitte geben sie das gleiche Password ein.';  
    }  
    if (($Username = trim($_POST['Username'])) == '' OR  
            ($Password = trim($_POST['Password'][0])) == '' OR  
            ($Email = trim($_POST['Email'])) == '' OR  
            ($Antwort = trim($_POST['Antwort'])) == '') {  
         return EMPTY_FORM;  
    }  
}  
return $ret;  
?>  
  
<?php  
define('INVALID_FORM', 'Benutzen sie nur Formulare von der Homepage.');  
define('EMPTY_FORM', 'Bitte füllen sie das Formular vollständig aus.');  
?>  
  
<?php  
$ret = array();  
$ret['filename'] = 'register.tpl';  
$ret['data'] = array();  
if ('POST' == $_SERVER['REQUEST_METHOD']) {  
     if (!isset($_POST['Username'], $_POST['Password'], $_POST['Email'],  
                $_POST['Antwort'], $_POST['formaction'])) {  
         return INVALID_FORM;  
     }  
     if (!is_array($_POST['Password']) OR count($_POST['Password']) != 2) {  
         return INVALID_FORM;  
     }  
     if ($_POST['Password'][0] != $_POST['Password'][1]) {  
         return 'Bitte geben sie das gleiche Password ein.';  
     }  
     if (($Username = trim($_POST['Username'])) == '' OR  
            ($Password = trim($_POST['Password'][0])) == '' OR  
            ($Email = trim($_POST['Email'])) == '' OR  
            ($Antwort = trim($_POST['Antwort'])) == '') {  
          return EMPTY_FORM;  
     }  
      if ('' != $Antwort) { // entsprechend anpassen  
          return 'Bitte geben sie die richtige Antwort an.';  
  
     }  
}  
return $ret;  
?>  
  
<?php  
$ret = array();  
$ret['filename'] = 'register.tpl';  
$ret['data'] = array();  
if ('POST' == $_SERVER['REQUEST_METHOD']) {  
    if (!isset($_POST['Username'], $_POST['Password'], $_POST['Email'],  
               $_POST['Antwort'], $_POST['formaction'])) {  
        return INVALID_FORM;  
    }  
    if (!is_array($_POST['Password']) OR count($_POST['Password']) != 2) {  
        return INVALID_FORM;  
    }  
    if ($_POST['Password'][0] != $_POST['Password'][1]) {  
        return 'Bitte geben sie das gleiche Password ein.';  
    }  
    if (($Username = trim($_POST['Username'])) == '' OR  
            ($Password = trim($_POST['Password'][0])) == '' OR  
            ($Email = trim($_POST['Email'])) == '' OR  
            ($Antwort = trim($_POST['Antwort'])) == '') {  
        return EMPTY_FORM;  
    }  
    if ('' != $Antwort) { // entsprechend anpassen  
        return 'Bitte geben sie die richtige Antwort an.';  
    }  
    if (!preg_match('~\A\S{3,30}\z~', $Username)) {  
        return 'Der Benutzername darf nur aus 3 bis 30 Zeichen bestehen und '.  
               'keine Leerzeichen enthalten.';  
    }  
}  
return $ret;  
?>  
  
  
<?php  
error_reporting(E_ALL);  
ini_set('display_errors', 1);  
  
include 'constants.php';  
include 'functions.php';  
include 'classes.php';  
include 'variables.php';  
  
$db = @new MySQLi(dbms.strato.de, U833858, PASSWORD, DB833858);  
$ret = 1; // speichert den rückgabewert von include, standardwert 1  
if (mysqli_connect_errno()) {  
    $ret = 'Konnte keine Verbindung zu Datenbank aufbauen, MySQL meldete: '.mysqli_connect_error();  
} else {  
    // Laden der Include-Datei  
    // [...]  
}  
// Laden des HTML-Kopfs  
// [...]  
?>  
  
 <?php  
    // [...]  
    if (!preg_match('~\A\S{3,30}\z~', $Username)) {  
        return 'Der Benutzername darf nur aus 3 bis 30 Zeichen bestehen und '.  
               'keine Leerzeichen enthalten.';  
    }  
    $sql = 'SELECT  
                ID  
            FROM  
               User  
            WHERE  
                Username = ?  
            LIMIT  
                1';  
    $stmt = $db->prepare($sql);  
    if (!$stmt) {  
        return $db->error;  
    }  
    $stmt->bind_param('s', $Username);  
    $stmt->execute();  
    $stmt->store_result();  
    if ($stmt->num_rows) {  
         return 'Der Username wird bereits verwendet.';  
    }  
    $stmt->close();  
    // [...]  
?>  
  
<?php  
    // [...]  
    if ($stmt->num_rows) {  
        return 'Der Username wird bereits verwendet.';  
    }  
    $stmt->close();  
    $sql = 'INSERT INTO  
                User(Username, Email)  
            VALUES  
               (?, ?)';  
    $stmt = $db->prepare($sql);  
    if (!$stmt) {  
        return $db->error;  
    }  
    $stmt->bind_param('ss', $Username, $Email);  
    if (!$stmt->execute()) {  
        return $stmt->error;  
    }  
    // [...]  
?>  
  
<?php  
    // [...]  
    if (!$stmt->execute()) {  
        return $stmt->error;  
    }  
    $UserID = $stmt->insert_id;  
     $sql = 'UPDATE  
                 User  
             SET  
                 Password = ?  
             WHERE  
                 ID = ?';  
    $stmt = $db->prepare($sql);  
    if (!$stmt) {  
        return $db->error;  
    }  
    $Hash = md5(md5($UserID).$Password);  
    $stmt->bind_param('si', $Hash, $UserID);  
    if (!$stmt->execute()) {  
        return $stmt->error;  
    }  
    // [...]  
?>  
  
<?php  
    // [...]  
    if (!$stmt->execute()) {  
        return $stmt->error;  
    }  
    return showInfo('Der Benutzer wurde hinzugefügt. Sie können sich nun anmelden.');  
    // [...]  
?>  
  
<?php  
/* Daten  
 * - msg: Die Nachricht die angezeigt werden soll.  
 */  
?><p class="info">  
     <?php echo htmlspecialchars($data['msg']); ?>  
</p>  
  
  
<?php  
/**  
 * Erzeugt ein Array für das Infomessage-Template.  
 *  
 * Diese Funktion erzeugt eine Array für unsere Templateengine die dann  
 * die Infomessage-Template-Datei "info.tpl" läd. Der Parameter gibt  
 * dabei die Nachricht an die angezeigt werden soll.  
 * @param msg Die Nachricht die angezeigt werden soll.  
 * @return Das Array für unsere Templateengine.  
 */function showInfo($msg) {  
      $ret = array();  
      $ret['filename'] = 'info.tpl';  
      $ret['data'] = array();  
      $ret['data']['msg'] = $msg;  
      return $ret;  
}  
?>  
  
<?php  
if (getUserID($db)) {  
    return 'Sie sind eingeloggt und können sich nicht registieren.';  
}  
$ret = array();  
$ret['filename'] = 'register.tpl';  
$ret['data'] = array();  
// [...]  
?>  
  
<?php  
if (getUserID($db)) {  
    return 'Sie sind eingeloggt und können sich nicht registieren.';  
}  
$ret = array();  
$ret['filename'] = 'register.tpl';  
$ret['data'] = array();  
// [...]  
?>  

  1. Hallo,

    Ich bin auch dabei ein loginsystem zu machen mit "register.php", "login.php", "profile.php" und "logout.php" herzustellen aber was auch ohne erfolg bisher war. meine bezugsqullen war

    http://tut.php-quake.net/de/login.html#s1

    ...Problem ist das zwar register usw angezeigt wird aber es ist ob ich was im testfeld rein schreib oder nicht. ich kann mich so oder so registrieren oder einlogen.

    »»
    Du solltest - auch im Hinblick auf dein anderes Posting - wirklich daran arbeiten, brauchbare Problembeschreibungen zu liefern.

    Du musst beschreiben, was genau passieren soll.
    Dann beschreibst du was du machst.
    Und dann kommt die Beschreibung des Ergebnisses.
    Dort zeigst du dann, wie das von deinem Gewollten abweicht.

    Um zu zeigen, dass du auch dem SELF-Gedanken treu bist solltest du dann auch noch selbst Mutmaßungen zu deinem Problem anstellen. Denke also hier im Forum laut: "Es passiert dasss und das. Die Fehlermeldung ist 'bla'. Das könnte sein, dass ich das und das falsch gemacht habe. Das und das habe ich schon probiert..."

    ich kopier mal mein "register.php" hier rein. ihr könnt auch mal unter www.outlawz2011.de/register.php gucken

    Ich weiß, dass es Leute gibt, die sich hier auch so viel Code anschauen. Aber erwarte das bitte von keinem. Beschreib das Problem lieber wie oben angedeutet und kopiere dann hier die fehlerhaften Stellen rein.

    Mal ganz generell:
    Tutorials sind ja schön und gut, aber du musst genau verstehen was passiert und passieren soll. Ich empfehl dir daher vielleicht einfach selbst ein Login-System unter Anlehnung an das Tutorial (oder ein anderes, habe es nicht gelesen) zu entwickeln.

  2. Hello,

    Ich bin auch dabei ein loginsystem zu machen mit "register.php", "login.php", "profile.php" und "logout.php" herzustellen aber was auch ohne erfolg bisher war. meine bezugsqullen war

    Es ist ungeheuer schwer, Dir zu helfen. Du schreibst in Sätzen ohne Punkt und Komma an den entscheidenen Stellen und setzt uns nicht ausreichend ins Bild.

    Was sind die Aufgaben der Dateien

    • register.php
    • login.php
    • profile.php

    und wie arbeiten sie zusammen?

    Du postest uns hier eine lose Sammlung von PHP-Codes. Wie hängen denn die zusammen?
    Womit startet der Request? Das HTML-Formular dafür fehlt, oder habe ich es nur übersehen in der Sammlung?

    Du benötigst also einen Ablaufplan, aus dem hervorgeht, welcher Codeteil wann ausgeführt werden soll. Außerdem muss aus dem Ablaufplan das Wechselspiel von Client und Server hervorgehen. Anders kann man mit Deinen Angaben nichts anfangen.

    Liebe Grüße aus dem schönen Oberharz

    Tom vom Berg

    --
     ☻_
    /▌
    / \ Nur selber lernen macht schlau
    http://bergpost.annerschbarrich.de
    1. Hello,

      Ich bin auch dabei ein loginsystem zu machen mit "register.php", "login.php", "profile.php" und "logout.php" herzustellen aber was auch ohne erfolg bisher war. meine bezugsqullen war

      Es ist ungeheuer schwer, Dir zu helfen. Du schreibst in Sätzen ohne Punkt und Komma an den entscheidenen Stellen und setzt uns nicht ausreichend ins Bild.

      Was sind die Aufgaben der Dateien

      • register.php
      • login.php
      • profile.php

      und wie arbeiten sie zusammen?

      Du postest uns hier eine lose Sammlung von PHP-Codes. Wie hängen denn die zusammen?
      Womit startet der Request? Das HTML-Formular dafür fehlt, oder habe ich es nur übersehen in der Sammlung?

      Du benötigst also einen Ablaufplan, aus dem hervorgeht, welcher Codeteil wann ausgeführt werden soll. Außerdem muss aus dem Ablaufplan das Wechselspiel von Client und Server hervorgehen. Anders kann man mit Deinen Angaben nichts anfangen.

      Liebe Grüße aus dem schönen Oberharz

      Tom vom Berg

      ICh kann dazu auch nicht mehr schreiben weil ich nicht wirklich viel weiß von php. ich hab jetzt zb ne komplett neue rigister.php datei von woanders her.weil ich das selber nicht schreiben kann muss ich es von anderen seiten holen die php soweit es geht erklären