Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Seh ich den Wald vor lauter Bäumen nicht?!

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] Seh ich den Wald vor lauter Bäumen nicht?!

    Hab folgendes Problem:

    Als Bildschirmausgabe bekomme ich immer:
    ! wagner! ! 048467ee32308aca76324c4a184f715f! Userabfrage nicht möglich.

    Mein Script:

    <?php session_start();
    if ($_GET['open']=="logout") {session_destroy();}


    if (!isset($_SESSION['log']) OR !isset($_GET['sid']) OR $_GET['sid']=="" OR $_GET['sid']!=session_id() OR $REMOTE_ADDR!=$_SESSION['ip']) {$_SESSION['log'] = "0";}


    $m = "1";


    if ($_GET['open']=="intern") {

    if ($_SESSION['log']=="0") {
    $host = "localhost";
    $user = str_replace('_', '\_', str_replace('%', '\%', stripslashes($_POST["user"])));
    echo " ! ".$user." ! ";
    $pass = md5($_POST['pass']);
    echo " ! ".$pass." ! ";
    $db = "fbd";
    $link = mysql_connect($host, "user", "euDPwCxY8C9PRJyB") or die ("Keine Verbindung zu der Datenbank möglich.");
    mysql_select_db($db, $link) or die ("Datenbank konnte nicht aufgerufen werden.");
    $queryuser = "SELECT uid FROM ulid WHERE user = '".$name."\ AND pass='".$pass."'";
    $check = mysql_query($queryuser, $link) or die ("Userabfrage nicht möglich.");
    echo " ! ".$check." ! ";

    if ($check==FALSE) {echo "user und passwort stimmen nicht überein";}

    else {

    $log = "1";
    $m = "2";
    $updateuser = "UPDATE ulid SET sid='".session_id()."',log='".$log."' WHERE ID='".((int)$queryuser)."'";
    $check = mysql_query($updateuser, $link);
    $_SESSION['ip'] = $REMOTE_ADDR;
    $_SESSION['user'] = $user;
    $_SESSION['sid'] = session_id();
    $_SESSION['log'] = $log;
    }
    }

    if ($_SESSION['log']=="1") {

    $queryuser = "SELECT uid FROM ulid WHERE user = '".$_SESSION['user']."\ AND sid='".$_SESSION['sid']."\ AND log='1'";
    $check = mysql_query($queryuser);

    if ($check==FALSE) {echo "Sie sind nicht mehr eingeloggt";}

    else {$m="2";}
    }
    }
    ?>

  • #2
    Ergänzung.

    Bildschirmausgabe stimmt mit Datenbankeinträgen überein.

    Wäre schön, wenn mir jemand helfen könnte.

    MfG, yuc2me.

    Kommentar


    • #3
      Hallo yuc2me,
      was sucht der Backslash heir:
      Code:
      "SELECT uid FROM ulid WHERE user = '".$name."\ AND pass='".$pass."'";
      ? So ist das keine gültige SQL-Abfrage.

      Was du davor mit deinem str_replace + stripslashes veranstaltest ist auch ein bißchen schleierhaft. $REMOTE_ADDR geht nur mit register_globals=ON was mittlerweile seit einigen Jahren standardmäßig auf OFF ist.

      Nächstesmal wäre es schön, wenn du die [ php]-Tags des Forums verwendest und etwas mehr dazu sagst, was du als Ausgabe erwartest. Also dein Problem ausführlicher schilderst...

      Kommentar


      • #4
        Danke schön.

        Danke, für die schnelle antwort.


        dachte die "\" müssen da hin.
        Bin erst seit kurzem Hobbybastler, was php angeht.

        zu den [php]-tags angeht: ich werd mich bessern!

        was str_replace + stripslashes angeht: ich hab gelesen, dass man das login gezielt stören kann, in dem man bestimmte Zeichenfolgen eingibt.
        Ist es ein kläglicher Versuch?! Gibt es bessere Möglichkeiten?

        Die Registerglobals könnte ich aber auf meinem eigenen Server anstellen?!

        Kommentar


        • #5
          Schade

          Übrigens, geht es ohne die "\" immernoch nicht...

          Kommentar


          • #6
            Zitat von yuc2me Beitrag anzeigen
            dachte die "\" müssen da hin.
            Nein, in deinem Fall nicht....
            Lass dir einfach mal $sql ausgeben, du wirst dann etwas á la:
            Code:
            SELECT uid FROM ulid WHERE user = 'username\ AND pass='2345jaslsaf25'
            sehen. du willst aber ein:
            Code:
            SELECT uid FROM ulid WHERE user = 'username' AND pass='2345jaslsaf25'
            was str_replace + stripslashes angeht: ich hab gelesen, dass man das login gezielt stören kann, in dem man bestimmte Zeichenfolgen eingibt.
            Ist es ein kläglicher Versuch?! Gibt es bessere Möglichkeiten?
            Ja, z.B. [man]mysql_real_escape_string[/man]

            Die Registerglobals könnte ich aber auf meinem eigenen Server anstellen?!
            Das könntest du schon, das solltest du aber nicht.
            Genauso wie du in deinem Script schon $_GET und $_SESSION verwendest gibt es auch $_SERVER, dort findest du dann auch ein $_SERVER['REMOTE_ADDR']...

            Kommentar


            • #7
              Super!!!

              Es funzt.

              Ich seh schon, ich bin so unwissen wie eine EinTagsFliege.

              Dank Dir!

              Kommentar

              Lädt...
              X