Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Einloggen auf Website (https://www.delphipraxis.net/155408-einloggen-auf-website.html)

pinky1990 21. Okt 2010 20:28

Datenbank: MySQL • Version: 1 • Zugriff über: Php

Einloggen auf Website
 
habe folgenden Code:

Delphi-Quellcode:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
var
  http: TIdHTTP;
  s: String;
  Params: TStrings;
begin
  http := TIdHTTP.Create(nil);
  try
     //wenn die Übertragungsmethode POST ist
    Params := TStringList.Create;
    try
      Params.add('username='+Edit1.Text);
      Params.Add('passwort='+Edit2.Text);
      s := http.Post('http://xxx-xxxxx.xx/upp/xxx/xxxxx.php', Params);
    finally
      Params.free;
    end;

    ShowMessage(s); //Zeigt den Quellcode der Eregbnis- / Login- / oder sonstwas - Seite an
  finally
    http.free;
Und das mein php script:
Code:
<?php

$root_path = realpath(dirname(__FILE__).'/../../') . '/';

include("$root_path/upp/inc/class_template.php");
include("$root_path/upp/inc/config.php");
include("$root_path/upp/inc/funktionen.php");
require_once("$root_path/upp/errorHandling/mainErrorHandling.php");

$action = $_POST["action"];

$loggedin = false;

switch($action)
{
   case "login":
      $passwort = $_POST["passwort"];
      $username = $_POST["username"];
      $passwort = md5($passwort);
      
      $SQL = new mysqli(DB_HOST, DB_USER, DB_PW, DB_NAME);
        $query = $SQL->prepare("SELECT password, aktiv FROM upp_users WHERE username = ?");
        $query->bind_param("s", $username);
        $query->execute();
        $query->bind_result($password, $aktiv);
        $query->fetch();
      
      if($passwort == $password)
      {
            if($aktiv == 1) $loggedin = true;
      }
      
      break;
}

?>
So mit dem überprüfe ich ob die beiden eingaben in Edit Feld korreckt sind sprich username und Passwort.
Etz sollte aber wen der User existiert und das passwort korreckt ist form2 kommen wie mach ich das hab davon leider kein plan.

mfg

wicht 21. Okt 2010 20:39

AW: Einloggen auf Website
 
Gibt dein Delphi-Programm den Parameter "action" mit? Den vermisse ich hier. Ansonsten Debug-Ausgaben ins PHP bauen und mal mit einem Browser testen (dazu evtl von POST auf GET umstellen, temporär)?

Hm, und vielleicht wäre es nicht schlecht, wenn du vor dem Posten deine Rechtschreibung/Grammatik mal überprüfst...

Luckie 21. Okt 2010 20:41

AW: Einloggen auf Website
 
Warum kommt mir das so bekannt vor? http://www.delphi-forum.de/viewtopic...ighlight=login

Wenn schon Crosspostings erstellt werden, dann bitte auch verlinken.

wicht 21. Okt 2010 20:43

AW: Einloggen auf Website
 
Da muss ich mich ja schon fast für meine Antwort schämen.
Und ich bin nichtmal auf das ominöse "form2" eingegangen :( .. 0 Punkte für wicht.

Luckie 21. Okt 2010 20:53

AW: Einloggen auf Website
 
Wenn die Antwort in s steht, dann brauchst du doch nur noch gucken, was drin steht. Wenn das drin steht, was bei einem erfolgreichen Login drin steht, dann ruf Form2 auf.

Stichworte: if, pos, ...

wicht 21. Okt 2010 20:59

AW: Einloggen auf Website
 
Und die Form öffnest du vermutlich mit "Form2.Show", wenn du mit den herrlichen globalen Form-Variablen arbeitest...

pinky1990 21. Okt 2010 21:05

AW: Einloggen auf Website
 
Was meinst du mit
Zitat:

Wenn die Antwort in s steht, dann brauchst du doch nur noch gucken, was drin steht. Wenn das drin steht, was bei einem erfolgreichen Login drin steht, dann ruf Form2 auf.

Luckie 21. Okt 2010 21:16

AW: Einloggen auf Website
 
Na da wird dcoh was unterschiedliches drin stehen wenn der Login erfolgreich war oder nicht.

pinky1990 21. Okt 2010 21:32

AW: Einloggen auf Website
 
Ja aber wie überprüf ich des?

Luckie 21. Okt 2010 21:34

AW: Einloggen auf Website
 
Liest du auch meine Antworten? Mit pos und if.

pinky1990 21. Okt 2010 21:40

AW: Einloggen auf Website
 
ja klar aber hab noch nie damit gearbeitet :(

Luckie 21. Okt 2010 21:44

AW: Einloggen auf Website
 
Dann guck in der Hilfe oder suche hier im Forum. Auch die Codevervollständigung hilft.

pinky1990 21. Okt 2010 21:52

AW: Einloggen auf Website
 
Da find ich aber leider nichts

Luckie 21. Okt 2010 21:54

AW: Einloggen auf Website
 
Jetzt willst du mich aber veräppeln. Dann nutze die hier im Forum auf der Portalseite verlinkte online Hilfe.

Was steht denn im Erfolgsfall in s drin und was wenn der Login fehlschlägt?

wicht 21. Okt 2010 21:58

AW: Einloggen auf Website
 
Gut, dann nochmal ich...

Du hast noch nie irgendwas mit Delphi gemacht, oder? Der Code, den du da hast, wurde von irgendwelchen Quellen her zusammengeholt, aber du hast keine Ahnung, was da überhaupt passiert.
Falls das stimmt: Zieh dir ein paar Delphi-Tutorials rein. Besonders schwierig ist das nicht, aber wenn du deinen Beispielcode postest und sagst, dass du so kein "if" und "Pos()" kennst, wird das hier zu nichts führen. Also, steig erstmal in die Materie ein. Wenn du bei einem Tutorial fragen hast, wird dir sicherlich auch besser geholfen - weil du dann deine Fragen besser formulieren kannst, weil du weißt, was du vor hast, und was du bis jetzt wie gemacht hast. Falls du gerade mit Delphi angefangen hast, ist das hier vermutlich eine Nummer zu groß.

Ist alles nicht böse gemeint, nur ein gut gemeinter Ratschlag.


Edit: Roter Kasten. Aber der Post hier muss raus.

pinky1990 25. Okt 2010 16:02

AW: Einloggen auf Website
 
wieso kommt bei diesen code:
Delphi-Quellcode:
var
  s:string;
  stream: TStringList;
  begin
  try
    try
        stream := TStringList.Create;
      Stream.Add('username='+Edit1.Text);
      Stream.Add('passwort='+Edit2.Text);
      Stream.Add('action=Login');
      s := idhttp1.Post('http://www.pup-board.de/upp/uem/uem_funktionen.php',stream);

      if (Pos('Du bist als',s) > 0) then //Erfolgreich eingeloggt?
        ShowMessage('Du bist Eingeloggt.');
      if (Pos('Du bist als',s) = 0) then //Fehler!
        ShowMessage('Leider ist der Username oder das Passwort Falsch.');
    finally
      Stream.Free;
    end;
  except on E: Exception do
    ShowMessage(E.Message);
  end;
Immer Leider ist der username oder das Passwort falsch??
mfg

Teekeks 25. Okt 2010 16:10

AW: Einloggen auf Website
 
Was steht denn in S drin?

pinky1990 25. Okt 2010 16:39

AW: Einloggen auf Website
 
weis ich nicht wie lese ich das aus?

implementation 25. Okt 2010 16:47

AW: Einloggen auf Website
 
Nachdenken :roll:
Wie wäre es mit der Prozedur, die mit "Show" anfängt, mit "Message" aufhört, einen String als Parameter erwartet, und die du in deinem Code bisher schon 2x benutzst?
Richtig, ShowMessage.
Soll ich dir jetzt noch sagen, an welche Stelle genau das hingehört?
Und wie man es buchstabiert?
Und was du als Parameter/Argument angeben musst?

wicht 25. Okt 2010 17:10

AW: Einloggen auf Website
 
Nein, du solltest einfach ein fertiges Programm posten, so dass der TE gar nichts mehr machen muss...

Teekeks 25. Okt 2010 17:12

AW: Einloggen auf Website
 
Zitat:

Zitat von implementation (Beitrag 1057751)
die du in deinem Code bisher schon 2x benutzst?

[KLUGSCHEISS]
Falsch!
Sogar schon 3x!
[/KLUGSCHEISS]

pinky1990 25. Okt 2010 20:01

AW: Einloggen auf Website
 
Wenn ich s mit einer Showmessage(s); auslese und ich mich dan einloggen will kommt Username oder Passwort Falsch und danach kommt zwar der showmessage dialog aber der ist leer.

lg

implementation 25. Okt 2010 20:02

AW: Einloggen auf Website
 
Was schließt du daraus?
Richtig, s ist ein leerer String.

Luckie 25. Okt 2010 20:04

AW: Einloggen auf Website
 
Aber was dir hier http://www.delphi-forum.de/viewtopic.php?t=102138 gesagt wurde hast du schon verstanden und berücksichtigt?

pinky1990 25. Okt 2010 20:44

AW: Einloggen auf Website
 
Ich schaff es einfach nicht
kann man es nich irgendwie so machen das ich das ergebnis per echo von php script ausgeben lass oder so?

lg

Luckie 25. Okt 2010 20:52

AW: Einloggen auf Website
 
Klar kann man das. Du musst dann eben das PHP-Skript entsprechend schreiben.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:53 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz