Manston: LoginSystem

Beitrag lesen

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();  
// [...]  
?>