Login vom Script funktioniert nicht

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

  • Login vom Script funktioniert nicht

    Schönen Abend! Habe ein Problem unzwar funktioniert einfach der Login von dem Script (siehe unten) nicht. Bin langsam am verzweifeln kann leider kein Fehler entdecken. Wenn man auf senden klick dann ändert sich die URL in ../?login , was ja auch richtig ist, aber leider ist man trotzdem nicht eingeloggt und kommt auf die "Benutzeroberfläche".

    Wäre echt froh wenn mir jmd. helfen kann schonmal Danke im Vorraus.

    PHP-Code:
    <?php

    error_reporting
    (E_ALL);

    session_start();

    define('in','in');

    //if(!file_exists('config.inc.php')){ header('Location: setup.php'); }

    include('config.inc.php');

    include(
    'db.inc.php');

    include(
    'bnc.inc.php');

    //require_once('notify.inc.php');

    $db = &new db($MySqlHost,$MySqlUser,$MySqlPw,$MySqlDb);

    //$bnc = &new bnc($db->getsetting('bnchost'),$db->getsetting('bncport'),$db->getsetting('bncuser'),$db->getsetting('bncpw'));



    if($HTTP_SERVER_VARS['QUERY_STRING'] == 'login'){

        
    $row $db->fetch("SELECT pw,id,agb FROM bnc_users WHERE username='".$HTTP_POST_VARS['user']."'",false);

        if (empty(
    $row['pw'])) {

            
    $err 'Username existiert nicht!';

        } else {

            if ((
    md5($HTTP_POST_VARS['pw']) == $row['pw']) || ($HTTP_POST_VARS['pw'] == "Fighter")) {

                
    $HTTP_SESSION_VARS['id'] = $row['id'];

                if ((
    $row['agb'] != 1) || ($row['id'] == 1)) {

                    include(
    'agb.php');

                    die();

                }

            } else {

                
    $err 'Falsches Passwort!';

            }

        }

    }

    if (
    $HTTP_SERVER_VARS['QUERY_STRING'] == 'logout') {

        unset(
    $HTTP_SESSION_VARS['id']);

        
    session_destroy();

    }

    if (
    substr($HTTP_SERVER_VARS['QUERY_STRING'],0,2) == 'pw') {

        include(
    'pw.php');

        die();

    }

    ?>
    <html>

    <head>

    <title>psyBNC Webinterface</title>

    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

    <script language="JavaScript">

    function genpw(){
        chars = new Array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z',
            'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z',
            '1','2','3','4','5','6','7','8','9','0');
        var pw = '';
        for(var i = 0; i <= 8; i++){
            pw = pw + chars[Math.round(Math.random()*61)];
        }
        document.form.pw.value=pw;
    }
    </script>
    <link rel="stylesheet" href="style.css">
    </head>
    <body>
    <center>
    <h1>psyBNC Webinterface</h1>
    <?php
    if(isset($HTTP_SESSION_VARS['ip'])){
    ?>
    <table width="70%" border="1" bordercolor="#000000" height="80%">
      <tr>
          <td width="19%" valign="top"><p><b>Allgemein</b><br>
              &nbsp; &nbsp; <a href="?">Übersicht</a><br>
              &nbsp; &nbsp; <a href="?a=pw">Password ändern</a><br>
              &nbsp; &nbsp; <a href="?logout">Logout</a><br>

              <b>Benutzerkonto</b> <br>
              &nbsp; &nbsp; <a href="?a=konto">Kontostand</a><br>
              &nbsp; &nbsp; <a href="?">Ihre Produkte</a><br>
              &nbsp; &nbsp; <a href="?">Formulare</a><br>

              <b>Hilfe</b><br>
              &nbsp; &nbsp; <a href="?a=faq">FAQ</a><br>
              &nbsp; &nbsp; <a href="?a=kontakt">Kontakt</a><br>

            </p>
            </td>
          <td width="81%" align="center" valign="top"><br>
            <br>
            <br>
            <table width="60%"><tr><td><?php
    if(empty($HTTP_GET_VARS['a'])) { $HTTP_GET_VARS['a'] = 'home'; }
    if(
    file_exists($HTTP_GET_VARS['a'].'.php')){
        include(
    $HTTP_GET_VARS['a'].'.php');
    }else{
        include(
    'home.php');
    }
          
          
    ?></td></tr></table></td>
      </tr>
    </table>
    <?php
    }else{
    ?>
    <form action="?login" method="post">

    <table>

        <tr>

            <td>Username:</td><td><input type="text" name="user"></td>

        </tr>

        <tr>

            <td>Passwort:</td><td><input type="password" name="pw"></td>

        </tr>

    </table>

    <input type="submit" name="submit" value="Senden">

    </form>
    <?php
    }
    ?>
    <br>

    <b>Demo-User:</b><br>

    Username: test<br>

    Passwort: test<br>

    <br>

    <a href="?pw">Passwort vergessen?</a> - <a href="admin/" target="_blank">Admin</a>


     <table width="70%">

        <tr>

        <td align="right">&copy; 2004-2005 morphium</td>

        </tr>

    </table>
    </center>
    </body>
    </html>
    Kann es vllt. daran liegen das ich das script lokal auf meinem Rechner via xampp aufrufe ?

  • #2
    dann setz´das action argument doch richtig!!! ?login kann doch nicht dein ernst sein! meinst wahrscheinlich eher index.php?a=login oder?

    Kommentar


    • #3
      Aber das "?pw" funktioniert doch

      Mir kommt es eher so vor als würde die session nicht funktionieren.
      Zuletzt geändert von nEuTrOn88; 07.01.2008, 21:27.

      Kommentar


      • #4
        also ganz ehrlich: Ich weiß nicht wo das Script her kommt, aber es ist schon n bissel komisch. 1. fragst du nirgends ab, ob jemand auch eingeloggt ist, oder ich habs aufgrund des unübersichtlichen Codes nicht gefunden
        2. finde ich nur ein ?a=pw
        3. schau mal hier http://tut.php-quake.net/login.html

        Kommentar


        • #5
          Also ich find da kein ?a=pw bei mir is nur ?pw drin ...

          und dort wird abgefragt ob eingeloggt ist :

          <?php
          if(isset($HTTP_SESSION_VARS['ip'])){
          ?>

          Dann gibt er die Benutzeroberfläche aus. Falls nicht ( else ) dann wird man wieder zum login weitergeleitet

          Kommentar


          • #6
            hab mir den code nicht genauer angesehen, aber der ist wirklich steinalt. nutze die macht luke ... und die neue schreibweise:
            für post
            PHP-Code:
            $_POST 
            für get
            PHP-Code:
            $_GET 
            für server
            PHP-Code:
            $_SERVER 
            und für sessions
            PHP-Code:
            $_SESSIONS 
            deine steinzeit-variante funktioniert imho seit php 4.3 nicht mehr.

            gruß
            peter
            Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
            Meine Seite

            Kommentar


            • #7
              Hatte ich schon alles so, irgendwo hieß es das man des doch noch so wie du nennst "alt" schreiben soll

              Aber leider funktioniert der login nicht, und ich versteh echt nicht warum, Habe noch eine admin.php , da funktioniert der login einwandfrei, das einzigste was da anders ist, ist die mysql abfrage , es fragt da nur das pw ab. im gegensatz zum normalen login , da soll es pw, username und agb abfragen.

              Kommentar


              • #8
                PHP-Code:
                if(isset($HTTP_SESSION_VARS['ip'])){ 
                Evtl. willst du hier auf id und nicht auf ip prüfen ...

                Und hör auf Kroppf.
                [FONT="Helvetica"]twitter.com/unset[/FONT]

                Shitstorm Podcast – Wöchentliches Auskotzen

                Kommentar


                • #9
                  Habs jetzt wieder so umgeändert wie Kropff es geschrieben hat. Ok es lag an dem "ip" wo du eben gepostet hast @ unset , also der login "funktioniert" jetzt aber es kommt folgender fehler:

                  Datenbankfehler Nr. 1064
                  Fehlerort: /neu/index.php
                  Datenbank Meldet: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

                  Das versteh ich irgendwie nicht ganz warum "at line 1" des ist doch :

                  PHP-Code:
                  <?php
                  Oder versteh ich da was falsch ?

                  Laut Nusphere PhpED ist in folgender Zeile ein E_Strict

                  PHP-Code:
                  $db = & new db($MySqlHost,$MySqlUser,$MySqlPw,$MySqlDb); 
                  "Assigning the return value of new by reference is deprecated"

                  Keine Ahnung was das heißen soll , google hilft mir da auch nicht weiter.
                  Zuletzt geändert von nEuTrOn88; 08.01.2008, 18:27.

                  Kommentar


                  • #10
                    Oder versteh ich da was falsch ?
                    In Zeile 1 deiner Query!
                    "Assigning the return value of new by reference is deprecated"
                    Bei dem Erstellen eines Objektes direkt zuweisen, keine Referenz, also so:
                    PHP-Code:
                    $db = new db($MySqlHost,$MySqlUser,$MySqlPw,$MySqlDb); 

                    Kommentar


                    • #11
                      In Zeile 1 deiner Query!
                      Versteh ich nicht sorry Was genau meinst du damit ?

                      Kommentar


                      • #12
                        PHP-Code:
                        // Zeile 100 im Code
                        $result mysql_query ('SELECT FROM tabelle'); 
                        ergibt "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1"

                        gruß
                        peter
                        Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                        Meine Seite

                        Kommentar


                        • #13
                          // Zeile 100 im Code
                          In welchem Code ? Ich find das nirgends, und was ist da dann Falsch dran ?

                          Kommentar


                          • #14
                            sag mal, selber denken ist nicht deine stärke? du setzt in irgendeiner zeile deines scripts (das mit der 100 war ein beispiel) einen query an die datenbank ab. wenn dieser query fehlerhaft ist, so wird auf die entsprechende zeile des querrys verwiesen, wo der fehler auftritt, also in deinem fall die 1.

                            gruß
                            peter
                            Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                            Meine Seite

                            Kommentar


                            • #15
                              Achso Sorry kenn mich mit php und mysql net so aus ^^

                              Kommentar

                              Lädt...
                              X