Teil 1 - Abfrage von Benutzernamen & Passwort
Dieser Teil wird unter folgende Punkte gegliedert:
- Einrichtung der MySQL-Datenbank
- Codeerstellung + Dokumentation für B4A-Compiler.
- Erstellung der benötigen PHP Dokumente (für FTP Server)
MySQL-Datenbank
Erstmal müssen wir die Datenbank mit den Benötigen Spalten sowie Typen erstellen
Hier der Code zum einrichten der Datenbank, dieser sollte soweit selbsterklärend sein.
DROP TABLE IF EXISTS `LoginRegisterTUT`; //Datenbank 'Tisch' erstellen wenn nicht vorhanden
CREATE TABLE `LoginRegisterTUT` (
`ID` int(5) NOT NULL auto_increment, //Spalte1 = ID = integer selbsterhöhend (Zähler)
`Benutzername` varchar(255) default NULL, //Spalte2 Benutzername = varchar 255 Zeichen = Unzugewiesen 0
`Passwort` varchar(255) default NULL, //Spalte3 Passwort = varchar 255 Zeichen = Unzugewiesen 0
PRIMARY KEY (`ID`)
) ENGINE=MyISAM AUTO_INCREMENT=9 DEFAULT CHARSET=latin1;
Die App für das Smartphone
Designer:
Wir Benötigen
Layoutname = LoginScreen
Toolboxelement EventName Event
EditText BenutzernameTXT n/a
EditText PasswortTXT n/a *optimal: Textstyle => Password = True
Button LoginBTN Click
*Optimal: Mein Designer-Script zum ausrichten der Elemente
BenutzernameTXT.Top = 15%Y
BenutzernameTXT.Height = 15%Y
BenutzernameTXT.Width = 90%X
BenutzernameTXT.HorizontalCenter = 50%X
PasswortTXT.Top = 45%Y
PasswortTXT.Height = 15%Y
PasswortTXT.Width = 90%X
PasswortTXT.HorizontalCenter = 50%X
LoginBTN.Bottom = 100%Y
LoginBTN.Height = 20%Y
LoginBTN.Width = 100%X
LoginBTN.HorizontalCenter = 50%X
Application - Code
Sub Process_Globals
Dim HClient As HttpClient
End Sub
Sub Globals
Dim LoginBTN As Button
Dim PasswortTXT As EditText
Dim BenutzernameTXT As EditText
Dim Panel1 As Panel
End Sub
Sub Activity_Create(FirstTime As Boolean)
If FirstTime Then
Activity.LoadLayout("LoginScreen")
Else : End If
HClient.Initialize("HClient")
End Sub
Sub Activity_Resume
End Sub
Sub Activity_Pause (UserClosed As Boolean)
End Sub
//Datenübertragung an PHP-Datei mittels URL-Wertübergabe (?Wertname=Wert&...)
Sub LoginBTN_Click
Dim request1 As HttpRequest
request1.InitializeGet("http://diversity.bplaced.net/AndroidDB/Datenbank.php?Benutzername=" & BenutzernameTXT.Text & "&Passwort=" & PasswortTXT.Text)
HClient.Execute(request1, 1)
End Sub
Sub hclient_ResponseSuccess (Response As HttpResponse, TaskId As Int)
Dim resultString As String
resultString = Response.GetString("UTF8")
ToastMessageShow(resultString , True)
If resultString = "Richtig" Then
//Erfolgreicher Login...
Else
ToastMessageShow("Benutzername oder Passwort falsch", false)
End If
End Sub
//Falls keine Verbindung möglich ist
Sub hclient_ResponseError (Response As HttpResponse, Reason As String, StatusCode As Int, TaskId As Int)
ToastMessageShow("Error connecting: " & Reason & " " & StatusCode,False)
If Response <> Null Then
Log(Response.GetString("UTF8"))
Response.Release
End If
End Sub
//Optimal für Überprüfung von Passwort im Klartext
Sub PasswortTXT_EnterPressed
ToastMessageShow(PasswortTXT.Text,True)
End Sub
Info: ' wurden durch // für die Farbliche Hervorhebung vom PHP-Codeerkenner ersetzt
PHP Datei:
<?php
//Mit Datenbank verbinden
$mysql_connect = mysql_connect('localhost', 'Datenbankname', 'Passwort') or die ("Keine Verbindung zum Server");
mysql_select_db('Datenbankname') or die ("Keine Verbindung zur Datenbank");
$Benutzername = $_GET['Benutzername']; //Werte aus URL auslesen
$Passwort = $_GET['Passwort']; //Werte aus URL auslesen
$query = "SELECT * FROM `LoginRegisterTUT` WHERE `Benutzername`='$Benutzername' AND `Passwort`='$Passwort'";
$result = mysql_query($query);
$resultcount = mysql_num_rows($result);
if ($resultcount == 0){
echo "Falsch"; //Wenn Datenbank eintrag nicht vorhanden
}
else {
echo "Richtig"; //Wenn Datenbank eintrag vorhanden
}
mysql_close ($mysql_connect); //Verbindung zur Datenbank schließen
?>
Wenn ihr alles richtig gemacht habt, sollte die Anwendung so funktionieren
Ich bedanke mich für eure Aufmerksamkeit und hoffe, dass das Tutorial ein bisschen helfen konnte, weitere Teil folgen bald (keine Zeitangaben
)
Freu mich über euere Antworten und allge. Feedback
PS: Stellt BITTE eure Fragen, das gibt ersten zurück das ihr interessiert am lernen seit, und meine Kommetare(Aussagen zu eizelnen Teilen) sind eventuell auch ziemlich mager gehalten. Nur durch Fragen/Antworten könnt ihr verstehen und auch beim nächste mal selber Anwenden.
Zusatz: Es stimmt, eigentlich wäre ein Hash (einmalige 'verschlüsslung' => "nicht" entschlüsslbar) besser um die Daten in der MySQL Datenbank zu speichert, weil man NIE was im klartext speichern sollte.
Es gibt noch bessere Methoden die Daten an die PHP Datei zu übergeben, ich nutze nur die übergabe mithilfe der URL weil ich die gesamte Bandbreite von möglichekeiten angeben möchte. Und weil ich finde sie ist allgemein einfacher für beginner anzuwenden.
Die Möglichkeit von Erel findet irh Hieer:
http://www.b4x.com/forum/basic4andr...-connect-android-mysql-database-tutorial.html
Gruß/Best Regards
Diversity