Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > Web Development
You last visited: Today at 02:30

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Quellcode in Datenbank speichern

Discussion on Quellcode in Datenbank speichern within the Web Development forum part of the Coders Den category.

Reply
 
Old   #1

 
.Insane's Avatar
 
elite*gold: 0
Join Date: Jun 2011
Posts: 670
Received Thanks: 118
Quellcode in Datenbank speichern

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.
Code:
$url = $_POST['url'];
$source = file_get_contents($url);
$source_code = htmlspecialchars($source);

$insert = $pdo->prepare("INSERT INTO check_websites (user_id, url, source_code) VALUES (:user_id, :url, :source_code)");
$insert->execute(array('user_id' => $_SESSION['userid'], 'url' => $url, 'source_code' => $source_code));
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.
.Insane is offline  
Old 07/28/2019, 13:14   #2


 
False's Avatar
 
elite*gold: 0
The Black Market: 243/0/0
Join Date: Apr 2011
Posts: 11,115
Received Thanks: 2,436
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 ?
False is offline  
Thanks
1 User
Old 07/28/2019, 14:25   #3

 
.Insane's Avatar
 
elite*gold: 0
Join Date: Jun 2011
Posts: 670
Received Thanks: 118
Quote:
Originally Posted by False View Post
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?
.Insane is offline  
Old 07/28/2019, 16:35   #4


 
False's Avatar
 
elite*gold: 0
The Black Market: 243/0/0
Join Date: Apr 2011
Posts: 11,115
Received Thanks: 2,436
Quote:
Originally Posted by .Insane View Post
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.

Beispiel:
PHP Code:
$hash hash_file('md5''https://www.google.de'); 
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).
False is offline  
Thanks
1 User
Old 07/30/2019, 15:08   #5


 
iMostLiked's Avatar
 
elite*gold: 1337
Join Date: Apr 2013
Posts: 6,480
Received Thanks: 3,190
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.
iMostLiked is offline  
Thanks
1 User
Old 07/30/2019, 19:18   #6
 
sk8land​'s Avatar
 
elite*gold: 50
Join Date: Nov 2018
Posts: 1,068
Received Thanks: 2,595
Quote:
Originally Posted by iMostLiked View Post
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.
Warum?
sk8land​ is offline  
Old 08/07/2019, 08:08   #7

 
.Insane's Avatar
 
elite*gold: 0
Join Date: Jun 2011
Posts: 670
Received Thanks: 118
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.
.Insane is offline  
Old 08/07/2019, 10:20   #8


 
False's Avatar
 
elite*gold: 0
The Black Market: 243/0/0
Join Date: Apr 2011
Posts: 11,115
Received Thanks: 2,436
Quote:
Originally Posted by .Insane View Post
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.
False is offline  
Thanks
1 User
Old 08/07/2019, 11:46   #9

 
.Insane's Avatar
 
elite*gold: 0
Join Date: Jun 2011
Posts: 670
Received Thanks: 118
Quote:
Originally Posted by False View Post
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!
.Insane is offline  
Reply


Similar Threads Similar Threads
Hilfe in Cinema 4d ? Datei Speichern mit transparentem hintergrund Speichern ?
09/29/2011 - elite*gold Trading - 10 Replies
^this. Melde euch bei mir, wenn es klappt, bekommt ihr bisschen egold.
[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?



All times are GMT +1. The time now is 02:30.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.