Loginscript funktioniert, allerdings nicht Offline!

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

  • Loginscript funktioniert, allerdings nicht Offline!

    Hallo erstmal,

    ich weiß ich stelle in Letzter Zeit viele fragen, die ich mir mit ein bischen mehr überlegen selbst beantworten könnte, nun ahbe ich aber schon 6 Stunden über folgendes Problem gegrübelt, und finde keine Logische Antwort!
    Ich benutze für den Login auf meiner Seite folgendes Formular, und folgenden Script:

    PHP-Code:
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
    <
    form action="./index.php?content=login/login1" method="post">
    <
    table width="440" border="0">
      <
    tr>
        <
    td width="36%" height="18"><font size="-1" color="#000000"><strong>Benutzername:</strong></font></td>
        <
    td width="64%">&nbsp;</td>
        </
    tr>
        <
    tr>
        <
    td width="36%"><input type="text" size="18" maxlength="50"
    name="usernamen"></td>
    <
    td align="center">&nbsp;</td>
        </
    tr>
       <
    td width="36%"><font size="-1" color="#000000"><strong>Passwort:</strong></font></td>
       <
    td align="center">&nbsp;</td>
      </
    tr>
      <
    tr>
        <
    td><input type="password" size="18" maxlength="50"
    name="password">
    </
    td>
    <
    td align="center">&nbsp;</td>
    <
    tr>
        <
    td width="36%" height="18"><font size="-1" color="#000000">&nbsp;</font></td>
        <
    td align="center">&nbsp;</td>
        </
    tr>
        <
    tr>
        <
    td width="36%" align="center"><input name="submit" type="submit" value="Login"></td>
        <
    td align="center">&nbsp;</td>
        </
    tr>
    </
    table>
    </
    form
    PHP-Code:
    <?php
    $username 
    $_POST["usernamen"];
    $password md5($_POST["password"]);//Verschlüssltes Passwort
    //Datenbankabfrage
    $sql "SELECT usernamen, password FROM login WHERE usernamen LIKE '$usernamen' LIMIT 1";
    $result mysql_query($sql); 
    $row mysql_fetch_object($result);
    //Passwortkontrolle
    if($row->password == $password)
        {
        
    $_SESSION['usernamen'] = $usernamen;
        echo 
    "Login erfolgreich. <br> <a href=\"../index.php\">Klicken Sie hier um Zur Hauptseite zurückzugelangen!</a>";
        }
    else
        {
        echo 
    "Benutzername und/oder Passwort waren falsch. <a href='index.php?content=login/login'>Login</a>";
        }
    ?>
    Auf meinem Online Server funktioniert dies auch Tadellos da nächste Woche über kein Internet verfüge und an der Seite weiterarbeiten wollte habe ich mit nun server2Go heruntergeladen, meine Datenbank über phpMyAdmin Importiert, und die SQL Daten angepasst.
    Allerdings will der Login nicht funktionieren. Die Tabellen in der Online und offline DB habe ich auch miteinader abgegelichen, und keine Unterschiede gefunden.
    Daran das ich Daten nicht an die DB weitergeben kann, kann es nicht leigen, den mein Formular zum Registrieren funktioniert Offline ohne Probleme. Nun also meine Frage, was könnte hier das Problem sein?

    WIe gesagt Online funktionert das Script!

  • #2
    Zitat von Sonork Beitrag anzeigen
    Daran das ich Daten nicht an die DB weitergeben kann, kann es nicht leigen,
    Behaupte sowas bitte nur dann, wenn du es überprüft hast - und nicht auf Grund irgendwelcher Überlegungen, die durchaus falsch sein können.

    Fehlerbehandlung enthält dein Code gar keine - also fang damit an.

    http://peterkropff.de/tutorials/php_...php_fehler.htm
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      PHP-Code:
      $username $_POST["usernamen"]; 
      ..

      $sql "SELECT usernamen, password FROM login WHERE usernamen LIKE '$usernamen' LIMIT 1"
      Du übernimmst oben zwar $_POST["usernamen"] in $username, verwendest aber im Query $usernamen.
      Kann auf dem einen server laufen und auf dem anderen nicht.........
      Der SQL Teil wird auf Servern mit register_globals funktionieren.

      Kommentar


      • #4
        Dein Script ist anfällig für SQL-Injections, eine der meist ausgenützten Sicherheitslücken.

        PHP: SQL Injection - Manual

        Kommentar


        • #5
          Also den Fehler mit dem Login Script konnte ich beheben, und nachdem ich mich einloggen kann, habe ich einen neuen Fehler den ich nicht verstehe, die Abfrage an sich schent zu funktionieren, hier mal der auszug vom Code:

          PHP-Code:
          $abfrage "SELECT * FROM spiele WHERE user LIKE '$usernamen' ORDER BY spname LIMIT $start$eintraege_pro_seite";
          $ergenis mysql_query($abfrage)
           OR die(
          "Error: $abfrage <br>".mysql_error());
          while(
          $row mysql_fetch_object($ergebnis))
              {
              
          $user $row->user;
              
          $rating $row->rating;
              
          $gfx $row->gfx;
              
          $sound $row->sound;
              
          $control $row->control;
              
          $story $row->story;
              
          $os $row->os;
              
          $id $row->id;
              
          //Der Besucher hat keine E-Mail Adresse angegeben:
              
          if($row->spname == "")
                 {
                 
          $spname "<b>$row->spname</b>";
                 }
              else
                 {
                 
          //Der User hat eine Email Adresse angegeben:
                 
          $spname "<a href=\"mailto:$row->email\">$row->spname</a>";
                 }

              echo 
          "
             <table align=\"center\" border=\"0\" cellspacing=\"0\" cellpadding=\"5\" bgcolor=\"#000000\" width=\"100%\">
             <tr bgcolor=\"#ffffff\">
             <td width='70%'>
             Zu <b>
          $spname für $os</b>
             </td>
             <td>
              <img src='./bew/logos/3dl.jpg' title='Bewertungslogo für die Grafik'>
             </td>
                <td>
             <img src='./bew/logos/soundl.jpg' title='Bewertungslogo für den Sound und Klang'>
             </td>
                <td>
            <img src='./bew/logos/contrl.jpg' title='Bewertungslogo für die Steuerung'>
             </td>
                <td>
            <img src='./bew/logos/storyl.jpg' title='Bewertungslogo für die Story, Verfolgung des Spielzieles'>
             </td>   </tr>
             <tr bgcolor=\"#ffffff\">
             <td width='70%'>
             von 
          $user <a href=\"index.php?content=bew/votet_edit&id=$id\">(ID: $id)</a>
             </td>
             <td align='center' bgcolor=\"#AAD4EA\">
             
          $gfx
             </td>
               <td align='center' bgcolor=\"#40A4D8\">
             
          $sound
             </td>
               <td align='center' bgcolor=\"#AAD4EA\">
             
          $control
             </td>
                <td align='center' bgcolor=\"#40A4D8\">
             
          $story
             </td>
             </tr>
            <tr bgcolor=\"#ffffff\">
             <td>
             
          $rating
             </td><td></td><td></td><td>
             </td><td>
             </td>
             </tr>
             </table><br> <hr> "
          ;
             } 
          Das Problem muss in der while Schleife liegen.. auch hier gilt wieder, Online gehts, Offline nicht!
          Zuletzt geändert von Sonork; 29.05.2010, 23:38.

          Kommentar


          • #6
            Zitat von Sonork Beitrag anzeigen
            habe ich einen neuen Fehler den ich nicht verstehe
            Und du glaubst, wir könnten irgendwas dazu sagen, wenn du noch nicht mal ansatzweise eine Problembeschreibung lieferst?
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              Was geht nicht? Fehlermeldungen? Fehlerbeschreibung? Debug-Ausgaben? Übrigens sehr toll, dass du den Fehler in der while-Schleife vermutest, aber dann den Inhalt davon geheim hältst.

              SELECT * sollte man nicht verwenden. Selektiere alle Spalten, die du haben willst, explizit.

              Kommentar


              • #8
                Sry ganz vergessen, Mein Problem ist folgende Fehlermeldung:

                Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in C:\Users\Blackdragon\Desktop\server2go\htdocs\bewertung\bew\votet.php on line 25

                Das ist die Coding zeile mit While!!! (Code wurde Oben Editiert)
                Zuletzt geändert von Sonork; 29.05.2010, 23:38.

                Kommentar


                • #9
                  Das ist ein Folgefehler, weil deine Datenbankabfrage fehlschlug - jetzt lerne verflixt noch mal endlich mysql_error zu nutzen!
                  I don't believe in rebirth. Actually, I never did in my whole lives.

                  Kommentar


                  • #10
                    du meinst
                    PHP-Code:
                    OR die("Error: $abfrage <br>".mysql_error()); 
                    ??

                    Kommentar


                    • #11
                      Zitat von Sonork Beitrag anzeigen
                      PHP-Code:
                      $ergenis mysql_query($abfrage)
                       OR die(
                      "Error: $abfrage <br>".mysql_error());
                      while(
                      $row mysql_fetch_object($ergebnis)) 
                      Und jetzt vergleich mal, in welcher Variablen du das Ergebnis deiner Abfrage ablegst, und auf welche Variable du dann mysql_fetch_object anwendest ...

                      Das ist jetzt das zweite Mal in diesem Thread, dass du es nicht gebacken bekommst, einen Variablennamen zwei mal identisch zu schreiben ... also stell verflucht noch mal endlich das error_reporting auf E_ALL, dann kann PHP dich auf solche Fehler hinweisen.
                      I don't believe in rebirth. Actually, I never did in my whole lives.

                      Kommentar


                      • #12
                        ersetz mal das "$ergenis = ..." durch "$ergebnis = ..." ("b" fehlt). könnte helfen
                        Sorry, zu spät gesehen. wahsaga hatte es schon auf den punkt gebracht.

                        Definitiv E_ALL einstellen!!! Bei Fehlern gründlich prüfen was in der betreffenden Zeile los ist (Klammern richtig gesetzt? Variablen definiert/ initialisiert? Funktionsargumente in richtiger Reihenfolge? Google).
                        Zuletzt geändert von tr-oo-per; 30.05.2010, 04:28.

                        Kommentar

                        Lädt...
                        X