php-aussetzer beim freehoster

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

  • php-aussetzer beim freehoster

    hallo forum - ein (auf einem uni-server) ausgetestetes php-script läuft bei einem freehoster nur gelegentlich: soll in eine txt-datei schreiben (hit-zähler als test, chmod 777). das funktioniert ein-, maximal zweimal. dann ist schluss. nach ca. 1 stunde klappt es wieder: ein- oder zweimal, usw. - lustig, nicht?

    das problem ist offenbar auch browserabhängig: von firefox 1.8.2 wird das script stets ausgeführt. inet-explorer 7.0, maxthon 1.6.3, opera 9.25 verweigern das schreiben (trotz chmod 777), können das von firefox geschriebene aber per php-script auslesen. - das ist möglicherweise auch die erklärung für das gelegentliche funktionieren von iexplore, maxthon und opera: vielleicht lesen diese nur die zwischenzeitlich mal mit firefox geschriebenen daten aus.

    schreib- und lesescript haben, wie gesagt, auf einem uni-server bisher immer funktioniert, auch mit iexplore, maxthon und opera.

    gibt es für die aussetzer eine erklärung, und was kann man dagegen tun? - für Eure infos vielen dank. - gruß wadiwaphp-aussetzer beim freehoster

  • #2
    Code zeigen!

    Kommentar


    • #3
      <html>

      <body bgcolor="#FFFFCC">

      <?php

      $u = $_GET["usr"];
      $user = "daten/$u.txt";

      if (!file_exists($user))
      {
      fopen($user, "w+");
      }

      $file = fopen($user, 'r+');
      $ablesen = fread($file, 4);
      $ablesen++;
      rewind($file);
      fwrite($file, $ablesen);
      fclose($file);

      ?>

      Kommentar


      • #4
        Ich würd sagen, da fehlt ein fclose:

        fopen($user, "w+");

        Du öffnest die Datei, schließt sie aber nicht und versuchst sie kurz darauf nochmal zu öffnen. Ich glaub nicht, dass das geht.

        Außerdem ist das sehr fahrlässig:
        $u = $_GET["usr"];
        $user = "daten/$u.txt";

        Man darf nicht Benutzereingaben direkt für Dateioperationen benutzen! Das ist eine große Sicherheitslücke.

        Außerdem hat der Browser genau nix mit PHP zu tun. Das PHP Skript wird am Server ausgeführt und nicht im Browser. Firefox, IE, Opera, usw. bekommen nur HTML.

        Kommentar


        • #5
          Code Tags.

          //Verdammt, ich sitz schon wieder zulange hier
          Um welchen Freehoster handelt es sich?

          Kommentar


          • #6
            fclose hatte ich gerade erst eingespart. das problem bestand aber vorher schon, mit diesem code:

            .......

            $file = fopen($user, 'r+');
            $counter = fread($file, 4);
            $counter++;
            rewind($file);
            fwrite($file, $counter);
            fclose($file);
            ?>

            UND: dass eine browser-abhängigkeit besteht, hat mich selbst überrascht ('verarbeitung nur auf dem server'), aber das ist ja das eine problem, dass firefox funzt, die andern nicht; das zweite problem ist die freehosterseite. - die sicherheitsfragen verstehe ich, sind in meinem fall aber nicht wichtig.

            das problem trat bei mir mit folgenden freehostern auf: bplaced, 111mb, das-hosting, funic.

            Kommentar


            • #7
              Naah. Das kann nicht Browserabhängig sein.
              Bitte vollständige Fehlermeldungen posten.

              Kommentar


              • #8
                Was sagt der Error Log dazu?

                Kommentar


                • #9
                  es gibt keine fehlermeldung, aber eben auch keine reaktion auf das script. der counter zählt nicht weiter, außer beim ersten aufruf. nur firefox, wie gesagt, macht munter weiter. - macht mich auch sehr stutzig.

                  Kommentar


                  • #10
                    Was meinst du mit "macht weiter"?

                    Kommentar


                    • #11
                      Dann schraube das error_reporting hoch, und wenn du wirklich nicht mehr weiterkommst mache detaillierteste Testausgaben:

                      $_GET["user"] ausgeben
                      Das Verzeichnis "daten/" mit glob() ausgeben
                      Mit file_exists prüfen, ob die Datei auch wirklich existiert
                      mit filesize() die Größe ausgeben
                      mit filemtime() das lettze Änderungsdatum

                      Den Zählerstand vorher und nachher ausgeben
                      Den Inhalt der Datei vorher und nachher ausgeben

                      Wenn es dann immer noch nicht klappt, publiziere die Testausgaben hier.
                      Zuletzt geändert von pekka; 26.04.2008, 22:05.

                      Kommentar


                      • #12
                        diese spezialtests beherrsche ich nicht. aber selbstverständlich habe ich die jeweiligen txt-dateien in 'daten' auch immer direkt auf dem server geprüft, ob das script etwas eingeschrieben hat. das läuft dann wohl in etwa auf dasselbe wie diese tests hinaus.

                        in diesem sinn nochmals zur vermuteten browserabhängigkeit: das problem besteht also nicht im datenabruf (da könnte man sich gut browserzicken vorstellen), sondern im schreiben auf dem server. ich könnte mir jetzt vorstellen, dass der freehoster unterschiedlich auf die browser reagiert, also einige nicht schreiben lässt. wie eingangs bemerkt: auf dem perfekten uni-server liefen ALLE browser problemlos.

                        Kommentar


                        • #13
                          Gib mal einen Link auf das Skript.

                          Kommentar


                          • #14
                            Original geschrieben von wadi
                            diese spezialtests beherrsche ich nicht.
                            Was du mit "spezialtests" bezeichnest ist normales Debuggen. Ohne dem geht kein Programmieren. Es klingt zwar hart, aber entweder du lernst es oder lässt das Programmieren ganz bleiben. Denn das was du machst (im Dunklen rumstochern und raten) macht keinen wirklichen Sinn.
                            Zuletzt geändert von h3ll; 26.04.2008, 22:35.

                            Kommentar


                            • #15
                              @h3ll: ACK
                              Und der besondere Service am Abend: Alle Links, die es braucht.

                              Glob mit Beispielen
                              File_exists mit Beispielen
                              Filesize mit Beispielen
                              Filemtime mit Beispielen

                              das ist simpelst, nur etwas Fleißarbeit.

                              Kommentar

                              Lädt...
                              X