Announcement

Collapse
No announcement yet.

Hilfe bei logout

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Hilfe bei logout

    Hallo,

    habe aus dem Internet nachfolgendes PHP Script.

    Alles funktioniert soweit einwandfrei bis auf das Logout.
    Das Update der Datenbank wird nicht durchgeführt.

    Kann mir vielleicht jemand bei der Problemlösung helfen.

    PHP Code:
    <?php


    /**
     * @return void
     */
    function connect () {
        
    $con mysql_connect('localhost''U''u') or exit(mysql_error());
        
    mysql_select_db('DB402217'$con) or exit(mysql_error());
    }


    /**
     * @param string $name
     * @param string $pass
     * @return boolean
     */
    function check_user $name$pass ) {
        
    // magic quotes anpassen
        
    if ( get_magic_quotes_gpc() ) {
            
    $name stripslashes($name);
            
    $pass stripslashes($pass);
        }
        
    // escapen von \x00, \n, \r, \, ', " und \x1a
        
    $name mysql_real_escape_string($name);
        
    // escapen von % und _
        
    $name str_replace('%''\%'$name);
        
    $name str_replace('_''\_'$name);

        
    $sql 'SELECT UserId FROM pilots WHERE pilot_id = \'' $name '\' AND password=\'' $pass '\'';
        if ( !
    $result mysql_query($sql) ) {
            exit(
    mysql_error());
        }
        if ( 
    mysql_num_rows($result) == ) {
            
    $user mysql_fetch_assoc($result);
            return ( 
    $user['UserId'] );
        } else {
            return ( 
    false );
        }
    }


    /**
     * @param int $userid
     * @return void
     */
    function login $userid ) {
        
    $sql 'UPDATE pilots SET UserSession = \'' session_id() . '\' WHERE UserId = ' . ((int)$userid);
        if ( !
    mysql_query($sql) ) {
            exit(
    mysql_error());
        }
    }


    /**
     * @return boolean
     */
    function logged_in () {
        
    $sql 'SELECT UserId FROM pilots WHERE UserSession = \'' session_id() . '\'';
        if ( !
    $result mysql_query($sql) ) {
            exit(
    mysql_error());
        }
        return (
    mysql_num_rows($result) == 1);
    }


    /**
     * @return void
     */
    function logout () {
        
    $sql 'UPDATE pilots SET UserSession = NULL WHERE UserSession = \'' session_id() . '\'';
        
    }

    connect();

    ?>
    danke für die Hilfe.

    Guten Rutsch ins neue Jahr.

    Reiner

  • #2
    Warum fragst du nicht da, wo du das Script her hast -> beim Autor
    Christian

    Comment


    • #3
      Warum fragst du nicht da, wo du das Script her hast -> beim Autor
      __________________
      Christian
      danke für die super Antwort.
      Es zeigt mir zum wiederholten Male das man dieses Forum vergessen kann.

      Ihr könnt mich als Mitglied streichen.

      Comment


      • #4
        Ich finde es eine berechtigte Frage zunächst an der Quelle nach dem Fehler zu forschen. Schließlich kann dieser ev. Probleme schneller erkennen und nachvollziehen.Aber wenn du das anders siehst....

        Es stellt sich die Frage, warum

        - dauernd Leute im Internet irgendein Script "finden"; offenbar Programme durch verschiedene Scripts neu zusammen setzen...
        - nicht in der Lage sind die simpelsten Fehlerprüfungen selbst durchzuführen (MySQL Fehlerbehandlung, Ausgabe von Werten auf der Konsole u.a.)
        - außer "geht nicht" keine konkrete Fehlerbeschreibung liefern können.
        - meist noch Probleme mit der Rechtschreibung haben ("Lehre Einträge","super Antwort")http://entwickler-forum.de/showthread.php?t=53280

        Irgendwie reicht die Kombination PC+Internet+Webspace wohl nicht aus, um programmieren zu können.


        Ihr könnt mich als Mitglied streichen.
        So wie ich das sehe hast du dich in herausragender Weise hier beteiligt um anderen zu helfen.Danke

        Es zeigt mir zum wiederholten Male das man dieses Forum vergessen kann.
        Ich sehe, dass dir oft geholfen wurde mit ziemlicher Ausdauer trotz deines Unverständnisses, was sich auch hier wieder ganz deutlich zeigte:

        $sql = 'UPDATE pilots SET UserSession = NULL WHERE UserSession = \'' . session_id() . '\'';

        Schick, dass du einen String mit einem SQL-Befehl zusammenbaust. Wann wird dieser SQL ausgeführt? Wo ist die entsprechende Anweisung zur Ausführung? Fehler beim Copy und Paste als das Script "gefunden" wurde? Das zeigt, dass du nicht mal die Mühe gemacht hast, das Script und die entsprechenden Zeilen überhaupt anzusehen und zu verstehen. Irgendwie unverständlich. Wärst du wie o.a. vorgegangen und hättest versucht die MySQL Errors auszulesen - die Basics bei der Programmentwicklung anzuwenden, wäre dir automatisch aufgefallen, dass da was fehlt. Die Folge also von Copy und Paste, wenn man nicht weiss was man tut.

        Es zeigt also zum wiederholten Male, dass du keine Eigeninitiative hast, keine Problemlösungsstrategien entwickeln kannst. Seit 2008 beschäftigst du dich mit PHP und hast dir offenbar wenig KnowHow aneigenen können. Jedenfalls ist das was du hier zeigst für 3 Jahre PHP-Entwicklung zu wenig
        Zuletzt editiert von Christian Marquardt; 01.01.2011, 07:40. Reason: Recthschreibung
        Christian

        Comment


        • #5
          Hallo,
          Originally posted by Ghost66 View Post
          danke für die super Antwort.
          Es zeigt mir zum wiederholten Male das man dieses Forum vergessen kann.
          Dies ist ein ENTWICKLER-FORUM und kein Fehlersuch-in-fremden-Scripten-Forum! Christians Frage und Ausführungen sind also absolut berechtigt. Es ist wohl eher so, dass man manche Fragesteller vergessen kann...

          Originally posted by Ghost66 View Post
          ...Ihr könnt mich als Mitglied streichen.
          Oh, wenn das eine Drohung ist, dann haben wir jetzt alle Angst vor dem Verlust...

          Tschau und viel Erfolg...

          Falk
          Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

          Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

          Comment

          Working...
          X