mysql query

ShinmA

Erfahrenes Mitglied
$sql = "SELECT passwort FROM `datenbank` WHERE benutzer = '$anmelder'";

echo"$passowort";

nur er gibt nichts aus, auch keinen fehler, verbindung steht und die richtg db is ausgewählt also also müsste gehen

aber was is dann los?
 
Tag erstmal,
da fehlt mysql_query und mysql_fetch_array:
PHP:
<?php
  $sql = "SELECT passwort FROM `datenbank` WHERE benutzer = '$anmelder'";
  $result = mysql_query($sql);
  $row = mysql_fetch_array($result);
  echo $row['passwort'];
So sollte es gehen
MfG Yoda
 
ujj das würde ich NIEEE so machen!

Es gibt eine Regel:
passwörter NIE aus einer Db ziehen!!

PHP:
<?php
  $sql = "SELECT id FROM datenbank WHERE benutzer = '$anmelder' AND passwort='$eingae_passwort' ";
  $result = mysql_query($sql);
  $row = mysql_fetch_array($result);
  echo $row['id'];

?>

Wie gesagt, lass das original passwort in der DB und lass es eine datenbank vergleichen! Anstatt id (primary key) kannts DU ja auch den namen oder sonstewas "ziehen". aber bitte lass das passwort wo es ist, verschlüsselt(z.B. md5) in der db!
 
Da hat er Recht. Du brauchst das Passwort auch nicht aus der DB ziehen um Benutzereingaben zu überprüfen. Du machst es so wie boelkstoff und überprüfst dann ob es ein Resultat gibt. Wenn ja exsitiert dieser benutzer und das Passwort ist korrekt, ansonsten sind/ist die Eingabe/n falsch:
PHP:
if(mysql_num_rows($row) > 0)
{
   echo "Du hast dich erfolgreich eingeloggt.";
   //Mega geheime Inhalte
}
Was du machst wenn die Eingaben richtig sind ist ja dann deine Sache.
MfG Yoda
 
und wäre das richtig:(?)

PHP:
$sql = "SELECT id FROM datenbank WHERE benutzer = '$anmelder' AND passwort='$kennung' ";
  $result = mysql_query($sql);
  $row = mysql_fetch_array($result);
     
      if(isset($row))
             {
              echo "Sie sind eingeloggt?!"; 
             }
          Else
             {
              echo "Falsche Benutzername/Passwort Kombination!";
              exit;
             };


oder is das falsch?
 
Nein isset kannst du definitiv nicht verwenden, da selbst wenn mit mysql_fetch_array nichts rauskommt ist 0 in der Variablen gespeichert, d.h. sie ist in jedem falle gesetzt.
Gute Nahct
MfG Yoda
 
Das ist soweit richtig NUR!!! musst du dabei 2 Sachen beachten.

  • Entweder du lässt die Q so wie sie ist und änderst die Passwordspalte auf UNIQUE, weil du evtl auch 2 Ergebnisse bekommen kannst
  • ODER aber du prüfst auch auf username und benutzt das Stichwort AND...

Eigentlich brauchst du das gar nicht, denn der user wird auf jeden Fall eingeloggt, nur sollte dir bewusst sein,dass nur geprüft wird, OB ein derartiges Passwort existiert, nicht, WEM es gehört!
 
Original geschrieben von eLorFiN
Das ist soweit richtig NUR!!! musst du dabei 2 Sachen beachten.

  • Entweder du lässt die Q so wie sie ist und änderst die Passwordspalte auf UNIQUE, weil du evtl auch 2 Ergebnisse bekommen kannst
  • ODER aber du prüfst auch auf username und benutzt das Stichwort AND...

Eigentlich brauchst du das gar nicht, denn der user wird auf jeden Fall eingeloggt, nur sollte dir bewusst sein,dass nur geprüft wird, OB ein derartiges Passwort existiert, nicht, WEM es gehört!

häääää???

Also passwort auf unique würde heissen das das Passwort nur einmal vorkommen darf, bei allen user! Das ist ja qautsch! Wenn dann muss benutzer unique sein, denn den darf es nur EINMAL geben!

Wieso wird nicht geprüft WEM das passwort gehöhrt??
WHERE benutzer = '$anmelder' AND passwort='$kennung' ";

d.h. er gibt nur den Datensazu zurück, wo der gespeicherter Username gleiche dem eingegebenen UND das passwort dem eingebenen. wenn eins von beiden oder beide nicht stimmen, gibt er nichts zurück! wenn beide gleich sind, also user zum passwort passt, dann ist er derjenige der er vorgibt, bzw. er kennt username UND passendes passwort!

Also setze in deiner Db username noch auf unique sonst bekommst Du probleme! gut wäre auch, wenn Du einen primary key wie z.B. ID hast! (autoincrement @mysql).
 
lol:-) :-) :-) :-)
das is was ich mein :P
entweder du machst es unique...oder du prüfst es mit AND, ist schon richtig *gedenkt* - auf jeden fall solltest du halt auch überprüfen, WER sich anmeldet, und NICHT den usernamen anhand des Passwortes feststellen, ach ja, wenn der username unique ist, ist das eigentlich weniger das Problem,da du die postvariable übernehmen kannst, nevermind, sorry wenn dich das jetzt verwirrt lol
 
macht er doch schon alles!

Er vergleich doch username_db mit username_eingabe!
Dann weiss er wer er ist, er kann ja dann die id, den namen oder sonstewas aus der Db ziehen und als session variable machen! z.B. die id, weil die eineindeutig ist!
 
Zurück