Versionsprüfung

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

  • Versionsprüfung

    Hallo,

    ich arbeite mit an der entwicklung eines Boards.

    Jetzt würde ich gern eine Versionsprüfung einbauen.

    Ich hab mir das so vorgestellt das im Adminbereich unserer user ein Hinweis (evtl. roter Text "Du benutzt eine veraltete Version 'V 1.0' ! Aktuell ist aber 'V 2.0') erscheind.

    Wie kann ich das realisieren?

    Am einfachsten ist es doch sicherlich wenn ich bei uns eine Datei ablege die, die aktuelle Versionsnummer beinhaltet und die einzelnen Boards diese mit ihrer eigenen vergleichen. Oder?

    Aber wie müsste ich da ran gehen? Wie würde der Code aussehen den ich mit in dem Adminbereich einbauen muss?

    MfG Nordin

  • #2
    Re: Versionsprüfung

    Original geschrieben von Nordin
    Aber wie müsste ich da ran gehen? Wie würde der Code aussehen den ich mit in dem Adminbereich einbauen muss?
    im zweifel so, wie du es beschrieben hast ...
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      Ha ha... ja nee schon klar *g*

      aber wie vergleiche ich den inhalt mit der einen Datei (die extern auf einem anderm Server läuft) mit der Datei die local (dort liegt auf das Board) läuft??

      Kommentar


      • #4
        Na du liest die datei auf DEINEM zentralen Server (nordin.de/software/latestversion.txt) ein, dann hast du $newversion, das musst du dann nur noch mit $localversion aus der Config vergleichen?

        Kommentar


        • #5
          Einfach:

          - Vom Board aus die dort vorhandene Datei lesen (installierte Versionsnummer)
          - Vom Board aus die Datei auf deinem Server lesen (aktuelle Versionsnummer)
          - Vergleichen mit z. B. version_compare

          Toll:
          Im Board einen SOAP-Client einbauen und auf deinem Server einen SOAP-Server implementieren
          Ich denke, also bin ich. - Einige sind trotzdem...

          Kommentar


          • #6
            Super!

            Ich dank euch erstmal, werd es gleich mal testen...

            Kommentar


            • #7
              Also ich hab es erstmal so gemacht zwecks testen und so...

              PHP-Code:
              <?php
              $version1 
              "1.4.2"# User-Board (lokaler server)
              $version2 "1.4.0"# Neue Version (externer server)

              $erg version_compare($version1$version2);
              #  1 = der zweite wert ist kleiner als der erste
              # -1 = der zweite wert ist größer als der erste
              #  0 = beide werte sind gleich
              echo "DEBUG: \"$erg\"<br><br>";



              if(
              $reg "-1")
                      {
                  echo 
              "Deine Version ist veraltet (Ver. \"$version1\".) die neuste ist \"$version2\".";
                  }

                  elseif(
              $reg "1")
                  {
                  echo 
              " als die originale Version von IntegraMOD.nethb.de, das kann nicht sein!";
                  }

                  elseif(
              $reg "0")
                  {
                  echo 
              "Du hast die aktuellste Version von IntegraMOD (Ver. \"$version2\").";
                      };
              ?>
              Das komische ist nur das der das irgendwie nicht richtig erkennt... bzw. so wie es jetzt da steht, sagt er "Deine Version ist veraltet..." statt "Deine Version ist neuer..." wo liegt der fehler???

              Und dann noch eine Frage:
              Wie mache ich das, das der die "$version2" dann aus einem externem server holt z.B. aus "nordin.de/software/latestversion.txt" ?

              Kommentar


              • #8
                == zum vergleichen,
                = zum zuweisen

                und das $erg ist ein integer oder (wenn man so will) boolean, aber niemals ein string.

                Kommentar


                • #9
                  wie du dir die latest version holst?

                  ganz einfach, entweder
                  file() oder fopen() oder mysql_connect() [wobei die MySQL variente nur futzt, wenn du eigene benutzer erstellen kannst...]
                  Weil es manche brauchen: www.duden.de

                  Quero

                  Kommentar


                  • #10
                    Aha danke hab es jetzt so gemacht und es rennt...

                    PHP-Code:
                    <?php
                    $version1 
                    "1.4.0"# lokaler Server
                    $version2 "1.4.0"# externer Server

                    if(version_compare($version1$version2) == "-1")
                        {
                        echo 
                    "Deine Version ist veraltet (Ver. \"$version1\".) die neuste ist \"$version2\".";
                        }

                        elseif(
                    version_compare($version1$version2) == "1")
                        {
                        echo 
                    "Deine Version ist neuer als die originale Version von IntegraMOD.nethb.de, das kann nicht sein!";
                        }

                        elseif(
                    version_compare($version1$version2) == "0")
                        {
                        echo 
                    "Du hast die aktuellste Version von IntegraMOD (Ver. \"$version2\").";
                        };
                    ?>

                    Kommentar


                    • #11
                      version_compare() soll nur ein mal ausgeführt werden.
                      das ergebnis dieser funktion ist kein string.

                      Kommentar


                      • #12
                        wie jetzt? habsch was falsch gemacht?? Weil geht doch!!

                        Kommentar


                        • #13
                          Weil geht doch!!
                          ist das schlechteste argument, das es gibt.
                          OffTopic:
                          außer - "aber auf einem anderen server geht es doch"


                          anfangs hattest du es mit $erg richtig gehabt. warum jetzt nicht mehr?

                          was verstehst du daran nicht, dass
                          Code:
                          "-1"
                          ein string ist, und
                          Code:
                          -1
                          ein integer?

                          Kommentar


                          • #14
                            Ok gut... ich steh irgendwie auf dem schlauch... also wieder alles rückgängig... und öhm mit "fopen()" hmmm irgendwie funzt das nicht... da kommt:

                            Warning: fopen(): URL file-access is disabled in the server configuration in ...

                            Warning: fopen(http://mien-server.de/verinfo.txt): failed to open stream: no suitable wrapper could be found in ...

                            PHP-Code:
                            <?php
                            $path 
                            ="http://mein-server.de/verinfo.txt";
                            $version1 "1.4.0"# (lokaler Server)
                            $version2 fopen($pathr); # (externer Server)

                            $erg version_compare($version1$version2);
                            #  1 = der zweite wert ist kleiner als der erste
                            # -1 = der zweite wert ist größer als der erste
                            #  0 = beide werte sind gleich
                            echo "DEBUG: \"$erg\"<br><br>";



                            if(
                            $reg "-1")
                                {
                                echo 
                            "Deine Version ist veraltet (Ver. \"$version1\".) die neuste ist \"$version2\".";
                                }

                                  elseif(
                            $reg "1")
                                {
                                echo 
                            "Deine Version ist neuer als die originale Version von IntegraMOD.nethb.de, das kann nicht sein!";
                                }

                                elseif(
                            $reg "0")
                                {
                                echo 
                            "Du hast die aktuellste Version von IntegraMOD (Ver. \"$version2\").";
                                };
                            ?>

                            Kommentar


                            • #15
                              siehst du eigentlich selbst, was du tippst, oder wird dir alle über einen kaputten screenreader vorgelesen??

                              was ist $reg? warum wieder die zuweisung?

                              fopen() etc. wird bei dir wegen den server konfoguration nicht klappen.
                              evtl. mit sockets versuchen.

                              Kommentar

                              Lädt...
                              X