Automatisches Update

radarin

Angesehenes Mitglied
Hallo Liste

Wie kann ich es lösen, dass der Anwender beim Ausführen eines PHP-Scriptes autom. eine Meldung bekommt, wenn ich eine neuere Version bereitstelle als die von ihm aktuell verwendete..?

Gruss René
 
René

Da gibts div. Varianten...

Saubere Variante:
Z.B. auf deinem Server einen XML-Feed mit den verfügbaren Versionen aufbauen, und diesen dann mit dem Script jeweils einlesen und durcharbeiten (Dazu muss die eigene Version natürlich dem Script auch bekannt sein). Das ganze sollte aber keinesfalls bei jedem Durchlauf des Scripts passieren, da relativ langsam. Daher, wenn vorhanden, ins Adminpannel einbauen und Cachen. Auch absichern dass bei fehlen des Feeds das Script trotzdem weiterläuft
wink.gif


Simpel:
Du rufst von deinem Script wieder auf deinen Server, übergibst aber bereits die laufende Version des Scripts. (http://www.domain.tld/checkver.php?v=1.2.33). Die Antwort der Checkver.php wäre dann jeweils true oder false, 1 oder 0 etc..
 
Mit XML-Feeds hab ich mich noch nie auseinandergesetzt.

Mit der 'simplen' Variante leuchtet mir das ein, wenn ich die checker.php z.B. ineinem neuen Fenster aufrufe. Ich möchte es aber so lösen, dass der Inhalt der checker.php direkt in meinem Script verarbeitet wird, und ggf. einen Hinweis auf eine neuere Version ausgibt. Ein Include geht da ja nicht.

Beim Download von Scripts verlange ich keine eMail, ich würde nämlich eine falsche angeben, somit entfällt ein Newsletter. Und ebenfalls wenn das Script anderweitig verbreitet wird.
 
Also, ich habe dir eine mögliche, 'simple' Variante kurz aufgebaut:

Du legst bei dir eine Datei (z.B. Version.info) an, deren Inhalt alleine aus der aktuellen Versionsnummer besteht. Also z.B. 1.2.345

Danach kannst du in deinen Scripten den Inhalt dieser Datei direkt einlesen und als Variable verwenden. Die Fubktion dazu würde ungefähr so aussehen:

CODE function get_version() {

// Position des Checkers
$path_checker = "http://www.deinedomain.tld/foo/version.info";

// Öffnen einer URL möglich?
if (ini_get('allow_url_fopen') == 1) {

$fp = @fopen($path_checker,"r");
if ($fp) {
return fgets($fp,255);
fclose($fp);
} else {
return "Verbindungsfehler";
}
} else {
return "Version kann nicht automatisch ermittelt werden";
}
}


Jetzt kannst du das ganze bequem per
QUOTE
// Meine Version
$myversion = "1.2.2";

// Ermittle neuste Version
$neusteversion = get_version();

if ($neusteversion == $myversion) {
echo "Sie verwenden die aktuellste Version"
} else {
echo "Neue Version verfügbar oder Fehler: $neusteversion;
}



So sollte das ganze klappen. Kann natürlich noch verfeinert werden (Arbeiten mit Konstanten etc..)


BTW:
Gelegentlich würde ich mich trotzdem mal in XML einarbeiten. Wirst du kaum drum rumkommen in Zukunft..
 
Danke Alonso für deinen Aufwand. Werde das natürlich bei nächster Gelegenheit testen. Muss leider erst mal meine komplette PrivatePage von CFM auf PHP umcoden...
 
So, jetzt hab ich es getestet, funktioniert im wesentlichen genau so wie ich es mir vorgestellt habe. Zwei kleine Fehler haben sich bei dir auf die Schnelle eingeschlichen:

CODE
if ($neusteversion == $myversion) {
echo "Sie verwenden die aktuellste Version";
} else {
echo "Neue Version verfügbar oder Fehler: ".$neusteversion;
}




Jetzt kommt noch etwas Feinarbeit, damit z.b. keine Ausgabe erfolgt, wenn meine Domain nicht antwortet.

Danke für Deine Vorlage, Gruss René


Wer an einem detailierteren Tutorial zu diesem Thema interessiert ist, findet dies auf meiner Webseite:
Tutorial zu Scriptversionen
 
Zurück
Oben