Hallo zusammen,
ich habe ein kleines Problem und irgendwie stehe ich etwas auf dem Schlauch.
Ich habe eine Datei test-input.php. In dieser gebe ich einen URL an. Mit dem URL wird mit folgender Codezeile der Quellcode ausgelesen und in der Datenbank gespeichert.
In der zweiten Datei test.php gebe ich wiederum einen URL an und um den Quellcode auszulesen. Nun soll das Script beide Quellcodes vergleichen und überprüfen, ob sie übereinstimmen.
Code:
$url = $_POST['url'];
$source = file_get_contents($url);
$source_code = htmlspecialchars($source);
$statement = $pdo->prepare("SELECT * FROM check_websites WHERE user_id = :id AND url = :url");
$statement->bindParam(':id', $_SESSION['userid']);
$statement->bindParam(':url', $url);
$statement->execute();
$checkWebsite = $statement->fetch();
if($checkWebsite['source_code'] == $source_code) {
echo "Die Webseite stimmt überein!";
} else {
echo "Die Webseite stimmt nicht überein!";
}
Nur leider stimmen sie nie überein, auch wenn die Seiten definitv gleich sind. Ich denke es liegt an der Speicherung in der Datenbank.
Meine Datenbank sieht so aus:
Hoffe mir kann jemand dabei helfen.
Danke im Voraus.
MfG
Edit:
Erst einmal vielen Dank für eure Hilfe. Habe jetzt umgestellt auf Hash und klappt alles wunderbar. Nur habe ich leider immer noch ein kleines Problem. Immer um 6 Minuten nach der vollen Stunde stellt er eine Änderung an der Webseite fest, obwohl gar keine Änderung stattgefunden hat. Immer nach einer Stunde ändert sich scheinbar etwas auf der Webseite und das Script löst aus. Jetzt ist eben nur die Frage, was es sein könnte. Es ist keine Uhr oder ähnliches auf der Webseite. Vielleicht hat ja jemand einen Tipp.
Könnte mehrere Ursachen haben, hast du dir die zwei Sachen mal ausgeben lassen und geschaut wo der unterschied liegt ?
Was genau ist den dein Ziel der Anwendung?
Wieso musst du den Quellcode in der Datenbank speichern, würde es dir nicht auch reichen ein Hash vom Quellcode zu speichern ?
Könnte mehrere Ursachen haben, hast du dir die zwei Sachen mal ausgeben lassen und geschaut wo der unterschied liegt ?
Was genau ist den dein Ziel der Anwendung?
Wieso musst du den Quellcode in der Datenbank speichern, würde es dir nicht auch reichen ein Hash vom Quellcode zu speichern ?
Habe den ursprünglichen Fehler selber beheben können. Lag nur daran, dass die Zeichenlänge der Datenbank nicht ausgereicht hat.
Ich möchte überprüfen, ob irgendwo auf der Webseite eine Änderung zu verzeichnen ist.
Also sobald sich im Quellcode etwas verändert hat zwischen der Speicherung der Webseite in der Datenbank und dem jetztigen Zeitpunkt, möchte ich je nach Ergebnis weitere Scripts ausführen.
Hättest du für diesen Einsatz eine bessere Lösung?
Habe den ursprünglichen Fehler selber beheben können. Lag nur daran, dass die Zeichenlänge der Datenbank nicht ausgereicht hat.
Ich möchte überprüfen, ob irgendwo auf der Webseite eine Änderung zu verzeichnen ist.
Also sobald sich im Quellcode etwas verändert hat zwischen der Speicherung der Webseite in der Datenbank und dem jetztigen Zeitpunkt, möchte ich je nach Ergebnis weitere Scripts ausführen.
Hättest du für diesen Einsatz eine bessere Lösung?
Wie schon geschrieben wäre in dem Fall das speichern eines Hashs besser, da DEUTLICH weniger Speicherplatz verbraucht wird.
Damit bekommst du immer ein Hash (in dem Fall mit md5), der z.B. mit md5 IMMER 32 Zeichen lang ist, anstatt bis zu unendlich viele Zeichen (bei Google.de z.B 110286 Zeichen).
Du solltest auf jeden Fall niemals so viele Zeichen in einer MySQL Datenbank speichern.. wenn es wirklich sein muss, nutz eine NoSQL Datenbank wie Redis oder MongoDB.
Gibt sogar eine coole für Redis.
Aber im Grunde würde ich es so machen, wie @False bereits beschrieben hat.
Du solltest auf jeden Fall niemals so viele Zeichen in einer MySQL Datenbank speichern.. wenn es wirklich sein muss, nutz eine NoSQL Datenbank wie Redis oder MongoDB.
Erst einmal vielen Dank für eure Hilfe. Habe jetzt umgestellt auf Hash und klappt alles wunderbar. Nur habe ich leider immer noch ein kleines Problem. Immer um 6 Minuten nach der vollen Stunde stellt er eine Änderung an der Webseite fest, obwohl gar keine Änderung stattgefunden hat. Immer nach einer Stunde ändert sich scheinbar etwas auf der Webseite und das Script löst aus. Jetzt ist eben nur die Frage, was es sein könnte. Es ist keine Uhr oder ähnliches auf der Webseite. Vielleicht hat ja jemand einen Tipp.
Erst einmal vielen Dank für eure Hilfe. Habe jetzt umgestellt auf Hash und klappt alles wunderbar. Nur habe ich leider immer noch ein kleines Problem. Immer um 6 Minuten nach der vollen Stunde stellt er eine Änderung an der Webseite fest, obwohl gar keine Änderung stattgefunden hat. Immer nach einer Stunde ändert sich scheinbar etwas auf der Webseite und das Script löst aus. Jetzt ist eben nur die Frage, was es sein könnte. Es ist keine Uhr oder ähnliches auf der Webseite. Vielleicht hat ja jemand einen Tipp.
Kann alles mögliche sein, einfach beide Versionen herunterladen und ein Diff erzeugen.
Kann alles mögliche sein, einfach beide Versionen herunterladen und ein Diff erzeugen.
Es war eine winzige Änderung im Quelltext. Habe jetzt das Script angepasst.
Ich hole mir mittels PHP Simple HTML DOM Parser den plaintext und überprüfe diesen auf Änderungen. Erfüllt für mich den Zweck und so läuft das Script jetzt auch präziser.
Danke für deine Hilfe im Thread!
[Maps Speichern] Wie kann ich Maps speichern? 10/22/2009 - Metin2 Private Server - 37 Replies Hey Com,
ich wollte gern mal wissen, wie ich eine map speichern kann?
Ich verstehe das hier nicht: http://img8.imageshack.us/img8/1862/33332332323325 5.jpg
Was muss ich wo rein schreiben:
Als Beisp. Wenn ich nun Map1 Rotes Reich wäre was müsste ich das rein schreiben damit die Map mit allen neuen zB NPC gespeichert wird?