PHP Hashes vergleichen (json array mit php array in if)

WannabeTux

Cadet 4th Year
Registriert
Sep. 2014
Beiträge
114
Hallo zusammen,

ich will Hashes mit einer .json und einer .php vergleichen (via json_decode ja auch eigentlich kein Problem).
Einerseits habe ich gespeicherte Hashes als array in .json , andererseits habe ich 3 URLs in einer .php als array stehen von denen ich via hash_file einen Hash generiere, diesen generierten Hash will ich mit den 3 Hashes aus der .json vergleichen, da kam mir nur "if" in den Sinn, als simple Lösung.

Die .json Datei ist so aufgebaut (hat als json_decode die Var $jsonfile):
Code:
{"meinelinks": [

	{
	"Link": "https://www.meine-erste-seite.de",
	"Hash": "l8s19f9e32e78fc3c8js9915888ee3dfd9b0489daa0ee6f1e7ea8abcfcd093k1"
	},

	{
	"Link": "https://www.habe-da-noch-eine-zweite-seite.de", 
	"Hash": "7sh17ce175b676s73c4f5b5585e08189d4acd9de9b8833188c38be945f8888a"
	},
	
	{
	"Link": "http://www.meine-seite-die-dritte.de", 
	"Hash": "8s712915094334e02e9d08d7s100e358f42bf4ce861d48bfb1b1e50bd2cl9s6d"
	}
]
}

Meine .php Datei mit den Links von denen er die Hashes vor dem vergleichen generieren soll ist so aufgebaut:

PHP:
<?php
$geturl = array(	

					"https://www.meine-erste-seite.de", 
					"https://www.habe-da-noch-eine-zweite-seite.de",
					"http://www.meine-seite-die-dritte.de"
				);
				
?>



Im Script steht als if:

PHP:
if ($jsonfile["meinelinks"][$i]["Hash"] === $URL_hashes)
	{
	echo "Hashes stimmen genau!\n";
	}
else
	{
	echo "Hash oder Hashes falsch!\n";
	}

Var $i ist in dem Fall eine for Zählerschleife damit alle Hashes durchgegangen werden.

Bei der Ausgabe klappt auch alles, bis auf die Zeile mit if:
PHP Fatal error: Cannot use string offset as an array in /opt/self/meinscript/hash_vergleich.php on line 25


Weiß da jemand Rat wie ich die if richtig formuliere, um die Hashes zu vergleichen?
Danke gibt's für jede hilfreiche Antwort!
 
Hi,

der Fehler steht doch relativ eindeutig da: "Cannot use string offset as an array". Was genau verstehst du denn nicht?

VG,
Mad
 
Wurde ein true als zweiter Parameter bei json_decode gesetzt?
Und vielleicht mal foreach nehmen.
Ist angenehmer als sich mit numerischen Indizes rumzuschlagen, die einen am Ende eh nicht interessieren und womöglich gar nicht existieren und dann Fehler werfen.
 
Zurück
Oben