Hallo Forum 😃
Ich überlege mir einen Community-Client für unsere Roleplay Community zu entwickeln.
Da dieser C# Client also im Internet zum download angeboten wird möchte ich natürlich, dass die
mysql Verbindungsdaten sicher hinterlegt sind.
Funktionen
ich dachte mir das ich das villeicht mit php löse aber leider habe ich noch nicht so ganz verstanden
wie ich zb. (www.domain.tdl/clientzu.php?login das entsprechende echo auslesen kann.
beispiel: OK = Login | Error:1 = Banned | Error2: = Password falsch usw.
Ich habe gerade die Grund Ausbildung mit Video Kursen abgeschlossen und würde mich über Tipps und Ratschläge freuen. ich bin also noch ein anfänger seit bitte nicht so hart zu mir 😃
Also prinzipiell ist das hier ein C# Forum; daher werden wir Dir mit PHP nicht wirklich helfen können.
Ansonsten ist es immer prinzipiell ne relativ ungeschickte Idee, wenn man ein einfaches Loginsystem sicher selbst implementieren will.
Dafür gibts für fast alle Sprachen passende Frameworks, die i.d.R. auch entsprechend sicher und flexibel sind.
Ansonsten hat Dein Beitrag keine Frage, auf die man antworten könnte.
Daher verweise ich Dich auf [Hinweis] Wie poste ich richtig?
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Hallo Abt
Danke erst mal für deine antwort.
also ich möchte über c# auf ein php script zugreifen in ca. so
public int clientzuphp (string action, string args)
{
WebClient request = new WebClient();
string url = "https://www.domain.tdl/clientzu.php";
string urlaction = "?action=" + action;
string urlargs = "&" + args;
string buildurl = url + urlaction + urlargs;
}
ich habe im php verschiedene rückgabe werte die auf der php seite ausgegeben werden.
Errors
falscher_paramter
username_zu_kurz = label1.text ="Dein benutzername hat zu wenig buchstaben"
password_zu_kurz = label1.text ="Dein Password ist zu kurz"
usergebannd = msgbox " du wurdest von der com ausgeschlossen"
usw.
aufgrund dieser werte soll das programm dann entsprechend reagieren
Naja, also die Grundlagen von C# musst Dir schon selbst beibringen
[FAQ] Wie finde ich den Einstieg in C#?
Aber eine URL ruft man in C# mit dem HttpClient auf.
Beispiele dazu sind in der Doku des HttpClients; inkl. der Typisierung und Behandlung der Rückgabe.
WebClient ist seit vielen Jahren obsolete; sollte man nicht mehr verwenden.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Danke Abt
Mir ist die Lösung im Blitzgedanke gekommen. 😉
Die Verbindung zur mysql Datenbank wird in diesem Script über PHP gelöst.
Dank der Rückgabewerte aus PHP kann C# erkennen um was es sich handelt und wie das Programm zu reagieren hat.
Der login Funktioniert 😃
{
public partial class Form1 : Form
{
public static string Username;
public static string Password;
public Form1()
{
InitializeComponent();
}
public int unbekannt(string action, string args)
{
WebClient requests = new WebClient();
string url = "https://domain.de/unbekannt.php";
string urlaction = "?action=" +action;
string urlargs = "&" + args;
string buildurl = url + urlaction + urlargs;
string response = requests.DownloadString(buildurl);
if(response == null)
{ return 0; }
if(!response.StartsWith("OK"))
{
CheckError(response);
return 0;
}
return 1;
}
public void RaiseError(string error)
{
MessageBox.Show(error, "Es wurde ein Fehler Festgestellt", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
public int CheckError(string error)
{
Dictionary<string, string> Errors = new Dictionary<string, string>();
Errors.Add("Rückgabe1", "Rückgabe1");
Errors.Add("Rückgabe2", "Falscher Aktivierungs Key");
Errors.Add("Rückgabe3", "Der Benutzername ist zu kurz");
Errors.Add("Rückgabe4", "Das Password ist zu kurz");
Errors.Add("Rückgabe5", "Der Benutzername ist Vergeben");
Errors.Add("Rückgabe6", "Falsches Password");
Errors.Add("Rückgabe7", "Dein Benutzeraccount wurde Gebannd");
Errors.Add("Rückgabe8", "Rückgabe8");
Errors.Add("Rückgabe9", "Rückgabe9");
if (!error.StartsWith("ERROR"))
{
RaiseError(error);
return 0;
}
string message = " Ein Unbekannter Fehler";
string[] array = error.Split(':');
if(array.Length == 2 && Errors.ContainsKey(array[1]))
{
string key = array[1];
message = Errors[key];
}
RaiseError(message);
return 1;
}
private void tb_username_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
btn_login_Click(null, null);
}
private void btn_login_Click(object sender, EventArgs e)
{
if(unbekannt("accessAccount", "userName=" + tb_username.Text + "&password=" + tb_password.Text) == 1)
{
MessageBox.Show("Login Erfolgreich");
}
}
private void tb_password_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
btn_login_Click(null, null);
}
}
}