Ankündigung

Einklappen
Keine Ankündigung bisher.

Login mithilfe von MySql

Einklappen

Neue Werbung 2019

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

  • Login mithilfe von MySql

    Hi, PHP-Kumpanen!
    Ich habe mich mal an einem Login mit Datenbanken versucht, und es klappt aber leider nicht. Irgendwie kriege ich es nicht hin, mehrere Datensätze auslesen zu lassen. Ich habe auch mit einer foreach-Schleife meine Experimente getrieben, aber auch das hat nicht geklappt.
    Code:
    <html>
     <head>
      <title>.: Highlander :: Es kann nur einen geben! :.</title>
     </head>
     <body bgcolor="black" topmargin="40" leftmargin="20" rightmargin="20" text="green" link="green" alink="green" vlink="green">
      <?php
       require("cgi-bin/edit.inc.php");
       include("cgi-bin/admin.inc.php")
      ?>
      <table border="0" height="" width="20%" cellspacing="5" align="left" valign="top">
       <tr>
        <td>
         <h3 align="center"><font color="green">Highlander</font></h3>
        </td>
       </tr>
       <tr>
        <td align="center">
         Einloggen
    
         Anmelden
    
        </td>
       </tr>    
      </table>
      <table border="0" height="" width="60%" cellspacing="5" align="left" valign="top">
       <tr>
        <td colspan="2" align="center">
         <h1><font color="green">Highlander</font></h1>
        </td>
       </tr>
       <tr>
        <td align="left">
         <?php
          include("cgi-bin/newsticker.inc");
         ?>
        </td>
        <td align="right">
         |News|
        </td>
       </tr>
       <tr>
        <td colspan="2">
        <form action="<?php echo $PHP_SELF; ?>" method="post">
         <table border="0" height="" width="" cellspacing="5" cellpadding="1" align="center">
          <tr>
           <td bgcolor="#292929" colspan="2" align="center">
            Highlander - Anmeldung
           </td>
          </tr>
          <tr>
           <td bgcolor="#191919">
            ID:
           </td>
           <td bgolor="#191919">
            <input type="text" name="id">
           </td>
          </tr>
          <tr>
           <td bgcolor="#191919">
            Nickname:
           </td>
           <td bgcolor="#191919">
            <input type="text" name="nick" value="<?php if(isset($_POST[nick])) { echo $_POST[nick]; } ?>">
           </td>
          </tr>
          <tr>
           <td bgcolor="#191919">
            Passwort:
           </td>
           <td bgcolor="#191919">
            <input type="password" name="pass">
           </td>
          </tr>
          <tr>
           <td bgcolor="#292929" colspan="2" align="center">
            <input type="submit" name="submit" value="Einloggen">
           </td>
          </tr>
         </table>
        </form>
         <?php
          $dp=mysql_connect("localhost", "*****", "*****");
              mysql_select_db("highlander", $dp);
          $id=$_POST['id'];
          $nick=$_POST['nick'];
          $pass=$_POST['pass'];
          $submit=$_POST['submit'];
          $checkuser="SELECT id, nick, pass FROM user";
          $result=mysql_query($checkuser);
          $read=mysql_fetch_assoc($result);
          foreach($read as $check => $gogo) {
             echo "";
          }
          if(empty($submit)) {
             echo "";
          }
          elseif(isset($pass) && isset($nick) && $nick==$gogo['1'] && $pass==$gogo['2'] && $id==$gogo['0']) {
             header("Location:cgi-bin/_login.php");
          }
          else {
             echo "<center>Bitte überprüfen sie nocheinmal alle Benutzerangaben.</center>";
         }
         ?>
        </td>
       </tr>
      </table>
      <table border="0" height="" width="20%" cellspacing="5" align="left" valign="top">
       <tr>
        <td>
         3
        </td>
       </tr>
      </table>
     </body>
    </html>
    Die include-Dateien braucht ihr nicht beachten, da die nur allgemeine Funktionen, und Funktionen für den Admin enthalten. Meine Datenbank ist wie folgt aufgebaut:
    | id | nick | pass | email |
    Helft mir bitte!


  • #2
    http://forum.developers-guide.net/thread54.html
    Vielleicht hilft es dir ja bei der Ideenfindung und Problemlösung ..
    privater Blog

    Kommentar


    • #3
      ich will aber ohne sessions arbeiten.

      Kommentar


      • #4
        Warum auch immer ..
        privater Blog

        Kommentar


        • #5
          eigentlich ist mein problem ja nur, dass ich nur ein datensatz herauslesen kann. kann mir dabei nicht irgendjemand helfen, also auf meine frage antorten, und nicht irgendwelche tutorials anbieten, die ich im endeffekt dann doch nicht benutze?
          und warum ich nicht mit sessions arbeiten will: das script ist das admin script wo eh nur 2, 3 leutz drauf zugriff haben. also brauche ich dafür auch keine sessions, weil die, die die benutzerdaten kennen, damit nicht schlampig umgehen.

          Kommentar


          • #6
            nd warum ich nicht mit sessions arbeiten will: das script ist das admin script wo eh nur 2, 3 leutz drauf zugriff haben. also brauche ich dafür auch keine sessions, weil die, die die benutzerdaten kennen, damit nicht schlampig umgehen.
            Ist irgendwie keine Begründung. Aber mir egal.

            Du hast das Problem noch garnicht eingrenzen können? Ich müsste mir jetzt das ganze Skript durchlesen? Ungern.

            Kommentar


            • #7
              kein problem:
              Code:
              <?php 
                    $dp=mysql_connect("localhost", "*****", "*****"); 
                        mysql_select_db("highlander", $dp); 
                    $id=$_POST['id']; 
                    $nick=$_POST['nick']; 
                    $pass=$_POST['pass']; 
                    $submit=$_POST['submit']; 
                    $checkuser="SELECT id, nick, pass FROM user"; 
                    $result=mysql_query($checkuser); 
                    $read=mysql_fetch_assoc($result); 
                    foreach($read as $check => $gogo) { 
                       echo ""; 
                    } 
                    if(empty($submit)) { 
                       echo ""; 
                    } 
                    elseif(isset($pass) && isset($nick) && $nick==$gogo['1'] && $pass==$gogo['2'] && $id==$gogo['0']) { 
                       header("Location:cgi-bin/_login.php"); 
                    } 
                    else { 
                       echo "<center>Bitte überprüfen sie nocheinmal alle Benutzerangaben.</center>"; 
                   } 
                   ?>

              Kommentar


              • #8
                kein problem:
                Code:
                <?php 
                      $dp=mysql_connect("localhost", "*****", "*****"); 
                          mysql_select_db("highlander", $dp); 
                      $id=$_POST['id']; 
                      $nick=$_POST['nick']; 
                      $pass=$_POST['pass']; 
                      $submit=$_POST['submit']; 
                      $checkuser="SELECT id, nick, pass FROM user"; 
                      $result=mysql_query($checkuser); 
                      $read=mysql_fetch_assoc($result); 
                      foreach($read as $check => $gogo) { 
                         echo ""; 
                      } 
                      if(empty($submit)) { 
                         echo ""; 
                      } 
                      elseif(isset($pass) && isset($nick) && $nick==$gogo['1'] && $pass==$gogo['2'] && $id==$gogo['0']) { 
                         header("Location:cgi-bin/_login.php"); 
                      } 
                      else { 
                         echo "<center>Bitte überprüfen sie nocheinmal alle Benutzerangaben.</center>"; 
                     } 
                     ?>

                Kommentar


                • #9
                  PHP-Code:
                  <?php
                  while ($read=mysql_fetch_assoc($result)) echo $read[ASSOC];
                  ?>

                  Kommentar


                  • #10
                    Zitat von Brease
                    eigentlich ist mein problem ja nur, dass ich nur ein datensatz herauslesen kann. kann mir dabei nicht irgendjemand helfen, also auf meine frage antorten, und nicht irgendwelche tutorials anbieten, die ich im endeffekt dann doch nicht benutze?
                    und warum ich nicht mit sessions arbeiten will: das script ist das admin script wo eh nur 2, 3 leutz drauf zugriff haben. also brauche ich dafür auch keine sessions, weil die, die die benutzerdaten kennen, damit nicht schlampig umgehen.
                    rücke deinen verdammten dreckscode vernünftig ein und packe ihn in php-tags.

                    und was soll dieser bullshit:
                    PHP-Code:
                         $checkuser="SELECT id, nick, pass FROM user"
                          
                    $result=mysql_query($checkuser); 
                          
                    $read=mysql_fetch_assoc($result); 
                          foreach(
                    $read as $check => $gogo) { 
                             echo 
                    ""
                          } 

                    Kommentar


                    • #11
                      Wenn Du alle Datensätze abrufst und sämtliche Vergleiche in php durchführst, brauchst Du keine Datenbank.
                      PHP-Code:
                      <?php
                      $checkuser
                      ="SELECT id, nick, pass FROM user WHERE nick='$nick'";
                      ?>
                      Da nick hoffentlich eindeutig ist, brauchst Du jetzt nur entweder keinen oder einen Datensatz abrufen.

                      Das Thema SQL injections soltlest Du Dir auch dringend vornehmen. Einstieg: http://faq-phpfriend.de/q/q-sql-injection.html

                      Was macht
                      header("Location:cgi-bin/_login.php");
                      ? Genauer: was macht cgi-bin/_login.php und wofür wird es benötigt?

                      Kommentar


                      • #12
                        @Bruchpilot: das ist einfach nur eine Weiterleitung und wird für dieses Problem nicht benötigt

                        @Yaß:bist du immer so kacke freundlich? wen ja scheinst du ja ein ganz schön netter Kerl zu sein. außerdem ist das eine abfrage von der datenbank. und mit den code einrücken: es sind leider nicht alle so perfekt wie du. außerdem hat wohl jeder irgendwo seine eigene schreibweise für PHP

                        Kommentar


                        • #13
                          @Bruchpilot: das ist einfach nur eine Weiterleitung und wird für dieses Problem nicht benötigt
                          Gut, trotzdem nicht vergessen, dass es sich dabei um eine externe Weiterleitung handelt. Es stellt keinen Schutz für den Aufruf von cgi-bin/_login.php dar.

                          Kommentar


                          • #14
                            in der datei frag ich zum schutz ab ob der cookie gesetzt ist, und wenn ja, soll er inhalt anzeigen

                            Kommentar


                            • #15
                              Was hindert den Benutzer daran, einen entsprechenden Cookie selbst zu erstellen?
                              Was spricht dann noch gegen Sessions? (ausser, dass sie leichter zu handhaben und in der Form sicherer sind?)

                              Kommentar

                              Lädt...
                              X