Hilfe - Menulinks zerschossen

Gast

ist angekommen - natürlich im Spam-Ordner   :-D

gib mir mal 10 min

astricia

Zip-Datei und Datenbank sind per Wetransfer unterwegs zu dir. Bin gespannt....

LG,
Astrid

Gast

Quote from: astricia on February 13, 2019, 05:19:16 PM


<section class="full columns">
<?php
    
ob_start();
    page_content(1);
    $sContent1 ob_get_clean();
    if ($sContent1) {
        echo PHP_EOL.$sContent1.PHP_EOL.PHP_EOL;
    }
?>

</section>


Ist doch geschlossen, oder?

Jepp, ist geschlossen
Ist mir aber auch schon passiert, das ich bei Copy&Paste von einer anderen index.php eine Zeile vergessen hatte
Gerad, wenn man dann mehr als einen Block hat

astricia

Quote from: jacobi22 on February 13, 2019, 05:09:37 PM
Beispiel für Letzteres (4.)
definiert man die Blöcke über ob_start(), müssen sie wieder geschlossen werden, sonst überschreiben sie sich gegenseitig

ob_start();  //fetch MainContent
page_content(1);
$page_MainContent = ob_get_clean();


zum Einlesen und Schließen gäbe es mehrere Möglichkeiten

z.b. auch

ob_start();
page_content(1);
$page_MainContent = ob_get_contents();
ob_end_clean();


und als theoretisches Beispiel

wenn ich annehme, das auf den Seiten wie start.php nur ein Block aktiv ist, im Template aber mehrere geschalten werden, könnte das schon eine Ursache sein.

Hmm... ja, ich definiere die Blöcke über ob_start. Mache ich eigentlich immer so - hat noch nie Probleme gegeben.

Die start.php hat 8 Blöcke! 5 verschiedene Blöcke, einer wird 2 mal und einer 3 mal aufgerufen.

Der erste Block sieht in der index.php konkret so aus:

<section class="full columns">
<?php
    
ob_start();
    page_content(1);
    $sContent1 ob_get_clean();
    if ($sContent1) {
        echo PHP_EOL.$sContent1.PHP_EOL.PHP_EOL;
    }
?>

</section>


Ist doch geschlossen, oder?


Quote
Was mir aber nicht gefällt, ist der Abbruch im Script, denn selbst wenn man hier einen Block überschreiben würde, wäre dieser vielleicht leer.

Der Abbruch geschieht offensichtlich nur beim Seitentyp Menu-Link oder wenn man einen Code-Block mit header Location einfügt. Da du ja sagtest, Menu-Link funktioniert auch über header-Location, muss es ja irgendwie damit zu tun haben...

Zip kann ich dir gerne fertig machen.

LG,
Astrid

evaki

#50
Sowas ist nicht vom Scanner, der nur auf XSS un son Krams guckt.
ICH WAR DAS NICHT  :-D :-D :-D Das war'n die anderen  8-)

Quotewar das nicht die Alternativ-(Datei-)Suche, bei Adress-Tipfehlern? Wenn ja, würde ich das eher nicht aktivieren
Ist aktiviert!
Wobei ich mittlerweile glaube -oh Heiliger-, daß es allein der Serverkonfiguration geschuldet ist. Soviel kann man mit keinem CMS verkehrt machen. Gibts noch mögliche Fehlerquellen beim Multilanguage-Modul?

Vielleicht auch mal ein Rebuild (access-Files) machen?
Doof, daß man da nicht reingucken kann. Möglich wäre ja ein "Schuppen vonne Augen", un so...
MfG. Evaki

Gast

Quote from: astricia on February 13, 2019, 04:46:31 PM
Wrapper funktioniert auch.

Verdammt........ 

Wrapper ist ein reiner IFrame, der, der Erfahrung nach oft eher unterbunden wird im Vergleich zum header:location(), was eine reine PHP-Umleitung ist

Rein von der Logik her gibt es doch nur wenige Stellen in WB
1. Datenbank liefert falsche Werte, entweder nicht eingetragen oder falsch verarbeitet
2. Das Modul wertet diese Daten falsch aus
3. es läuft im framework-Ordner falsch, wo die Seiten zusammengebaut werden.
4. Fehler im Template bei der Zuordnung der Page-Contents

2 und 3 können wir wohl ausschließen, hast du ja getauscht

Beispiel für Letzteres (4.)
definiert man die Blöcke über ob_start(), müssen sie wieder geschlossen werden, sonst überschreiben sie sich gegenseitig

ob_start();  //fetch MainContent
page_content(1);
$page_MainContent = ob_get_clean();


zum Einlesen und Schließen gäbe es mehrere Möglichkeiten

z.b. auch

ob_start();
page_content(1);
$page_MainContent = ob_get_contents();
ob_end_clean();


und als theoretisches Beispiel

wenn ich annehme, das auf den Seiten wie start.php nur ein Block aktiv ist, im Template aber mehrere geschalten werden, könnte das schon eine Ursache sein.
Was mir aber nicht gefällt, ist der Abbruch im Script, denn selbst wenn man hier einen Block überschreiben würde, wäre dieser vielleicht leer.

Ich kann dir anbieten, mit einem Zip der Dateien (ohne /media-Ordner) und einem Backup der Datenbank da mal rein zu schauen. Ist es ein WB-Problem, sollte es bei mir auch auftreten
Mailadresse: uwe@jacobi22.com


astricia

Quote from: evaki on February 13, 2019, 04:41:58 PM
QuoteWer von euch hat das Kontaktformular ausgetestet und irgendwelche kryptischen Dinge darüber verschickt?
Das könnte mein Scanner gewesen sein, kannst Du aber im LOG nachschauen, ob er das war.
Wenn das Teil mit Schutz (Captcha) versehen ist, sollte kein Absenden möglich sein, also bei Dir nix landen!
MfG. Evaki

In welchem Log? In der Historie von Miniform, sehe ich 2 Einträge, z.B. folgendes:

Datenschutz:   akzeptiert
Email:   sample@email.tst
Message:   20
Name:   lgomhavu
Timestamp:   WEB-INF/web.xml?

Captcha ist eigentlich drin. Mail ist aber beim Kunden offensichtlich angekommen, und gespeichert ist es auch.

astricia

Wrapper funktioniert auch. Habe ihn auf die Unterrichtsseite gelegt - und zwar in einen Abschnitt 1, der oberhalb des fehlerhaften Code-Abschnittes liegt.

Beim Code-Abschnitt
header('Location: http://www.example.com/');
exit;

bricht er die Ausgabe ab.

Gast

Quote from: evaki on February 13, 2019, 04:41:58 PM
Muß eigentlich Multiple Choices (Apache) aktiviert sein?

war das nicht die Alternativ-(Datei-)Suche, bei Adress-Tipfehlern? Wenn ja, würde ich das eher nicht aktivieren

astricia

Habe jetzt erst mal die test.php wie gewünscht auf die de/start.php umgeleitet. Funktioniert auch problemlos.

Wrapper kommt dann als nächstes.

evaki

#44
Muß eigentlich Multiple Choices (Apache) aktiviert sein? (IST AKTIVIERT!)

QuoteWer von euch hat das Kontaktformular ausgetestet und irgendwelche kryptischen Dinge darüber verschickt?
Das könnte mein Scanner gewesen sein, kannst Du aber im LOG nachschauen, ob er das war.
Wenn das Teil mit Schutz (Captcha) versehen ist, sollte kein Absenden möglich sein, also bei Dir nix landen!
MfG. Evaki

Gast

Quote from: astricia on February 13, 2019, 04:37:50 PM
Wer von euch hat das Kontaktformular ausgetestet und irgendwelche kryptischen Dinge darüber verschickt?

ich nicht - ich schwöööööre

probierst mal den Wrapper noch?

Gast

Quote from: astricia on February 13, 2019, 03:21:49 PM
Provider ist 1&1 (Ionos). Bin etwas irritiert, das ist ja jetzt kein kleiner Hoster... Und wie gesagt, bis gestern funktionierte das auch. Ob die da gestern was umgestellt haben?

erstmal nur eine Vermutung...
aber technisch natürlich möglich, das man da gestern was aktualisiert hat, ist ja auch nur Software

aber die Problemchen mit zu scharfer mod_secure sind ja bekannt und auch hier in diversen Postings schon vorgekommen
https://forum.websitebaker.org/index.php/topic,30507.msg212599.html#msg212599

Läuft man mal durch die Stadt, sieht mal überall Leute mit dem Handy vor'm Gesicht, da wird mit der Liebhaberin telefoniert oder ein Geschäftsabschluß gemacht, alles kein Problem. Kann man überall zuhören. Aber wehe, es geht um Websicherheit, dann wird aus der Homepage des Dackelvereins ein Hochsicherheitsblock. Früher hat man eigentlich nie etwas von mod_secure oder ModSecurity gehört, bei manchen Anbietern war es gar gegen Aufpreis mit drin, heute schaut das anders aus. Verhält sich analog zu MysqlStrict - wer hatte das denn vorher? Heut werden es immer mehr Leute, die davon berichten. Und i.d.R. sind es auch die gleichen Provider. Es ist ja auch nichts schlechtes, nur wissen muß man es halt. Im Falle von MysqlStrict reicht eine saubere Programmierung, aber bei einem header:Location(), zumal der noch auf der eigenen Domain bleibt, gibt es eigentlich nix, was man auf die Schnelle probieren kann, ohne sich das System und die spätere Upgradeverträglichkeit zu vermurksen.

Schau erstmal, was der Test ergibt.
Sollte das mit example.com funktionieren, ändere die Adresse mal in eine seite dieser Domain, die auf jeden Fall komplett angezeigt wird, ich glaube, die start.php war z.b. so eine Seite

Wrapper wäre dann analog, aber mit WB-System

astricia

So, bin zurück und habe die test.php in das WB-Stammverzeichnis gelegt.

Schaut hier: http://neu.ciriaco.de/test.php

Es scheint also doch nicht am Server, sondern irgendwo bei WB zu liegen.... :-(

Wer von euch hat das Kontaktformular ausgetestet und irgendwelche kryptischen Dinge darüber verschickt? Mein Kunde mailt mir gerade, dass er heute Mittag komische Mails bekommen hat..... ;-) Nun ja, das Formular funktioniert jedenfalls... ;-)




dbs

Bei einem 1&1 Kunden mit Tarif "Homepage Perfect" (Vetragsbeginn 2009) klappt das Testscript.
[url="https://onkel-franky.de"]https://onkel-franky.de[/url]

astricia

Provider ist 1&1 (Ionos). Bin etwas irritiert, das ist ja jetzt kein kleiner Hoster... Und wie gesagt, bis gestern funktionierte das auch. Ob die da gestern was umgestellt haben?

Probiere das nachher gleich aus mit der test.php - bin jetzt nur erst mit meinem Sohn beim Zahnarzt. Rückmeldung dauert also etwas.

Gast

Quote from: astricia on February 13, 2019, 02:19:46 PM
Ich glaube, du bist der Lösung auf der Spur ... nur, was mache ich jetzt?

den Provider informieren, der soll mal eine Stufe runter stellen

Um WB komplett auszuschließen, könnte man als Gegenprobe auch eine einfache PHP-Datei erstellen, die außerhalb vom WB-System ins WB-Root-Verzeichnis gelegt wird. z.b. als test.php benennen und im Browser aufrufen, für diese Domain hier dann mit

http://neu.ciriaco.de/test.php

Normal wäre der Inhalt von http://www.example.com (Bild oben) oder eben nichts, wenn header: Location() unterbunden wird

Inhalt der Datei

<?php  // gehoert zum Code - mit kopieren

/* 
 * nur zum Test
 */
$sTargetUrl 'http://www.example.com';
header('Location: '.$sTargetUrl);
exit;


astricia


astricia

Quote from: dbs on February 13, 2019, 01:38:33 PM
Auch mal doof gefragt, die start.php ist öffentlich?

Logisch - das ist die Home-Seite, hab nur den Menütitel durch ein Font-Awesome-Icon ersetzt.

astricia

Quote from: jacobi22 on February 13, 2019, 02:02:30 PM
mach doch zum Test mal einen Code-Abschnitt mit solchem Code

header('Location: http://www.example.com/');
exit;


Habe ich jetzt auf der Unterseite "Unterricht" so gemacht - und zwar als Code-Abschnitt vor dem eigentlichen Text.

Ergebnis, siehe hier: http://neu.ciriaco.de/pages/de/unterricht.php
Auch diese Seite bricht direkt vor dem Aufruf des ersten Abschnitts ab.

Ich glaube, du bist der Lösung auf der Spur ... nur, was mache ich jetzt?

Gast

also von meiner Seite bleibt jetzt nur noch mod_secure

der Menu-Link macht ja einen header('Location: '.$target_url);

Wie die Kontrolle mit der Page-ID oben zeigte, ist das Ziel oder zumindest dessen Page-ID ja vorhanden. Von daher bleiben nur zwei Möglichkeiten
Entweder der Page-Link wird nicht ausgelesen (DB-Tabelle pages) oder mod_secure unterbindet header:location

mach doch zum Test mal einen Code-Abschnitt mit solchem Code

header('Location: http://www.example.com/');
exit;


nimm aber eine Domain, die du mit Sicherheit erreichen kannst und auf keinen Fall google.com

example.com würde so aussehen



alternativ ginge auch der Wrapper,

Gast

der BrokenLink ist Folge des Abbruch's in page_content(1)
Im Normalfall läuft der WbLink-filter einmal am Beginn des Ladens der Seite und einmal direkt kurz vor dem Ende

evaki

Laß das mal durch 'nen Validator laufen ('DIV-Fehler u.a.)
ansonsten
broken link:
/pages/de/footermenu/[WBLINK12]

Gast

betreff PHP-Fehlermeldung:
Quote from: dbsWar wohl nur kurz ein Problem wie sie schon schrieb. Sehe die Meldung nicht mehr auf de.php
schade, ich hatte erhofft, es ist ein Resultat der nun eingeschalteten PHP-Fehlerberichte.

Der Validator gibt noch einiges zu korrigieren, viel Kleinkram, doppelte ID, script type usw.
Ich denke, es ist nichts, was eine Ausgabe verhindern würde

Für die Menu-Link-Seiten bekomm ich vom Validator einen I-O-Error, das mag mit dem angebrochenem Script zusammen hängen

dbs

Auch mal doof gefragt, die start.php ist öffentlich?
[url="https://onkel-franky.de"]https://onkel-franky.de[/url]