Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

webconqueror

Treue Seele

  • »webconqueror« ist der Autor dieses Themas

Beiträge: 124

Wohnort: Bergisch Gladbach

Beruf: Student

  • Private Nachricht senden

11

23.03.2017, 22:45

Okay.
Ist zwar noch etwas hin, soll aber definitiv kommen. Und sei es nur um zu schauen wie das läuft ;)

Aber ich mache jetzt gerade erstmal das Registrierungsverfahren und das LogIn-Verfahren mit meinem Localhost fertig.
Dann versuche ich das auf ein Server zu packen ;) Da werde ich dann wohl auf jeden Fall hier noch mal nachfragen :D

12

23.03.2017, 22:58

Und noch ein kleiner Tip bezüglich Datenbanken. Betreibe Overengineering. Datenbanken zu altern, bzw Änderungen zu machen weil die Anforderungen an die Datenbanken steigen, ist das letzte was du haben willst.

webconqueror

Treue Seele

  • »webconqueror« ist der Autor dieses Themas

Beiträge: 124

Wohnort: Bergisch Gladbach

Beruf: Student

  • Private Nachricht senden

13

23.03.2017, 23:35

Wird mir wahrscheinlich so oder so passieren :cursing:

Aber mal eine Frage:
Wenn ich auf den Register-Button drücke soll der überprüfen, ob die im Textfeld eingegebene E-Mailadresse schon vergeben ist,
dass heißt in der Datenbank auf meinem Localhost schon auftaucht.

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
$email = $_POST["emailPOST"];
$emailUsed = false;
function checkEmail() {
        
    $check = mysql_query("SELECT email FROM accounts WHERE email = ".$email. "");
    if(mysql_num_rows($check) == 1) {
            
        $emailUsed = true;
            
    }
    
}


Es wird also bei $emailUsed true zurückgegeben, wenn die E-Mail schon vergeben ist.
Über die Datei Data_Manager.cs möchte ich das Script ausführen.

C#-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
public class Data_Manager : MonoBehaviour {
    
    string url = "http://localhost/Accounts/RegisterNewAccount.php";
    public string inputUsername;
    public string inputEmail;
    public string inputPassword;
    bool used1 = false;

    // Use this for initialization
    void Start () {
    
    }
    
    // Update is called once per frame
    void Update () {
        
        
        
    }
    
    public void createUserEmailCheck(string email) {
        
        WWWForm form = new WWWForm();
        form.addField("emailPOST", email);
        
        WWW www = new WWW(url, form); // URL of RegisterNewAccount.php
    
    }
    
}


Hier holt die email-Variable natürlich den Text nicht aus dem Textfeld (muss noch schauen wie das geht), aber
ich müsste immerhin zum testen der Funktion schonmal einen Namen in ein Textfeld eintragen können.
Jetzt habe ich aber noch andere Funktionen in meiner PHP-Datei und weiß nicht genau, wie ich an die ersten Funktion in der PHP-Datei(der erste Code in dem Beitrag)
rankommen soll, also dass er nur die aussführt und dass er dann ggf. das true zurückgibt, welches ich in meinem C#-Script verwerten kann.

Könnt ihr mir da auf die Sprünge helfen?
Wäre super :thumbsup:
Liebe Grüße

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

14

24.03.2017, 06:37

Und noch ein kleiner Tip bezüglich Datenbanken. Betreibe Overengineering. Datenbanken zu altern, bzw Änderungen zu machen weil die Anforderungen an die Datenbanken steigen, ist das letzte was du haben willst.
Kann ich nicht bestätigen. Wir haben in der Vergangenheit Änderungen gemacht und erweitern unsere Datenbanken noch immer bei jedem Release für neue Features und ich sehe da überhaupt keine Probleme. Wo genau siehst du da welche?

@webconqueror: Du solltest überdenken, wie du auf existierende eMails prüfst. Beispiel: Ich registriere mich mit EMail@gmx.de und jemand anderes mit email@gmx.de. Nach dem aktuellen Code gibt's da keine Zurückweisung.
Und sogar noch schlimmer, was passiert, wenn meine eMail so lautet: " foo' OR 1; -- ". Ihr habt doch sicher mal über SQL-Injection im Studium gesprochen. Solche Eingaben nur im Client zu verhindern ist nicht ausreichend, es kann ja jemand ein Script schreiben und direkt gegen deine Server-Schnittstelle ausführen. Und dann hat deine Datenbank eventuell ein ernstes Problem.
(im Moment fehlen in deinem SQL ohnehin die '' um die eMail, das gäbe fleißig SQL-Errors). Ich habe in meinen Server-Logs z.B. Bots gefunden, die jede Menge generierte SQL-Injections auf diverse Schnittstellen meines Servers abgesetzt haben. Dank sauberem Escape meiner SQL-Parameter war das aber kein Thema für mich.

Generell sollte dein Script nach Möglichkeit nur genau eine Aufgabe erfüllen. Damit ergibt sich das Problem der "mehrere Funktionen" gar nicht. Du kannst aber dennoch natürlich weitere Funktionen anderweitig codieren und prüfen:
myScript.php?type=register
myScript.php?type=login
Außerdem kannst du auf Serverseite prüfen, welche HTTP-Aktion durchgeführt wurde. Eventuell machen ja POST, PUT, DELETE und GET andere Dinge? Ich z.B. nutze für Login/Logout dasselbe Script. Login macht POST, Logout macht DELETE.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Dieser Beitrag wurde bereits 8 mal editiert, zuletzt von »BlueCobold« (24.03.2017, 06:52)


webconqueror

Treue Seele

  • »webconqueror« ist der Autor dieses Themas

Beiträge: 124

Wohnort: Bergisch Gladbach

Beruf: Student

  • Private Nachricht senden

15

24.03.2017, 10:38

Also du hast natürlich Recht. Ich wollte im Prinzip erstmal die Basisfunktion haben, aber wahrscheinlich wäre
es schlauer dass gleich richtig zu machen.

Wie würdest du denn überprüfen, ob eine "vernünftige" E-Mailadresse eingegeben wurde, um " foo' OR 1; -- " zu verhindern?
Das andere war ja nur groß/kleinschreibung.
Im Prinzip bräuchte ich dass ganze ja gar nicht Clientmäßig machen, ich übergebe einfach die Eingabe an den Server
und je nachdem was bei der Überprüfung rauskommt wird halt ein true oder false zurückgegeben und entsprechend verfahren.

"myScript.php?type=register"
"myScript.php?type=login"
Ich denke mal dass sollten Links sein? War nur nicht verlinkt. Ansonsten kann ich damit leider nichts anfangen.
Oder ich stehe nur auf dem Schlauch... Passiert mir manchmal :cursing:

Das Script kann ich natürlich umschreiben, sodass es nur eine Aufgabe erfüllt. Werde ich dann heute Nachmittag machen.
Liebe Grüße

16

24.03.2017, 10:44

Stichwort filter_var (FILTER_SANITIZE_EMAIL, FILTER_VALIDATE_EMAIL)... ;)
fka tm

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

17

24.03.2017, 11:09

Klar, die Mail-Adresse kann man validieren lassen. Dennoch sollten sämliche SQL-Parameter escaped werden. Sonst gibt eben jemand sowas verrücktes als Username ein.

Und nein, das sollten keine Links sein. Das ist eine Übergabe eines GET-Parameters namens "type", den das Script abfragen könnte, um zu wissen, welche Funktion es genau ausführen soll.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Sneyke

Frischling

Beiträge: 33

Beruf: Softwareentwickler

  • Private Nachricht senden

18

24.03.2017, 11:26

Ich kenne mich mit dem ganzen Web-kruscht nicht so gut aus. Aber was ist denn an Xampp als richtigen Server auszusetzen? Nur aus Interesse.

19

24.03.2017, 11:28

Dennoch sollten sämliche SQL-Parameter escaped werden.

"'Yep!'" ;)
fka tm

20

24.03.2017, 11:32

Ich kenne mich mit dem ganzen Web-kruscht nicht so gut aus. Aber was ist denn an Xampp als richtigen Server auszusetzen? Nur aus Interesse.

Aus Wikipedia (besser hätte ich's auch nicht sagen können...)

Zitat

XAMPP ist nicht für den Einsatz als Produktivsystem (z. B. als öffentlicher Webserver) gedacht, sondern für Entwickler, die möglichst schnell ein kompaktes Testsystem aufsetzen möchten. Dies erklärt auch die bewusst in Kauf genommenen Einschränkungen in Hinblick auf die Sicherheit von XAMPP. Die Missachtung dieser Warnung[1] führte z. B. zum Patras-Hack bei der Bundespolizei im Juli 2011.
fka tm

Werbeanzeige