Ankündigung

Einklappen
Keine Ankündigung bisher.

findet jemand den fehler?

Einklappen

Neue Werbung 2019

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

  • findet jemand den fehler?

    ich hab folgendes Problem:
    ich weiß, dass im folgenden PHP Script was nicht richtig funktioniert,
    allerdings kann ich den Fehler nicht selbst suchen, da dieser nur auf nem anderen Server auftritt (auf dem läuft PHP5!)

    Hier mal der PHP-Code:
    PHP-Code:
    <?php
        
    function decrypt($result_id$id2$step) {
            return 
    $result_id-$id2+$step;
        }

        require_once(
    "config.php");
        
    mysql_connect($GLOBALS["mysql_server_adress"], $GLOBALS["mysql_user"], $GLOBALS["mysql_password"]);
        
    mysql_select_db($GLOBALS["mysql_databasename"]);
        
        if(isset(
    $_POST["time"])) {
            
    $num mysql_num_rows(mysql_query("SELECT step FROM game_session WHERE time='".$_POST["time"]."'"));
            if(
    $num == 1) {
                
    $session_object mysql_fetch_object(mysql_query("SELECT * FROM game_session WHERE time='".$_POST["time"]."'"));
                if(
    $session_object->step $GLOBALS["needed_requests"]) {
                    if(isset(
    $_POST["session_id"])) {
                        if(
    decrypt($_POST["session_id"], $session_object->new_id$session_object->step) == $session_object->session_id) {
                            
    mt_srand((double)microtime()*1000000);
                            
    $new_id mt_rand(100000999999);
                            
    $new_step $session_object->step 1;
                            
                            
    mysql_query("UPDATE game_session SET step='".$new_step."', session_id='".$_POST["session_id"]."', new_id='".$new_id."' WHERE time='".$_POST["time"]."'");
                            
                            echo 
    "result=ok&new_id=".$new_id;
                        }
                        else {
                            echo 
    "result=nok";
                        }
                    }
                    else {
                        echo 
    "result=nok";
                    }
                }
                else {
                    if(isset(
    $_POST["session_id"]) && isset($_POST["points"]) && isset($_POST["nick"]) && isset($_POST["email"])) {
                        
    $_POST["points"] = decrypt($_POST["points"], $session_object->new_id$GLOBALS["needed_requests"]);
                        
    mysql_query("INSERT INTO highscore (nick, points, email, time) VALUES ('".$_POST["nick"]."', '".$_POST["points"]."', '".$_POST["email"]."', UNIX_TIMESTAMP())");
                    }
                    else {
                        echo 
    "result=nok";
                    }
                }
            }
            else {
                echo 
    "result=nok";
            }
        }
        else {
            echo 
    "result=nok";
        }    
    ?>
    Ihr müsst den jetzt nicht verstehen, oder so.
    Ihr solltet mir nur folgende Fragen beantworten:

    Könnte es sein, dass der Script wegen irgendwas in PHP5 nicht läuft, denn ich hab den selbst bisher nur auf PHP4 getestet?
    Oder könnte es eine php.ini Einstellung sein, die einen Fehler in diesem Script verursachen könnte?

    Wie gesagt auf meinem Server läufts eben.

    Schnelle Hilfe wäre extrem wichtig.
    Danke.


  • #2
    also es läuft aber wir sollen nen fehler suchen?
    probiers einfach auf auf php5 space
    Klick mich


    Kommentar


    • #3
      woher soll ich so schnell einen nehmen.
      haha

      mein Problem ist auch, dass ich noch was für php5 gemacht hab, und deshalb nicht genau weiß, was nicht abwärtskompatibel sein sollte.

      Kommentar


      • #4
        hol dir halt zum testen schnell irgend nen free hoster mit php5, gibts wie meer am sand.. oder so.. sand am meer.. genau...
        Klick mich


        Kommentar


        • #5
          Zitat von El Barto
          ich weiß, dass im folgenden PHP Script was nicht richtig funktioniert
          Die Fehlerbeschreibungen werden hier ja immer differenzierter...

          Kommentar


          • #6
            keine quote, code, php tags

            argh.

            das wird voll breit dann.

            was soll der schei.ß
            Klick mich


            Kommentar


            • #7
              Woran siehst du denn, dass es nicht funktioniert? (ich kann auch blöde Fragen stellen )

              Kommentar


              • #8
                Bei der If-Abfrage läuft was schief, da steigt er ins else, was er eigentlich nicht dürfte:

                PHP-Code:
                <?php
                if(decrypt($_POST["session_id"], $session_object->new_id$session_object->step) == $session_object->session_id) { 
                ?>

                Kommentar


                • #9
                  Das liegt möglicherweise daran, dass die Bedingung falsch ist.

                  Kommentar


                  • #10
                    Re: findet jemand den fehler?

                    Zitat von El Barto
                    ich weiß, dass im folgenden PHP Script was nicht richtig funktioniert,
                    ...
                    Bei der If-Abfrage läuft was schief, da steigt er ins else, was er eigentlich nicht dürfte
                    Fatal error: Maximum execution time of 30 seconds exceeded in mod glaskugel on line unknown.

                    Kommentar


                    • #11
                      Richtig debuggen
                      1. Man bemerkt, dass ein Skript nicht das tut, was es soll.
                      2. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
                      3. An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde (oder auch nicht).
                      4. Schritt 3 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
                      5. Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
                      6. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
                      7. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.

                      Die Ausgaben per echo kann man sich ersparen, in dem man einen Debugger benutzt, was eigentlich selbstverständlich sein sollte.

                      Und wenn du mal schnell was testen willst: XAMPP, siehe http://www.apachefriends.de

                      Gruß
                      phpfan

                      Kommentar

                      Lädt...
                      X