jQuery serialize und PHP parse_str
Ein sehr nützliches Vorgehen um Formulare per Ajax-Aufruf zu speichern ist das Zusammenspiel von jQuery serialize() und PHP parse_str.
Ein sehr nützliches Vorgehen um Formulare per Ajax-Aufruf zu speichern ist das Zusammenspiel von jQuery serialize() und PHP parse_str.
Die redhotmagma GmbH erweitert ihr Portfolio. Wir entwickeln nun auch Apps für das weltweit größte Social Network Facebook.
Mehr Infos unter: http://www.redhotmagma.de/business/facebook_apps.php
Das Multiplayer-Game, Elferchallenge, für das Social-Network Facebook wurde in Flash und PHP entwickelt. Die Hauptlogik des Spiels ist in PHP ausgelagert, sodass in Flash keine Spiellogik mehr stattfinden muss. Somit kann sich Flash ganz auf die grafische Darstellung der Daten konzentrieren. Im Folgenden werde ich einen Einblick geben, wie die Verbindung zwischen Facebook, PHP und Flash besteht.
Nach langer Pause wurde die Elferchallenge wieder ins Leben geholt. Ursprünglich in Flash geschrieben, entwickelt und designed musste das ganze Projekt erst einmal in ein reines Actionscript 3 Projekt mit PHP Anbindung umgewandelt werden. Die Hauptlogik stecke diesmal in den PHP Funktionen und Flash wertete die Ergebnisse aus. Die größte Hürde hierbei war wohl das Speichern der Session das in PHP ein gewisses Problem darstellte, da das Speichern in Cookies innerhalb eines iFrames nicht möglich ist. Flashseitig bestand das größte Problem wohl darin, dass man die PHP Aufrufe in der richtigen Reihenfolge rufen musste und dies teilweise auch wiederholt tun musste. Grundsätzlich wurde in Flex 3.5, also mit Flash 9.0, entwickelt um Benutzern mit einer älteren Flash Version ebenfalls das Spielen zu ermöglichen. Das ganze Spiel besteht aus 6 Grundphasen, zu allererst einmal die Anmeldung bei der sich der Spieler ein Land auswählen durfte, anschließen ein Hauptbereich der bei jedem öffnen des Spiels angezeigt wird und die Möglichkeit bietet auch im nachhinein die gesprochene Sprache zu ändern.
Passend zur WM ist Elferchallenge wieder online gegangen. Diesmal ist das Spiel als Facebook-Anwendung implementiert. Jeder Spieler kann seine Facebook-Freunde oder auch beliebige andere Spieler aus der Rangliste zu einem Wett-Elfmeterschießen herausfordern. Dazu legt der Spieler jeweils fünf Schuss- und Haltepositionen fest. Der herausgeforderte Spieler gibt ebenfalls fünf Schuss- und Haltepositionen an. Jetzt wird das Wett-Elfmeterschießen “ausgeschossen”. Bei einem Gewinn bekommt der Spieler zwei Punkte, bei einem Unentschieden einen Punkt.
Wir wünschen viel Spaß beim Spielen!
Ein wirklich dummes Problem, auf dessen Ursache man aber erstmal kommen muss: Wenn PHP das Session-Cookie im IE/Chrome/Safari nicht setzt, sollte man als allererstes überprüfen, ob man eine max lifetime angegeben hat UND die Serverzeit nicht stimmt (in der Vergangeheit liegt).
Dummerweise akzeptiert der Firefox diese fehlerhaften Voraussetzungen und schreibt das Session Cookie trotzdem, was die Fehlersuche bei mir zur Tortur werden ließ.
Um Daten in einem jQuery Ajax POST-Aufruf korrekt zu enkodieren und in PHP zu dekodieren:
Serialisiert man Objekte in einer PHP Session und bekommt eine Fehlermeldung wegen eines PHP_Incomplete_Class Object liegt das in der Regel daran, dass man die strukturgebende Klasse dieses Objects vor dem ersten Aufruf von session_start() inkludiert haben sollte.
Quelle: http://www.thescripts.com/forum/threadedpost56014.html
PHP hat einige vordefinierte Konstanten, die einem das Formatieren von Datums-Strings nach bestimmten Standards enorm erleichtern:
Die Werte, die die Maximalgröße von hochgeladenen Dateien bestimmen, lassen sich NICHT per ini_set zur Skriptausführung überschreiben, da der Ausführungszeitpunkt in der Kette nach dem upload steht. Sie müssen in der php.ini direkt oder in einer .htaccess-Datei gesetzt werden, letzteres etwa so:
php_value upload_max_filesize 500M
php_value post_max_size 500M