Hallo Leute
Ich versuche einen Updater für mein Tool zu schreiben.
Leider fehlt mir das PHP Wissen. PHP möchte ich nicht erlernen, das ist eine einmalige Sache.
Ich hoffe Ihr könnt mir ein wenig helfen damit es irgendwie läuft.
Es geht um folgendes.
Ich erfasse die Locale Version und die deklarierte Version auf dem Server ab.
Code:
Local := GetFileVersion(ParamStr(0));
Remote := GET('http://MeineAdresse.de/Serien_Downloader_Update/AU.php?' +
'datei=AutoUpdater.inf' +
'&zeile=6' , {Zeile}
'MeineAdresse.de', {Host}
''); {Refeerer}
Das funktioniert schon sehr gut. Meine PHP Datei macht das gut.
Damit habe ich die Versionen erfasst.
Nun möchte ich die Version auf dem Server die in Zeile Nr.6 gespeichert wurde mit der neuen ersetzen.
Also rufe ich noch mal meine PHP Datei auf, diesmal aber mit weiteren Parametern.
Code:
Response := GET('http:// MeineAdresse.de /Serien_Downloader_Update/AU.php?' +
'datei=AutoUpdater.inf' +
'&zeile=6' + {Zeile}
'&LocaleVersion=' + Local + {Local}
'&ServerVersion=' + Remote + {Remote}
'&update', {Befehl}
' MeineAdresse.de ', {Host}
''); {Refeerer}
Und hier ist der Hund begraben. Hier bekommen ich immer eine Fehlermeldung.
<!DOCTYPE HTML PUBLIC"-//IETF//DTD HTML ":=//EN">
Meine PHP Datei. (Habt Mitleid mit mir, das habe ich mir aus irgendwelchen Vorlagen zusammengeschustert)
PHP-Code:
<?php
define('FILE_PATH', 'data/');
$req = array('datei', 'zeile');
foreach($req as $p)
{if(!isset($_GET[$p]) || empty($_GET[$p])) { error(); }}
if(file_exists(FILE_PATH.$_GET['datei']) && is_numeric($_GET['zeile']))
{ $file = file(FILE_PATH.$_GET['datei']);
$inhalt = @$file[$_GET['zeile'] - 1];
if(!empty($inhalt))
{ echo $inhalt;
if(isset($_GET['del']))
{ unset($file[$_GET['zeile'] - 1]);
file_put_contents(FILE_PATH.$_GET['datei'], $file);}
if(isset($_GET['update']))
{ unset($file[$_GET['zeile'] - 1]);
file_put_contents(FILE_PATH.$_GET['datei'],
str_replace($_GET['ServerVersion'], $_GET['LocaleVersion'],
file_get_contents(FILE_PATH.$_GET['datei'])));}}
else
{ echo 'Zeile '.$_GET['zeile'].' in Datei '.$_GET['datei'].' nicht gefunden.';}}
else
{ echo 'Datei '.htmlentities($_GET['datei']).' nicht gefunden.';}
function error()
{ echo 'Bitte Datei und Zeile angeben.'; exit;}
Vielleicht habe ich die Sache falsch angepackt, falls es andere Wege gibt bitte auch vorschlagen.
Es geht eigentlich nur darum:
- Version auf dem Server erfragen
- Zeile Nr.6 auf dem Server umschreiben
Das sollte in einem Rutsch passieren.
Es sollte schon per PHP laufen, weil es in den meisten Fällen nur die Serverversion abgefragt wird. Das eine Mal abfragen und Update ausführen funktioniert nämlich mit meiner PHP, nur mein Upload der neuen Version noch nicht. Ich vermute es hat was mit dem Schließen der Datei zu tun, leider bin ich PHP- Niete.
Für jede Hilfe bin ich dankbar.