von PHP 5.2 auf PHP 5.3

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • von PHP 5.2 auf PHP 5.3

    Hallo,

    bei meinem Managed Server wurde in den letzten Tagen die PHP Version von 5.2 auf 5.3 geändert.
    Seitdem funktioniert eine Funktion meines Programmes nichtmehr und ich habe leider keine Ahnung an was das genau liegt.
    Ich habe in den entsprechenden Dateien wo die Funktion auftritt mit error_reporting(E_ALL); versucht die Fehler anzuzeigen, allerdings wird nichts angezeigt... muss ich was anderes verwenden, um die Fehler auszugeben?

    Vielleicht kann mir ja einer von euch weiterhelfen, dazu erkläre ich die Funktion mal eben:
    Also man ist auf einer Seite. Auf dieser Seite befinden sich verschiedene Buttons, durch welche man z.B. Einstellungen abändern kann. Die Seite wird nicht aktuallisiert, also die URL bleibt immer dieselbe, trotzdem verändert sich etwas auf der Seite.
    Seit dem Update von PHP 5.2 auf 5.3 funktioniert das nichtmehr, also es ändert sich nichtsmehr.
    Ich habe keine Ahnung wie ich die Funktion noch beschreiben kann, falls jmd helfen kann, ich könnte auch den Link zur Seite per PN schicken, dann ist das vllt etwas klarer.
    Also soviel ist sicher, dass die Funktion unter PHP 5.3 anders lauten muss, aber ich eben nicht weiß, wie die Funktion im Code ausschaut / heißt ...

    Danke schonmal an alle die helfen können.

    LG

  • #2
    display_errors (steht auch in den Regeln! )

    Es muss ja aber nicht zwangsläufig ein Fehler sein, der von PHP geschmissen wird. Ein Fehlverhalten kann ja auch ohne harten Fehler entstehen.

    Debugging mit Testausgaben hilft!

    ich könnte auch den Link zur Seite per PN schicken, dann ist das vllt etwas klarer.
    Mir ist in der Tat nicht klar, was du da versucht hast zu beschreiben. Die Adresse muss sich ja nicht zwangsläufig ändern. Erst recht nicht bei (Affen-)Formularen.

    Kommentar


    • #3
      Hi,

      das mit display_errors ist mir schon klar, sonst wir ja nichts angezeigt, aber es wurden trotzdem keine Fehler angezeigt...
      Ich hab dir mal den Link geschickt, wäre schön wenn du mir weiterhelfen kannst.

      LG

      Kommentar


      • #4
        E_ALL könnte in der Tat zu wenig sein - verwende mal
        PHP-Code:
        error_reporting(-1);
        ini_set("display_errors",true); 
        [font=Verdana]
        Wer LESEN kann, ist klar im Vorteil!
        [/font]

        Kommentar


        • #5
          Zitat von ImmerOn
          Die Seite wird nicht aktuallisiert, also die URL bleibt immer dieselbe, trotzdem verändert sich etwas auf der Seite.
          Wenn du Ajax verwendest, steht eine Fehlermeldung möglicherweise im Body der Response. Guck da mal (etwa mit Firebug im Net-Tab).

          Alternativ möglicherweise: Error-Log des Servers.

          Kommentar


          • #6
            Tippe darauf, dass das Script noch auf register_globals=on setzt was mit der Umstellung auf 5.3 nun auf off gesetzt wurde.

            error_reporting wie von eagle275 vorgeschlagen setzen - das dürfte Licht ins Dunkel in Form von Notices bringen.
            Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
            Schön - etwas Geschichte kann ja nicht schaden.
            Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

            Kommentar


            • #7
              das wäre etwas ungewöhnlich ... php5.2 ist ja nicht php 4 - ab 5.0 ist register globals eigentlich dauerhaft auf "aus"
              [font=Verdana]
              Wer LESEN kann, ist klar im Vorteil!
              [/font]

              Kommentar


              • #8
                Ich denke eher, dass der Hoster bisher register_globals weiterhin auf on setzte und mit der Umstellung auf 5.3 nun dies endlich auch mal über Bord geworfen hat.

                Der Thread-Opener heißt ja auch "ImmerOn"
                Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
                Schön - etwas Geschichte kann ja nicht schaden.
                Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

                Kommentar


                • #9
                  Hi,

                  danke für die Antworten,
                  register_globals war immer schon auf "off", diese Einstellungen kann ich selber verwalten (managed virtual server).
                  Ich werd mir jetzt nochmal genauer die Logs durchschauen, mal schauen ob ich es hinbekomme

                  LG

                  Edit:
                  Was mir gerade noch einfällt:
                  Meine Website läuft nur mit dem Programm ionCube, könnte es evtl. sein, dass eine neue Version benötigt wird, bzw. das Programm unter PHP 5.3 nicht richtig funktioniert?
                  Damit alle mal wissen um was es überhaupt geht: http://www.bg-world-engine.com/requirements.php
                  Wenn jemand Erfahrungen damit hat und mir weiterhelfen kann, wäre ich sehr dankbar.

                  LG
                  Zuletzt geändert von ImmerOn; 14.09.2012, 23:29.

                  Kommentar


                  • #10
                    Guten morgen,

                    ich habe jetzt alles nochmal ausführlich getestet und habe dann folgendes entdeckt:
                    Also mit error_reporting... wird mir nichts ausgegeben.
                    In den Error-Logfiles steht auch nichts.
                    Im Logfile steht aber was:
                    POST /game/ajax_dyn.php?action=check_squad&ajax HTTP/1.1" 500 2222 "http://meineurl.de/game/object.php?id=153..."

                    Die Url "meineurl" habe ich hier nur ersetzt, genauso wie die ID "153..." ist normal eine komplett Zahl, also das bitte nicht beachten.

                    Dann habe ich mich noch ein bischen mit PHP 5.3 beschäftigt und rausgefunden,
                    dass der Befehl 'do' oder was auch immer das bedeutet, nichtmehr unterstützt wird.
                    Ich weiß nun auch in welcher Datei der Fehler auftritt, und zwar in meiner Ajax-Datei.
                    Dort habe ich dann nach 'do' gesucht und einige Ergebnisse gefunden und zwar immer:
                    $_GET['do']

                    Kann das nun der Fehler sein?
                    Wenn ja, weiß jmd. wie ich $_GET['do'] in PHP 5.3 ersetzen kann?

                    Liebe Grüße

                    ps: an dem Programm IonCube lags nicht, habs auf die aktuelle Version für PHP 5.3 geupdatet, hat sich aber nichts verändert.

                    Kommentar


                    • #11
                      Zitat von ImmerOn Beitrag anzeigen
                      Dann habe ich mich noch ein bischen mit PHP 5.3 beschäftigt und rausgefunden, dass der Befehl 'do' oder was auch immer das bedeutet, nichtmehr unterstützt wird.
                      Keine Ahnung, wie du darauf kommst, aber es ist Quatsch.

                      Die einzige Stelle, an der es in PHP nativ ein do gibt, ist die do-while-Schleife – und natürlich gibt es die in PHP 5.3 immer noch.

                      Ich weiß nun auch in welcher Datei der Fehler auftritt, und zwar in meiner Ajax-Datei.
                      Dort habe ich dann nach 'do' gesucht und einige Ergebnisse gefunden und zwar immer:
                      $_GET['do']

                      Kann das nun der Fehler sein?
                      Das ist kein do-Befehl, sondern lediglich ein Parametername.
                      Und Parameter kannst du benennen, wie du willst – do kann dabei unter normalen Umständen überhaupt kein Problem sein.

                      Es sei denn, dein Provider hätte irgendeinen Filter o.ä. eingerichtet, der Parameter verbietet, die häufig bei Angriffen auf eine bestimmte Software zum Einsatz kommen. Das halte ich hier zwar auch für extrem unwahrscheinlich – aber wenn du tatsächlich überzeugt bist, dass das die fehlerverursachende Stelle ist (was sich leicht überprüfen lassen sollte, in dem du den Parameternamen überall in etwas anderes abänderst) – dann unterhalte dich mit deinem Provider darüber.
                      I don't believe in rebirth. Actually, I never did in my whole lives.

                      Kommentar


                      • #12
                        Sonst vielleicht einfach mal den Anbieter fragen, falls noch nicht geschehen.

                        Oder wie gesagt eben mal gucken, ob der Ajax-Request selbst eine Fehlermeldung im Response-Body stehen hat. Das ist beim Debuggen von so was gerne mal der Fall.

                        Kommentar


                        • #13
                          Hast du auch im Ausgabequellcode nach Notices gesucht? Da diese keine Abbrüche verursachen sondern einfach nur Hinweise sind, können sie sich - je nachdem wie hier programmiert wurde - gerne mal im Quelltext verstecken, ohne in der normalen Ansicht im Browser sichtbar zu sein.
                          Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
                          Schön - etwas Geschichte kann ja nicht schaden.
                          Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

                          Kommentar


                          • #14
                            Hallo,

                            ich hab mir das ganze jetzt mal mit Firebug angeschaut, und wenn ich die "Funktionen" auf meiner Website ausführen will, die nichtmehr richtig funktionieren seit PHP 5.3, kommt folgende Fehlermeldung in Firebug:
                            "NetworkError: 500 Internal Server Error - http://meineurl.de/game/ajax_dyn.php?action=check_squad&ajax"

                            Was das jetzt genau bedeutet weiß ich leider noch nicht... bin jetzt mal weiter am suchen...

                            LG

                            Edit:
                            Als Antwort erhalte ich folgendes:
                            Code:
                            ["\n<script type=\"text\/javascript\">\n$(function(){\n$( \"input:checkbox\" ).button();\n\n\/\/$(\"button, input:submit, input:button\").button();\n$(\"input, textarea\").addClass(\"field text ui-widget-
                            content ui-corner-all\");\n\n\n$('[title]').each(function() {\nvar tooltipContent = $(this).attr('title');\n$(this).attr('title', '');\n$(this).wTooltip(\n{ content: tooltipContent, className: \"tooltip\", style: 
                            false, offsetY: 7, offsetX: 13});\n});\n\n\/\/$(\"img\").wTooltip({className: \"tooltip\", style: false, offsetY: 7, offsetX: 13 });\n\n$('.ui-state-default').hover(\n\t\t\t\tfunction(){ $(this).addClass('ui-
                            state-hover'); }, \n\t\t\t\tfunction(){ $(this).removeClass('ui-state-hover'); }\n\t\t\t);\n\n$('#checkall').toggle(\n\t\t\t\tfunction(){ $( \"input:checkbox\" ).attr(\"checked\", true).button(\"refresh\"); }, 
                            \n\t\t\t\tfunction(){ $( \"input:checkbox\" ).attr(\"checked\", false).button(\"refresh\"); }\n\t\t\t);\n});\n<\/script>\nTritium: \n<span class=\"fuel_enough\">193<\/span>\n<br>\nAnkunft:\n15.09.2012 
                            14:41:50 \n(<b>Dauer:  2m 10s<\/b>)\n<br><br>\n\n<input class=\"default_button ui-button ui-button-text-only ui-widget ui-state-default ui-corner-all\" name=\"submit_attack\" type=\"button\" 
                            value=\"Angreifen\" onClick=\"doAction('attack')\"> \n\n\n\n\n\n<input class=\"default_button ui-button ui-button-text-only ui-widget ui-state-default ui-corner-all\" name=\"submit_transport\" 
                            type=\"button\" value=\"Transport\" onClick=\"doAction('transport_show')\">\n<input class=\"default_button ui-button ui-button-text-only ui-widget ui-state-default ui-corner-all\" 
                            name=\"submit_station\" type=\"button\" value=\"Stationieren\" onClick=\"doAction('station')\">\n<input class=\"default_button ui-button ui-button-text-only ui-widget ui-state-default ui-corner-all\" 
                            name=\"submit_unittransfer\" type=\"button\" value=\"\u00dcberstellen\" onClick=\"doAction('unittransfer')\">\n"]
                            Falls das jmd. was sagen sollte, ich blick da nicht wirklich durch...
                            Zuletzt geändert von ImmerOn; 15.09.2012, 14:48.

                            Kommentar


                            • #15
                              als Antwort auf was? Ich dachte der Server schickt nen 500er? (was in aller Regel auf eine Fehlkonfiguration - an irgend einer Stelle - hinweist)

                              Kommentar

                              Lädt...
                              X