Ankündigung

Einklappen
Keine Ankündigung bisher.

MySQL Dateien in Variabel speichern

Einklappen

Neue Werbung 2019

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

  • MySQL Dateien in Variabel speichern

    Hallo,
    ich habe versucht mir ein Login selber zu erstellen.
    Wie man die Dateien per "echo"-Befehl ausgibt weis ich aber
    wie man sie in einer Variabel speichert nunmal nicht.
    PHP-Code:
    <?
    include("dbconnect.php");
    $abfrage = "SELECT Kennwort FROM benutzerdaten WHERE Benutzername LIKE '$b'"; //eingegebener Benutzername
    $kennwort = mysql_query($abfrage);
    So weit bin ich gekommen.
    kann mir jemand helfen oder mir en Link geben?
    Danke schon mal im Vorraus.

  • #2
    1. sind das keine Dateien sondern Daten. Dateien sind die Dinger, die du auf deiner Festplatte speicherst

    2. Der SQL-Query ist nicht sehr geschickt. LIKE ist bei einem Benutzernamen nicht geeignet als Überprüfung!
    Benutze =.

    3. Wie hast du es denn geschafft, die Daten aus der Datenbank per echo auszugeben? mysql_query() liefert nur eine Recource zurück, die du zum Auslesen der Daten weiterverarbeiten musst.

    4. Schau dir mal folgende Funktionen an, die dir weiterhelfen werden: PHP: mysql_fetch_array - Manual oder PHP: mysql_fetch_assoc - Manual.

    Kommentar


    • #3
      Also...

      ...die Daten würde ich so mit dem "echo"-Befehl ausgeben:
      PHP-Code:
      <?
      include("dbconnect.php");
      $abfrage = "SELECT Kennwort FROM benutzerdaten WHERE Benutzername LIKE 
      '$ba'"; //Benutzername der im Formular eingegeben wurde.
      $kennwort = mysql_query($abfrage);
      while($row = mysql_fetch_object($ergebnis))
          {
          echo $row->Kennwort;
          }

      Kommentar


      • #4
        Sorry, dass ich jetzt fast vom Stuhl gefallen bin vor lachen!
        Du weisst genau, wie du an das Passwort rankommst, weisst aber nicht, wie du es speichern kannst? Du benutzt ja auch
        PHP-Code:
        $abfrage "SELECT ..."
        . Was sollte da bei
        PHP-Code:
        $row->Kennwort 
        anders sein?
        Desweiteren würde ich vor dem Auslesen des Kennwortes mit mysql_num_rows() überprüfen, ob es überhaupt einen Treffer gab. Wenn nicht, war der Benutzername falsch. Wenn du mehr als einen Treffer erhälst, ist sonst was schief gelaufen, dann haben nämlich zwei Benutzer den selben Benutzernamen und sind nicht unterscheidbar. Und wenn alles ok ist und du einen Treffer erhälst, ist das while() überflüssig. Ich verstehe aber nicht ganz, wie dein Login funktionieren soll... Muss man da nur einen Benutzernamen eingeben um sich einzuloggen und du liest dann das Passwort automatisch aus? *verwirrt*

        Kommentar


        • #5
          Kleiner Tipp - Mein Login funtzt so:
          PHP-Code:
          include("config.php");
          $ab $_POST["username"];
          $ac $_POST["pw"];
          $abc = @mysql_query("SELECT passwort FROM users WHERE username LIKE ".$ab);
          $abcd = @mysql_fetch_assoc($abc);
          $aab = @mysql_query("SELECT aktiv FROM users WHERE username LIKE ".$ab);
          $aabc = @mysql_fetch_assoc($aab);
          if(
          $abcd == $ac AND $aabc == "ja" AND !isset($_COOKIE["loginname"]))
           {
           
          setcookie("loginname"$abtime()+31557600000);
           
          setcookie("loginpw"$actime()+31557600000);
           } 
          Und die Datei, die prüft, ob du eingeloggt bist:
          PHP-Code:
          if(isset($_COOKIE["loginname"]))
           {
           
          $c mysql_query("SELECT passwort FROM users WHERE username LIKE ".$_COOKIE["loginname"]);
           if(isset(
          $_COOKIE["loginpw"]))
            {
            
          $c mysql_fetch_assoc($c);
            if(
          $c == $_COOKIE["loginpw"])
             {
             
          $log "ja";
             }
            else
             {
             
          $log "no";
             }
            }
           else
            {
            
          $log "no";
            }
           }
          else
           {
           
          $log "no";
           }
          if(
          $log == "ja")
           {
           
          $logn $_COOKIE["loginname"];
           
          $dd mysql_query("SELECT position FROM users WHERE username LIKE ".$_COOKIE["loginname"]);
           
          $dd mysql_fetch_assoc($dd);
           if(
          $dd == "admin")
            {
            
          $rang "admin";
            }
           elseif(
          $dd == "smod")
            {
            
          $rang "smod";
            }
           elseif(
          $dd == "mod")
            {
            
          $rang "mod";
            }
           else
            {
            
          $rang "user";
            }
           } 
          Somit hast Du geprüft, ob der User eingeloggt ist und welchen Benutzer-Rang er hat.

          Kommentar


          • #6
            Zitat von Molt Beitrag anzeigen
            Kleiner Tipp - Mein Login funtzt so:
            Das glaube ich nicht. Da sind eine Menge Fehler drin.

            Nur ein Beispiel
            Zitat von Molt Beitrag anzeigen
            $abc = @mysql_query("SELECT passwort FROM users WHERE username LIKE ".$ab);
            Nehmen wir mal an $ab='Heinz'. Dann sieht die Abfrage so aus: SELECT passwort FROM users WHERE username LIKE Heinz
            Mysql sucht also alle Datensätze raus, wo der Inhalt des Feldes username dem Inhalt des Felds Heinz entspricht. Das Feld Heinz wird es wohl nicht geben, also spuckt Mysql einen Fehler aus.

            Sorry, aber im Grunde passt da nichts von den beiden Skripten.

            Kommentar


            • #7
              einfach über eine session machen...

              erst muss der user seinen loginname und sein pw in formularfelder eintragen...

              dann wenn er auf login drückt wird geschaut ob der name mit dem passwort vorliegt in der table mit den usern...wenn ja speicherst du seinen namen in eine session variable...und machst noch eine session variabel die SESSION['login'] heißt und tust dort den wert 1 speichern...dann kannst du auf jeder seite die session fortführen und kannst überall nachprüfen ob er eingeloggt ist in dem du die session variable login prüfst ob der wert 1 enthalten ist...un schon is das problem gelöst...du kannst auch beim einloggen noch viele andere sachen in session variablen speichern wie ein benutzerlevel un sonstiges...


              so mach ich das und das funzt einwandfrei...
              gruß Heiko

              Kommentar


              • #8
                Hi,

                schau dir mal ein's von den tut's an:
                #php/QuakeNet Tutorial - Eigenes Loginsystem
                PHP-Einfach.de - Tutorial - Loginscript mit MySQL und Sessions

                vielleicht hift's dir ja
                Karteikasten
                "Es gibt auch Linux-Aussteiger. Aber die Rückfallquote steigt mit jeder Win-Version." - Walter Saner in de.newusers.questions

                Kommentar

                Lädt...
                X