Login...mitnahme von Benutzername und Passwort!



  • Ok das abfangen wäre sicher kein problem!

    Ich hab nun mal das hier probiert:

    void __fastcall TForm1::Button3Click(TObject *Sender)
    {
    Form3->Query1->Close();
    Form3->Query1->SQL->Clear();
    Form3->Query1->SQL->Add("select * from Login where LName like '" +Edit1->Text+ "' AND Passwort = '"+Edit2->Text+ "';");
    Form3->Query1->Open();
    
    if (!Form3->Query1->Eof)
    {
    if (Form3->Query1->FieldByName("Rechte")->AsBoolean==true)
    {
    //ShowMessage ("Gut");
    Form4->Show();
     String str = Form3->Query1->FieldByName("MARechte")->AsString;
     Form4->Button1->Enabled = (str[0]  == "1") ? true : false;
     Form4->Button2->Enabled = (str[1]  == "1") ? true : false;
     Form4->Button3->Enabled = (str[2]  == "1") ? true : false;
     Form4->Button4->Enabled = (str[3]  == "1") ? true : false;
     Form4->Button5->Enabled = (str[4]  == "1") ? true : false;
     Form4->Button6->Enabled = (str[5]  == "1") ? true : false;
     Form4->Button7->Enabled = (str[6]  == "1") ? true : false;
     Form4->Button8->Enabled = (str[7]  == "1") ? true : false;
     Form4->Button9->Enabled = (str[8]  == "1") ? true : false;
     Form4->Button10->Enabled = (str[9]  == "1") ? true : false;
     Form4->Button11->Enabled = (str[10]  == "1") ? true : false;
     Form4->Button12->Enabled = (str[11]  == "1") ? true : false;
    
    Form1->DestroyWnd();
    //Form3->Table2->Open();
    }
    
    }
    else
    {
    ShowMessage ("Falscher Benutzername oder falsches Passwort");
    Edit1->SetFocus();
    }
    }
    

    Und da kommt Fehler: Konvertierung von Char nach Char nicht möglich?!

    Hab ich was übersehen?



  • Form4->Button1->Enabled = (str[0]  == '1') ? true : false; 
    etc.
    


  • ich zitiere mich mal selbst... 😉

    Linnea schrieb:

    DJ BlackEagle schrieb:

    PS: li... ein Array fängt immer mit 0 an, nicht mit 1.

    Strings sind 1 basiert ...

    also lieber bei

    Form4->Button1->Enabled = (str[1]  == '1') ? true : false;
    

    beginnen



  • Für AnsiString

    str[1]
    

    für std::string

    str[0]
    

    😉



  • Danke ihr beiden....das funktioniert jetzt!

    Werde dann mal das andere Beispiel von Fragg testen...weil das für weitere Komponenten anscheinend eleganter ist!



  • Und da hab ich gleich noch eine Frage:

    Da ich ja als Admin im Prog auch rechte anlegen will und ändern...also wie kann ich zB an bestimmte positionen in den string schreiben?

    Beispiel:

    Ich hab für jeden Button eine Checkbox...und ich möchte Button7 aktivieren..wie müsste also das OnCklick Ereigniss der Checkbox aussehen, das er mir eben an die siebte stelle eine 1 schreibt...bzw von 0 auf 1 ändert?



  • Eins verstehe ich nicht ganz. Wieso macht ihr das hier

    Form4->Button1->Enabled = (str[1]  == '1') ? true : false;
    

    so kompliziert.
    Das hier

    Form4->Button1->Enabled = (str[1]  == '1');
    

    reicht doch auch;
    Desweiteren könnte man doch die Nummern der Buttons auch in deren Tag schreiben. Da bräuchtet ihr keine Namen abzufragen.



  • String ur="000000000000";// String Aus Datenbank
    ur[7]='1';
    //... In Datenbank schreiben
    


  • also müsste ich es so machen:

    if (CheckBox->Checked)
     {
     Form3->Query1->??? und jetzt?? Ein FieldByName(""), oder wie bekomm ich den String per Syntax rein?
     }
    

    Oder wo muss ich das ur[7]='1' hinschreiben?



  • Am besten unterhält man sich mit einer Datenbank in einer Sprache die sie versteht.(SQL)

    Für ändern UPDATE ...
    Für löschen DELETE ...

    http://dev.mysql.com/doc/mysql/de/UPDATE.html



  • Ja schon klar...

    könntest mir bitte mal ein beispiel geben bitte...wie ich in den String reinschreiben kann...den syntax weiß ich nich!

    Also einfach mal ein Codebeispiel?!





  • Hmm...das is schon klar....ich weiß nur mit dem nix anzufangen:

    String ur="000000000000";// String Aus Datenbank
    ur[7]='1';
    //... In Datenbank schreiben
    

    kannst mir das mal in so ein ähnliches beispiel wie bei dem anderen Thread geben?! 🙄



  • String alt="101000000000";
    String neu=alt;
    neu[7]='1';
    String sql="UPDATE artikel SET passwort='"+neu+"' WHERE passwort='"+alt+"';"; 
    Query1->SQL->Clear(); 
    Query1->SQL->Add(sql);
    Query1->ExecSQL();
    


  • Damit du nicht das eventuell gleiche Passwort bei anderen Benutzern änderst solltest du es so erweitern... 🙂

    String alt="101000000000";
    String neu=alt;
    neu[7]='1';
    String sql="UPDATE artikel SET passwort='"+neu+"' WHERE passwort='"+alt+"' AND username='"+user+"';"; 
    Query1->SQL->Clear(); 
    Query1->SQL->Add(sql);
    Query1->ExecSQL();
    


  • 😕 😕

    Sorry, bin zur Zeit etwas verwirrt. Nicht passwort sondern Rechte.
    Im Code entsprechend ändern..... 😃



  • Huh?

    Wie was wo?

    Passwort?
    Ich wollte doch Rechte über Checkboxen ändern!



  • Kamill schrieb:

    Huh?

    Wie was wo?

    Passwort?
    Ich wollte doch Rechte über Checkboxen ändern!

    [moralapostel on]
    a) Les es dir nochmal genau durch...
    b) Empfehle ich ein gutes Buch...
    c) bin ich erstaunt wie geduldig Fragg ist 👍 Respekt!
    d) Empfehle ich ein gutes Buch...
    e) Such dir vielleicht mal ein gutes Tutorial...
    f) Empfehle ich ein gutes Buch...
    [moralaposten off]



  • Ja gutes Buch....schön!

    Und fragg is halt nen netter typ =)!

    Werde es mal ausprobieren, und wenns nich geht meld ich mich wieder!



  • Und wie ich vorher sagte, bitte Passwörter als mindestens in MD5 verschöüsseln und nicht klar Text... Sonst bringen die Passwörter überhaupt nix.


Anmelden zum Antworten