Seite 1 von 1

Update-Dialog wird nicht angezeigt

Verfasst: Mo 28. Jan 2019, 14:52
von haydi
Huhuu,

Provider: Strato ... ja, ich weiß :(
webEdition Update von 6.4.4 nach 7.0.4 erfolgreich. Aktuelle Version ist also 7.0.4

Wenn ich nun jedoch den Update-Dialog aufrufe, erhalte ich 404er.
Der Pfad der beiden iFrames ist falsch. Habe schon versucht die Stellen zu finden, wo diese Pfade gesetzt werden. Kann mir jemand sagen, wo das geschieht? Dann könnte ich sie anpassen und das Update durchführen...

Liebe Grüße
Heidi

Re: Update-Dialog wird nicht angezeigt

Verfasst: Mo 28. Jan 2019, 16:14
von mokraemer
Hi Heidi,
welchen Pfad bekommst du denn hier gesetzt - das würde es evtl. einfacher machen. Der Pfad müßte ja so ähnlich lauten:

Code: Alles auswählen

/webEdition/liveUpdate/liveUpdate.php?section=update

Re: Update-Dialog wird nicht angezeigt

Verfasst: Di 29. Jan 2019, 07:47
von haydi
Heyhey :)

ja, der Pfad endet so. Er hat jedoch den Document Root vornedran. Er beginnt also nicht mit /webEdition.
Und der Document Root vornedran ist leider der Wert, der vermutlich bei $_SERVER['DOCUMENT_ROOT'] ausgespuckt wird. Aber Strato ist ja Strato, d.h. diesen Document Root darf man nicht verwenden. Er muss anders lauten.
Deshalb war/bin ich auf der Suche nach der Stelle, an der der Pfad gesetzt wird. Dort scheint im Code nicht die Ersetzung des manuell gesetzten Document Roots stattzufinden, sondern $_SERVER['DOCUMENT_ROOT'] wird hier wohl eingesetzt.
Weißt du, was ich meine?

Liebe Grüße
Heidi

Re: Update-Dialog wird nicht angezeigt

Verfasst: Di 29. Jan 2019, 10:33
von WBTMagnum
Hallo Heidi,

Schau mal hier:

Code: Alles auswählen

/webEdition/liveUpdate/templates/update.inc.php:34
Ich vermute mal, dass das $_SERVER['SCRIPT_NAME'] das Problem ist.


HTH,
Sascha

Re: Update-Dialog wird nicht angezeigt

Verfasst: Di 29. Jan 2019, 12:04
von haydi
Hallo Sascha,

vielen Dank für deine Antwort :)

Du scheinst in einer anderen webEdition Version geschaut zu haben? Bei mir ist an der Stelle nix mit $_SERVER['SCRIPT_NAME'].

Habe aber inzwischen gefunden, wo es zusammengesetzt wird:
/webEdition/liveUpdate/classes/liveUpdateFrames.class.php
Hier gibt es die Methode htmlFrameset() und hierin ist wiederum was mit
getScriptName()
Hierin steckt der falsche vorangesetzte Pfad. Jetzt muss ich nur noch finden, wo diese Funktion steckt, dann kann ich es korrigieren ...

Liebe Grüße
Heidi

Re: Update-Dialog wird nicht angezeigt

Verfasst: Di 29. Jan 2019, 12:09
von haydi
Okay, in /webEdition/we/include/we_global.inc.php
ab Zeile 1253 ist die Funktion getScriptName()
Und du hast Recht, Sascha, hier steckt was von $_SERVER['SCRIPT_NAME'] und $_SERVER['SCRIPT_FILENAME'] drin... Muss ich mir mal genauer anschauen... Aber hier dürfte der Hund begraben liegen :)

Re: Update-Dialog wird nicht angezeigt

Verfasst: Di 29. Jan 2019, 12:55
von WBTMagnum
Hallo Heidi,

Ich hatte in einer 6.3.8er geschaut. Das mit der 7er hatte ich sicherheitshalber überlesen :-D


Liebe Grüße,
Sascha

Re: Update-Dialog wird nicht angezeigt

Verfasst: Mi 30. Jan 2019, 00:08
von mokraemer
ich habs grad nicht auf dem Schirm, aber ich meine wir hatten an der Funktion noch mal was korrigiert. Die aktuelle Fassung ist:
https://sourceforge.net/p/webedition/so ... al.inc.php
Kannst ja einfach mal die neue Funktion rauskopieren und schauen ob dadurch das Problem bei 1&1 behoben ist.

Re: Update-Dialog wird nicht angezeigt

Verfasst: Mi 30. Jan 2019, 08:36
von haydi
Huhuu,

hatte es gestern geschafft.
Habe die Zeile geändert und konnte danach erfolgreich ein Update durchführen.

Code: Alles auswählen

function getScriptName($param = false){
	//return '/' . ltrim((isset($_SERVER['SCRIPT_FILENAME']) ? str_replace('/home/strato/www/xxxx/htdocs/xxx', '', $_SERVER['SCRIPT_FILENAME']) : $_SERVER['SCRIPT_NAME']), '/') . // HEW modifikation 29.01.19
	return '/' . ltrim((isset($_SERVER['SCRIPT_FILENAME']) ? str_replace('/home/strato/http/power/rid/xxxx/htdocs/xxx', '', $_SERVER['SCRIPT_FILENAME']) : $_SERVER['SCRIPT_NAME']), '/') .
		($param && !empty($_SERVER['QUERY_STRING']) ? '?' . $_SERVER['QUERY_STRING'] : '');
}
Die auskommentierte Zeile ist die Originalzeile, darunter ist meine modifizierte. Im Prinzip hatte ich den ersten Parameter in der str_replace Funktion, was dem manuell eingetragenen Document-Root entspricht, gegen den aktuell angezeigten Wert von $_SERVER['DOCUMENT_ROOT'] ersetzt. Ja, vermutlich hätte man auch gleich die Server-Variable eintragen können.
Jedenfalls hat es so funktioniert! :)

@marc: Jetzt nach dem Update ist die Methode auch aktualisiert.

Bei Fragen, fragen.

Liebe Grüße
Heidi

Re: Update-Dialog wird nicht angezeigt

Verfasst: Mi 30. Jan 2019, 11:41
von mokraemer
dann hat sich wohl der docroot geändert.

Re: Update-Dialog wird nicht angezeigt

Verfasst: Mi 30. Jan 2019, 12:16
von haydi
Huhuu,

naja, das ist ein bisschen komplizierter bei Strato.
Man soll eben bei der Installation nicht den normalen docroot nehmen, der einem unter der Server-Variable angezeigt wird zum ersetzen, da sich dieser eben jederzeit ändern kann.
Man soll stattdessen eine "selbstgebastelte" Geschichte einsetzen. Das wird einem bei Strato auf irgendeiner Hilfsseite erklärt... Man muss die beiden Anfangsbuchstaben der Domain nehmen, dann einen Slash, dann.... Dieser Document Root ändert sich nicht. Er entspricht aber NICHT der Server-Variable document root. Ja, klingt komisch, ist aber so.
Wenn man also nun den Inhalt der server variable nimmt und mit dem bei der installation ersetzten docroot vergleicht, wird dies immer und stets schiefgehen.
Ich hoffe, ich habe mich einigermaßen verständlich ausgedrückt.
Falls noch Interesse an weiterführenden Infos besteht, suche ich gerne welche raus. Dann einfach bitte melden.

Liebe Grüße
Heidi