Jump to content
Unity Insider Forum
Rasmusen

Frage zu neuem Projekt Unity,PHP,MySQL

Recommended Posts

Hi, ich habe eine Webseite mit Userlogin und MySQL Datenbank (Hostet by Strato) . Nun möchte ich den Usern auch die Möglichkeit bieten eine Handy App zu nutzen. Ich möchte das unbedingt in Unity machen. Ist das möglich ? Ist ein userlogin auf diese Art möglich und wenn der User in der App Daten verändert das diese dann in die MySQL Datenbank geladen werden ? Ich weis das ein direkt Zugriff ja nicht möglich ist und ich vermutlich per Ajax die Daten dann aktuallisieren muss also von der App zum Webserver und von da dann in die Datenbank. Aber meine Grundsätzliche Frage ist ob das alles so möglich ist. Ich habe ja im Asset Store verschiedene MySQL und PHP Login Scripts gefunden, sogar kostenlose . Mit meiner Unity Erfahrung die sich in Grenzen hält (1 Spiel im PlayStore "Flappy Rentier" und 3 noch nicht vollendeten Games) denke ich mal das ich das hinbekomme. Aber ich würde mich freuen wenn Ihr Hinweise für mich habt , nicht das ich irgendwann merke das irgendwas so nicht umsetzbar ist wie ich es will.

Share this post


Link to post
Share on other sites

Deine Webserver mit Unity zu verbinden ist ohne Probleme möglich. Ich nutze speziel den Asset BestHTTP dafür, muss aber nicht sein. Kannst auch die WWW-Klasse dafür nutzen.

 

Du stellst ganz normal eine Verbindung aus Unity zu deinem Server her (dafür die Dokumentation zu WWW durchlesen) und kannst ganz normale HTTP-Requests mit Header, Body usw. senden.

Share this post


Link to post
Share on other sites

Ein großes Problem ist das die PHP Sessions mit der WWW.Klasse nicht funktionieren.

Alternativ würde ich ich Dir für so ein Projekt Xamarin ans Herz legen. lg

Share this post


Link to post
Share on other sites

Was haben denn PHP-Sessions mit Unity zu tun?

PHP ist serverseitig; wenn da jemand an die Sessions käme, hätte der Server-Admin wohl ein ernstes Problem.

Share this post


Link to post
Share on other sites

Das ist nicht ganz richtig. Die Session-ID muss der Nutzer immer noch haben, sonst gibt's ja keine Session.

 

Dass Sessions und WWW erst einmal nicht zusammen wollen, glaube ich sofort. Man könnte sich da aber bestimmt selber was bauen.

Share this post


Link to post
Share on other sites

Der Nutzer bekommt die Session-ID aber nicht direkt.

 

Der Nutzer kann ein PHP-Skript aufrufen, mit dem er die PHP-Session-ID abfragt; dafür gibt es eine Funktion. Die von PHP gelieferten Daten kann der Nutzer wie auch immer interpretieren. Wenn er eine Session-ID erwartet, sollte er sie auch so interpretieren.

 

Die PHP-Session hat nichts mit Unity zu tun. PHP bietet Funktionen, um die serverseitig gespeicherten Session-Daten zu verarbeiten, doch läuft dies immer über PHP. Unity kann hier nur die Scripte aufrufen und Daten empfangen..

Share this post


Link to post
Share on other sites

Oh jetzt blick ich nicht mehr so richtig durch. Ich dachte eigentlich das das alles ohne Session abläuft . Also User Logt sich ein und Unity sendet an ein PHP WWW Script Username und Passwort . Wenn user Vorhanden und Passwort richtig gibt das PHP ein OK aus und z.B. die UserID . In Unity dann wird immer wenn der User z.B. eine Aktion macht , das Ergebniss der Aktion mit UserID an das PHP www Script gesendet, dort ausgelesen und in die datenbank geschrieben was der USer gemacht hat. So habe ich das gedacht oder liege ich da jetzt völlig falsch ?

Share this post


Link to post
Share on other sites

Könntest Du so machen.

ABER:

Woher weisst Du bzw. das PHP-Script im zweiten Aufruf mit der User-ID, welcher User dahintersteckt?

Anders gesagt: Wenn ich dein Script mit einer beliebigen User-ID aufrufe müsste ich alles machen können, was dieser User-ID erlaubt ist.

Das zu vermeiden hast du zwei Möglichkeiten:

1. Jedes Mal neu mit Benutzname und Passwort anmelden (kann seine Vorteile haben)

2. Du verwendest eine Session-ID, die dir von PHP zugewiesen wird

Share this post


Link to post
Share on other sites

Gibts eine Anleitung wie ich mit der Session ID in Unity umgehe. Meine PHP Scripte identifizieren bei jeder Aktion ja bereits per Session ID. Ich könnte ja beim Userlogin die Session ID an Unity sagen und mittels dieser dann die SQL Updates machen aus UNity raus an die PHP Scripte. Also alles per Session ID und nicht per Username identifizieren. Versteh ich das richtig

Share this post


Link to post
Share on other sites
Meine PHP Scripte identifizieren bei jeder Aktion ja bereits per Session ID.

Wenn deine Scripte schon bei jeder Aktion identifizieren, dann hast Du das Problem doch schon gelöst.

Ansonsten: Ja, richtig.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×