Alex: quakenet tutorial login/register

Tutorial Quakenet
Hallo,

hat jemand von euch zufällig das oben genannte tutorial gemacht?

Ich steh da grad mega auf dem Schlauch, bin eigentlich das komplette Tutorial (auch schon einige Seiten davor) durchgegangen und habe jeden Schritt mitgemacht. Ich habe xampp laufen.

Ich habe nun einen ordner mit verschiedenen templates, sowie einen Ordner für die includes. Wenn ich jetzt die index.php aufrufe kommen zwei Erros (welche nicht verwunderlich sind) - variables.php sowie classes.php not found. Nehme ich den include raus, bleibt bei aufruf die index.php leer.

Im ganzen Tutorial konnte ich nichts über die zwei o.g. Dateien finden. Kann mir da wer helfen?

Gruß
Alex

  1. 'ǝɯɐu$ ıɥ

    Tutorial Quakenet
    Hallo,

    hat jemand von euch zufällig das oben genannte tutorial gemacht?

    Ich steh da grad mega auf dem Schlauch, bin eigentlich das komplette Tutorial (auch schon einige Seiten davor) durchgegangen und habe jeden Schritt mitgemacht.

    So, so

    Ich habe nun einen ordner mit verschiedenen templates, sowie einen Ordner für die includes. Wenn ich jetzt die index.php aufrufe kommen zwei Erros (welche nicht verwunderlich sind) - variables.php sowie classes.php not found. Nehme ich den include raus, bleibt bei aufruf die index.php leer.

    Im ganzen Tutorial konnte ich nichts über die zwei o.g. Dateien finden. Kann mir da wer helfen?

    Falls du sie verwenden willst musst du sie anlegen (können auch erstmal leer sein), die variables.php stammt aus: http://tut.php-q.net/de/template.html, in die classes.php kommen deine Klassendefinitionen.

    ʍopɐɥs

    --
    HTML, was ist das? Ein neues Männermagazin? Css.., was es alles gibt!
    1. 'ǝɯɐu$ ıɥ

      Tutorial Quakenet
      Hallo,

      hat jemand von euch zufällig das oben genannte tutorial gemacht?

      Die findest du auch eher unter:
      irc://irc.quakenet.org im IRC Channel #php oder #php.de

      http://www.php-quake.net/

      ssnɹƃ
      ʍopɐɥs

      --
      HTML, was ist das? Ein neues Männermagazin? Css.., was es alles gibt!
      1. Tutorial Quakenet

        Die findest du auch eher unter:
        irc://irc.quakenet.org im IRC Channel #php oder #php.de

        Habe ich aufgesucht, nur dort ist man nicht wirklich hilfsbereit... Daher stelle ich mal den Code rein. Ich hab das Tutorial nur bis Ende Registration gemacht. Die Registration klappt auch soweit, die showInfo() wird leider nicht ausgegeben nach erfolgreicher Registration. Desweiteren gibt es das Problem, dass jeder registrierter User 2 Einträge in der DB bekommt.

        1 Alex    alex@yahoo.de
        2 Alex ac76416811c38622bb197d5e90e09966 alex@yahoo.de

        Ich denke, dass sollte auch nicht sein. Jetzt anbei mal der Code, vielleicht kennt sich jemand mit diesem Tut aus, oder hat genügend Zeit den Code durch zu gehen und mir zu helfen. Sorry und Danke schonmal im Voraus...

        index.php

        <?php  
        error_reporting(E_ALL);  
        ini_set('display_errors', 1);  
          
        include 'constants.php';  
        include 'functions.php'; // hier liegt die Funktion showInfo()  
          
          
          
        $db = @new MySQLi('X', 'x', 'x', 'x');  
        $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  
            include 'register.tpl';  
        	include 'register.php';  
        	include 'info.tpl';  
        }  
        // Laden des HTML-Kopfs  
        // [...]  
        ?>
        

        functions.php

          
        <?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;  
        }  
        ?>
        

        info.tpl

          
        <?php  
        /* Daten  
         * - msg: Die Nachricht die angezeigt werden soll.  
         */  
        ?><p class="info">  
            <?php echo htmlspecialchars($data['msg']); ?>  
        </p>
        

        So letzte relavante, aber zugleich größte Datei....
        register.php

          
        <?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 ('123' != $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.';  
            }  
            $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();  
            $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;  
            }  
        	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;  
            }  
        	if (!$stmt->execute()) {  
                return $stmt->error;  
            }  
            return showInfo('Der Benutzer wurde hinzugefügt. Sie können sich nun anmelden.');  
        }  
        return $ret;  
        ?>  
        
        
        1. Kann bitte irgendwer helfen? sollte sich eigentlich um einen kleinen Fehler handeln.

          Gruß

          1. Folgendes wurde gelöst:

            • der include funktioniert
            • index.php wird angezeigt
            • registerieren funktioniert

            Weiterhin ein Problem:

            • Es werden keine messages ausgegeben
            • Wie leite ich nach erfolgreicher registration auf eine bestimmte Seite?