PHP Fehler?
Guten Abend, ich habe ein kleines Problem mit meinem PHP Code.
Error:
Warning: Array to string conversion in C:\Users\ali20\Documents\Video Platform\Player\index.php on line 6
Warning: Undefined property: stdClass::$Array in C:\Users\ali20\Documents\Video Platform\Player\index.php on line 6
Warning: Trying to access array offset on value of type null in C:\Users\ali20\Documents\Video Platform\Player\index.php on line 6
Warning: Attempt to read property "name" on null in C:\Users\ali20\Documents\Video Platform\Player\index.php on line 6
Error 723#1
index.php:
<?php
$data = file_get_contents("../SystemData.json");
$data = json_decode($data);
if(isset($_GET['title'])){
if(!empty($_GET['title'])){
$checkTitle = $data->$_GET['title']->name;
if(isset($checkTitle)){
$title = $_GET['title'];
}else{
echo "Error 723#1";
exit;
}
}else{
echo "Error 723#2";
exit;
}
}else{
echo "Error 723#3";
exit;
}
?>
SystemData.json:
{
"7293746918450916": {
"name": "Ein Film Name",
"poster": "x",
"source": "film.mp4"
}
}
Aufgerufene URL:
http://localhost:3000/Player/index.php?title=7293746918450916
2 Antworten
Der Zugriff auf das Property ist falsch. Deine Zeile 6 muss folgendermaßen lauten:
$checkTitle = $data->{$_GET['title']}->name;
Weiteres zu dieser Syntax wird im Manual erklärt.
ich bin mit zwar nicht sicher, könnte aber sein, dass die isset Anfrage nicht funktioniert, weil ein Array mehrere Indexe hat, die von php nicht alle mit isset abgefragt werden können. Je nach Kontext kannst du folgendes probieren:
if(isset($checkTitle[0]))
Hab aber leider keine Garantie, ob das funktioniert. LG
Der Indexer liefert nur den Wert aus dem Array, der mit den überreichten Schlüssel assoziiert wird. Dieser Wert - nicht das Array - wird an die isset-Funktion weitergereicht, die wiederum prüft, ob der Wert NULL / undefiniert ist oder nicht.
$a = array();
print isset($a) ? "true" : "false"; // true
$b; // undefined variable
print isset($b) ? "true" : "false"; // false
$a["c"] = $b;
print isset($a["c"]) ? "true" : "false"; // false
Jetzt steht nur noch
Warning: Array to string conversion in C:\Users\ali20\Documents\Video Platform\Player\index.php on line 6
Error 723#1