Ergebnis 1 bis 10 von 10

Thema: Quakenet-Loginscript funktioniert nicht?!

  1. #1
    Youngster
    Registriert seit
    29.10.2009
    Beiträge
    14
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard Quakenet-Loginscript funktioniert nicht?!

    Hey,

    ersteinmal ein HALLO an Alle, bin neu hier

    ich probiere seit einigen Tagen das Loginscript von Quakenet aus aber irgendwie läuft da immer wieder was falsch und leider bin ich noch net gut genug in der Verständlichkeit von PHP um den Fehler selber zu finden.

    Immer wenn ich einen neuen Benutzer anlegen will passiert nichts außer dass ich wieder zur Startseite springe. Die Datenbank bleibt auch vollkommen unberührt.

    An der Datenbank liegts schonmal nicht, da bin ich mir sicher. Es muss wohl irgendwo im unteren Teil vom Script liegen, denke ich.
    Ich habe mehrmals alles genauso gemacht wie es da steht, also liegt der Fehler vllt bei Quakenet oder bin ich zu blöd?^^

    Das script ist hier http://tut.php-q.net/de/login.html zu finden.

    Vielleicht findet ja einer den Fehler bei Quakenet, wenn nicht dann poste ich mal mein Script um zu gucken ob ich nicht doch nen eigenen Fehler rein gehauen habe.
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!

  2. #2
    Bandit
    Gast

    Standard AW: Quakenet-Loginscript funktioniert nicht?!

    Ich empfehle:

    Richtig debuggen
    1. Man bemerkt, dass ein Skript nicht das tut, was es soll.
    2. Man schreibt an den Anfang des Scriptes die Zeile: error_reporting(E_ALL); und ini_set("display_errors", true);
    3. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
    4. An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde (oder auch nicht).
    5. Schritt 3 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
    6. Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
    7. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
    8. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.

  3. #3
    Youngster
    Themenstarter

    Registriert seit
    29.10.2009
    Beiträge
    14
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Quakenet-Loginscript funktioniert nicht?!

    Bei "error_reporting(E_ALL); und ini_set("display_errors", true);" passiert nichts, das ist es ja. Habe ich ja schon alles drin, ich finde einfach keinen Fehler im Script aber es funktioniert nicht

  4. #4
    Kaiser(in)
    Registriert seit
    29.03.2009
    Ort
    1011 1111 1011 WorldWideWeb
    Beiträge
    2.439
    Danke
    2
    Bekam 6 mal "Danke" in 6 Postings

    Standard AW: Quakenet-Loginscript funktioniert nicht?!

    Versuch doch mal das ganze selbst zu programmieren. Wenn du später größeres machen willst musst du das eh können. Hier ein bsp. für ein SEHR ausführliches login-script:
    PHP-Code:
    <?php
    $user
    =$_POST["user"];
    $pass=$_POST["pass"];
    $err=false;
    $db=new mysqli('localhost''benutzer''passwort''datenbank');
    if (!isset(
    $_POST["user"]) || !isset($_POST["pass"])) {
        
    header ("Location: index.php");
    }
    else {
        
    $sql="SELECT * FROM users WHERE username='".$user."'";
        if (
    $resultat=$db->query($sql)) {
            @
    $ergeb=$resultat->fetch_array();
            if (
    $ergeb["status"]=="unactivated" || $ergeb["status"]=="blocked") {
                if (
    $ergeb["status"]=="unactivated") {
                    
    header ("Location: index.php?page=nactiv");
                }
                else {
                    
    header ("Location: index.php?page=accblock");
                }
            }
            else {
                if (
    $ergeb["password"]==md5($pass)) {
                    if (
    $_POST["stay"]=="on") {
                        
    setcookie("ee11cbb19052e40b07aac0ca060c23ee"$usertime()+386750406);
                        
    setcookie("5f4dcc3b5aa765d61d8327deb882cf99"md5($pass), time()+386750406);
                        
    $sql="UPDATE users SET status='stay' WHERE username='".$user."'";
                    }
                    else {
                        
    setcookie("ee11cbb19052e40b07aac0ca060c23ee"$user);
                        
    setcookie("5f4dcc3b5aa765d61d8327deb882cf99"md5($pass));
                        
    $sql="UPDATE users SET status='online' WHERE username='".$user."'";
                    }
                    if (
    $db->query($sql)) {
                        if (
    $ergeb["status"]=="online" || $ergeb["status"]=="stay") {
                            
    header ("Location: index.php?page=alrlogged");
                        }
                        else {
                            if (
    $_POST["where"]=="logfail" || $_POST["where"]=="mysql" || $_POST["where"]=="password" || $_POST["where"]=="register" || $_POST["where"]=="alrlogged" || $_POST["where"]=="") {
                                
    header ("Location: index.php?page=home");
                            }
                            else {
                                
    header ("Location: index.php?page=".$_POST["where"]);
                            }
                        }
                    }
                    else {
                        
    header ("Location: index.php?page=mysqlerr");
                    }
                }
                else {
                    
    header ("Location: index.php?page=logfail");
                }
            }
        }
        else {
            
    header ("Location: index.php?page=mysqlerr");
        }
    }
    ?>
    und wenn du dich viel mit dem Quakenet Tutorial auseinandergesetzt hast, kannst du wie folgt vorgehen:
    -Welche daten brauche ich?
    ->Benutzername (übergeben)
    ->Passwort (übergeben)
    ->Passwort (aus der datenbank)
    -Wie gehe ich vor?
    ->Daten passen (WHERE) auslesen
    ->Passwörter vergleichen
    ->Wenn stimmend, cookies setzen

    Ich denke das ist zu schaffen, oder?
    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.
    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

  5. #5
    Youngster
    Themenstarter

    Registriert seit
    29.10.2009
    Beiträge
    14
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Quakenet-Loginscript funktioniert nicht?!

    Ja der Login ist schön und gut, aber beim Quakenet-Tut gehts auch ums registrieren, und mein Fehler ist wohl da irgendwo, halt wenn ich mich registrieren will.

    Ich verstehe ja, was da steht, aber ich find den Fehler nicht weil für mich alles logisch aussieht

  6. #6
    König(in) Avatar von crAzywuLf
    Registriert seit
    03.02.2009
    Beiträge
    1.175
    Danke
    1
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Quakenet-Loginscript funktioniert nicht?!

    Kannst du mal die Dateien packen und hier als Attachment anhängen, dann kann man sich das mal schnell ansehen, ich wollte jetzt nicht unbedingt das ganze Tutorial durchgehen.
    Gruß crAzywuLf

  7. #7
    Youngster
    Themenstarter

    Registriert seit
    29.10.2009
    Beiträge
    14
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Quakenet-Loginscript funktioniert nicht?!

    Also hier ist die register.php

    PHP-Code:
    <?php
    $a 
    = array();
    $a['filename'] = 'regform.tpl';
    $a['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 (!
    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;
        }
        
    $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;
        }
        return 
    showInfo('Der Benutzer wurde hinzugefügt. Sie können sich nun anmelden.');
    }



    return 
    $a;
    ?>
    Dazu die functions.php
    PHP-Code:
    <?php
    define
    ('INVALID_FORM''Benutzen sie nur Formulare von der Homepage.');
    define('EMPTY_FORM''Bitte füllen sie das Formular vollständig aus.');
    ?>
    Und die constants.php
    PHP-Code:
    <?php
    function showInfo($msg) {
        
    $a = array();
        
    $a['filename'] = 'info.tpl';
        
    $a['data'] = array();
        
    $a['data']['msg'] = $msg;
        return 
    $a;
    }
    ?>
    Und das Formular.
    HTML-Code:
    <form action="index.php?seite=reg" method="post">
         <legend>Registieren</legend>
         <fieldset><table>
            <tr><td>Username: </td><td><input type="text" name="Username" /></td></tr>
            <tr><td>Passwort: </td><td><input type="password" name="Password[]" /></td></tr>
            <tr><td>Bestätigung: </td><td><input type="password" name="Password[]" /></td></tr>
            <tr><td>E-Mail: </td><td><input type="text" name="Email" /></td></tr>
            <tr><td><input type="submit" name="formaction" value="Registieren" /></td><td></td></tr>
        </table></fieldset>
    </form>
    Wenn ich im Formular auch irgendetwas falsch schreibe oder die Passwörter unterschiedlich sind, wird auch kein Fehler angezeigt. Springt jedesmal nur zum index zurück, kA warum.

    hier ist die index.php, komplett.
    PHP-Code:
    <?php
    error_reporting
    (E_ALL);
    ini_set('display_errors',1);

    include 
    'variables.php';
    include 
    'constants.php';
    include 
    'functions.php';


    $db = @new MySQLi('host''benutzer''passwort''datenbank');
    $a 1// speichert den rückgabewert von include, standardwert 1
    if (mysqli_connect_errno()) {
        
    $a 'Konnte keine Verbindung zu Datenbank aufbauen, MySQL meldete: '.mysqli_connect_error();
    } else {
    /*
     * Die Include-Datei muss eine return Anweisung enthalten mit folgenden
     * Werten:
     * - Bei normaler Ausführung
     *   Array('filename' => string, -- Dateiname vom Template
     *         'data' => Array())    -- Array mit Daten für das Template
     * - Bei einem Fehler
     *   string  -- Die Fehlermeldung die angezeigt werden soll.
     */
     
     
     
    if (isset($_GET['content'], $seite[$_GET['content']])) {         //es wird geprüft ob "GET[...]" einen inhalt hat und ob die....
                                                                         //variable $content definiert ist!
         
    if (file_exists('includes/'.$seite[$_GET['content']])) {        //es wird geprüft ob angegebene seite von "GET?content=" existiert!
            
    $a = include 'includes/'.$seite[$_GET['content']];         //wenn ja wird diese an $a übergeben!
        
    } else {                                                        //wenn nicht dann....
            
    $a "'includes/".$seite[$_GET['content']]."' konnte nicht geladen werden!";    //Fehlermeldung!
        
    }                                                                //wenn $content nicht definiert ist oder "GET[...]"....
    } else {                                                            //keinen inhalt hat....
        
    $a = include 'includes/'.$seite['home'];                        //dann wird der Standardbereich geladen!
    }
    }
    // Laden des HTML-Kopfs
    include 'tpls/header.tpl';   // Doctype, <html>, <head>, <meta> kram
    //include 'templates/menu.tpl';          // falls man z.B. ein Menu haben möchte, in meinem fall ist das menu im header:)

     
    ?>
     <?php include 'includes/inhalt.php'?>
    <?php

    // HTML footer laden
    include 'tpls/footer.tpl';  // Zeug wie </body> und </html>
    ?>
    und die inhalt.php, das müsste alles wichtige sein denke ich
    PHP-Code:
    <?php
    if (is_array($a) and isset($a['filename'], $a['data']) and
            
    is_string($a['filename']) and
            
    is_array($a['data'])) {
        
    // Gültiger return-Wert
        
    if (file_exists($file 'tpls/'.$a['filename'])) {
            
    $data $a['data']; // speicher die Arraydaten in eine Variable $data
                                  // die dann im Template verwendet werden kann.
            
    include $file;
        } else {
            
    // Datei existiert nicht, eine Fehlermeldung anzeigen.
            
    $data = array();
            
    $data['msg'] = 'Templatedatei "'.$file.'" ist nicht vorhanden.';
            include 
    'tpls/error.tpl';
        }
    } else if (
    is_string($a)) {
        
    // include-Datei lieferte eine String zurück, welches eine Fehlermeldung sein soll
        
    $data = array();
        
    $data['msg'] = $a;
        include 
    'tpls/error.tpl';
    } else if (
    == $ret) {
        
    // return-Anweisung wurde vergessen
        
    $data = array();
        
    $data['msg'] = 'In der Include-Datei wurde die return Anweisung vergessen.';
        include 
    'tpls/error.tpl';
    } else {
        
    // überhaupt ein ungültiger return-Wert
        
    $data = array();
        
    $data['msg'] = 'Die Include-Datei hat einen ungültigen Wert zurückgeliefert.';
        include 
    'tpls/error.tpl';
    }
    return 
    $a// nicht Vergessen, sonst enthält $ret nur den Wert int(1)
    ?>
    Geändert von sms48 (30.10.2009 um 14:31 Uhr)

  8. #8
    König(in) Avatar von Grevas
    Registriert seit
    20.04.2009
    Ort
    In meiner Wohnung.
    Alter
    30
    Beiträge
    1.039
    Danke
    0
    Bekam 5 mal "Danke" in 5 Postings

    Standard AW: Quakenet-Loginscript funktioniert nicht?!

    Dann zeig doch mal die index.... oder zumindest den Teil, in dem dein include drin ist.

  9. #9
    Youngster
    Themenstarter

    Registriert seit
    29.10.2009
    Beiträge
    14
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Quakenet-Loginscript funktioniert nicht?!

    Habs editiert damit alles in einem Post steht
    die inhalt.php steht eigentlich in einer tabelle aber die habe ich mal entfernt damits nen bissel übersichtlicher ist. deswegen steht da jetzt "?><?php", nicht wundern

  10. #10
    Youngster
    Themenstarter

    Registriert seit
    29.10.2009
    Beiträge
    14
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Quakenet-Loginscript funktioniert nicht?!

    okay habe meinen fehler gefunden, ich idiot
    war irgendwo ne falsche variable, hier kann zu gemacht werden.

Ähnliche Themen

  1. Loginscript fehler
    Von Unregistriert im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 5
    Letzter Beitrag: 29.10.2009, 22:30
  2. Antworten: 6
    Letzter Beitrag: 12.09.2009, 21:02
  3. Probleme mit einem loginscript
    Von Justin35 im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 1
    Letzter Beitrag: 20.07.2008, 14:12
  4. Problem mit Loginscript
    Von Neuling im Forum HTML & CSS Forum
    Antworten: 1
    Letzter Beitrag: 14.06.2008, 23:49
  5. Fehler bei meinem Loginscript
    Von im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 8
    Letzter Beitrag: 28.02.2006, 19:03

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •