Jetzt bin ich ziemlich unsicher ob man Daten mit der prepare() Methode, validieren muss. Bei vielen Tutorials meinen die nein..
Man muss. Solche "Tutorials" sind u.a. der Grund für "hackbare" Plugins.
Um schreiben oder kommentieren zu können, benötigen Sie ein Benutzerkonto.
Sie haben schon ein Benutzerkonto? Melden Sie sich hier an.
Jetzt anmeldenHier können Sie ein neues Benutzerkonto erstellen.
Neues Benutzerkonto erstellenJetzt bin ich ziemlich unsicher ob man Daten mit der prepare() Methode, validieren muss. Bei vielen Tutorials meinen die nein..
Man muss. Solche "Tutorials" sind u.a. der Grund für "hackbare" Plugins.
Woran lag es denn und wie hast Du es gelöst?
Und im HTML der Seite stimmt nach Korrektur der o.g. Punkte immer noch so einiges nicht. Vor der Datei header.php wird noch ein Link zum Stylesheet und ein Meta bzgl. xmlrpc ausgegeben, schau mal in der Datei functions.php, ob Du dort entspr. Ausgaben findest.
Ein id wird in der .css Datei mit einem #-Zeichen versehen, also in diesem Fall:
Es wäre aber vorteilhafter sagen zu können: Die zweite Spalte auf der Seite oder: die fünfte Spalte auf der Seite.
Evtl. mal zu :nth-child() nachlesen, das könnte hier auch nützlich sein.
1. Entferne das [COLOR=#ff0000]<!--[/COLOR] hier (das meinte auch rantanplan2000):
[COLOR=#ff0000]<!--[/COLOR] <meta http-equiv="Content-Type" ...
2. Entferne [COLOR=#ff0000]<div id="header">[/COLOR] hier:
<link rel="pingback" href="<?php bloginfo('pingback_url'); ?>" />
[COLOR=#ff0000]<div id="header">[/COLOR]
<?php wp_head(); ?>
3. Ergänze ein Leerzeichen ..id="head[COLOR=#ff0000]er" on[/COLOR]click="loc.. hier (das könnte man auch ohne JavaScript lösen):
<div id="head[COLOR=#ff0000]er"on[/COLOR]click="location.href='http://www
4. Entferne [COLOR=#ff0000]</div<[/COLOR] hier:
<a class="Überschrift" href="<?php bloginfo('url'); ?>">
[COLOR=#ff0000]</div< [/COLOR]
</a>
Dann sehen wir mal weiter.
[FONT=courier new]#00000 -> #000000[/FONT]
Du könntest den jeweiligen Autor der gefundenen Plugins dazu befragen, oft sind Plugin-Autoren für Vorschläge und konstruktives Feedback sehr empfänglich.
Und die schöne neue REST-API nicht vergessen, siehe auch hier.
Es gibt einen [FONT=courier new]the_excerpt_rss[/FONT] Filter, grobes Beispiel hier, die divs würde ich allerdings weglassen.
Ich vermute hier einen Bot, der versucht in unregelmäßigen Abständen den richtigen Login zu hashen.
... "iThemes Security" (Version 6.1.1, von einem Profi konfiguriert), ... Offensichtlich wurde der neue Benutzername auch relativ schnell herausgefunden, da die Login-Versuche auch mit diesem stattfinden.
Kleiner Tipp für den Profi:
Benutzername, ID, Link zur Autor-Seite usw. ist bei Dir über die REST-API für jedermann sichtbar, http://example.com/wp-json/wp/v2/users - andere "Security" Plugins wie WordFence verhindern das, wie/ob das bei iThemes Security auch geht, weiss ich leider nicht, es gibt dafür aber auch extra Plugins wie z.B. Disable REST API.
Und es ist nicht ein Bot, sondern es sind tausende, die eher zufällig und ungezielt bei Dir anklopfen. Die Bots versuchen noch viele andere Sachen, die aber iThemes u.ä. erst gar nicht aufführt, die Lektüre einer access.log Datei eines Servers ist da sehr horizonterweiternd.
Am Rande: Das aufgeführte Plugin "Count per Day" zählt viele dieser Bots als normale Besucher, ein Vergleich mit Google Analytics Daten usw. ist für viele "ich habe ganz viel Traffic" Leute auch vergleichsweise horizonterweiternd. Ein Audit für einen Kunden vor einiger Zeit ergab zudem haarsträubende Sicherheitslücken (SQL-Injection usw.), so dass das Plugin bei uns auf der "Never ever" Liste gelandet ist.
Das war schon grundsätzlich richtig, die nächsten Schritte wären gewesen:
Ohne Login (der wahrscheinlich zur fatalen neuen Installation führte) die SQL-Zugangsdaten in die Datei wp-config.php eintragen.
Und dann Schritt 1. und 3. von oben.
Um das zum Laufen zu bringen:
1. Den Ordner "wp-content" des alten Websites auf den Server in das aktuell verwendete Verzeichnis von WordPress laden
2. Die SQL-Datei der alten Datenbank in die aktuell verwendete Datenbank importieren, das macht man üblicherweise im Backend der Webhosting-Firma mit phpMyAdmin o.ä., nicht in WordPress selbst
3. Dann einloggen und einmal in den WordPress-Einstellungen -> Permalinks speichern anklicken
Wenn die Domain gleich geblieben ist, sollte erstmal grob alles funktionieren.
Und Frage am Rande: Was genau hast Du bei "das Backup bzw. SQL Datei hochgeladen" gemacht?
Das Frontend des Websites ist leer, d.h. die Datenbank, die verwendet wird, enthält keine Daten, was wie beschrieben auch im Backend richtig angezeigt wird.
Der Login-Link wurde so sicher nicht verwendet. Ist Copy&Paste so schwer? :shock:
Das Problem ist also gelöst, die SQL-Daten wurden nicht/falsch beim neuen Hoster hochgeladen bzw. durch eine warum auch immer durchgeführte neue Installation von WordPress überschrieben, siehe auch Antwort von Edi.
Nein. Ich meine den Link zu Deiner Seite und den Link bei dem Du Dich anmeldest.
Da das "Frontend" angeblich funktioniert, würde ich das gerne sehen = Link zu Deiner Seite.
Da im "Backend" angeblich keine Daten liegen, würde ich gern den Link zum Login sehen, evtl. führt der ganz woanders hin, was in all der Aufregung untergeht.
Wo hast Du den Statuscode 301 gefunden ?
Im HTTP Response Header vor dem Redirect.
Mir fiel bereits auf, dass der Browser zusammen mit der Fehlermeldung in der Adresszeile das ".de" abgeschnitten hatte.
Und auch das "www", und das schneidet nicht einfach so der Browser ab, sondern der Server sagt: Geh jetzt zu dieser Seite: http://asyl-hksb/
Daraus folgt: Es wurden nicht nur Dinge in der genannten Test-Installation lokal sondern auch auf dem Server verändert.
Vermutlich hast Du die Datenbank-Zugangsdaten zum externen Server in der lokalen wp-config.php nicht oder erst nach div. Änderungen auf die lokalen Datenbank-Zugangsdaten angepasst.
Ggf. meldest Du Dich bei einer anderen, leeren WordPress-Installation an.
Link zur Seite? Link zur Anmeldung, den Du verwendest?
Da ist definitiv mehr geändert worden, als Google Analytics abzuschalten. Poste mal Deine Datei header.php
if (is_category('A, A1, A2')){
echo 'hello world';
}
Das prüft, ob Du auf der Archiv-Seite einer Kategorie "A, A1, A2" bist.
auch folgender Code gibt nichts aus:
$catid = get_the_category();
if (!empty($catid)) {
$thiscatid = $catid[0]->ID;
} echo $thiscatid;
Verwende [FONT=courier new]->cat_ID[/FONT] statt [FONT=courier new]->ID[/FONT]
Generell:
1. Verwende WP_DEBUG, dann hättest Du hier Notices & Warnings bekommen.
2. Mit Dokumentation lesen wäre man hier auch weitergekommen, is_category(), get_the_category(), has_category()
if is_category(A) echo Author funktioniert leider nicht...
Poste mal den ganzen echten Code, der bei Dir nicht funktioniert.
Wahrscheinlich meinst Du [FONT=courier new]has_category( 'A' )
[/FONT]
http://www.asyl-hksb.de/ macht einen 301 redirect auf http://asyl-hksb/ und die Domain gibt es nicht.
Liegt an entweder [FONT=courier new].htaccess[/FONT] oder [FONT=courier new]wp-config.php[/FONT] oder [FONT=courier new]siteurl[/FONT] und/oder [FONT=courier new]home[/FONT] in der Datenbank.