Ich führe einen SQL Befehl aus. Dieser gibt alles ganz normal aus. Wenn ich nun aber in die PHP error files schaue, steht dort das der Index in dem Array nicht existiert.
SQL Befehl:
$ergebniss = array();
$url=$_SERVER['REQUEST_URI']; // kontrolliert, gesichert usw. für die Datenbank (hier vereinfacht für die Darstellung geschrieben)
// [...]
// $url = 'index' (wäre z.B. der Inhalt)
$sql = "SELECT `id`,`url`,`status` FROM `get_url` WHERE `status`='1'";
$sql .= " AND `url`='".$url."'";
--> Datenbank Abfrage
foreach($DBresult as $row=>$value){
$ergebnis[$row]=$value;
}
Der Code erzielt das selbe Resultat, wie der eigentliche Code, ist nur extrem vereinfacht.
Was nun kommt ist komisch, wenn man sich das ganze Ausgeben lässt:
if(isset($ergebnis['url']))echo 'Variable gefunden<br />'; // wird ausgegeben
if($ergebnis['url']!='')echo 'hat einen Inhalt'; echo '<br />'; // wird ausgegeben <-------
echo '<pre>';print_r($ergebnis);echo '</pre>'; // gibt das komplette Array aus
exit;
(Alle "echo"s und “print_r” Befehle werden ganz normal ausgegeben)
Wenn ich nun aber in die PHP error files schaue, steht dort drinnen "Uncaught ErrorException: Undefined index: url in (xxxx [line: 2 : if($ergebnis[‘url’]!=’’)echo ‘hat einen Inhalt’; ])"
Wenn ich nun in dem $sql Befehl, die 2. Zeile (url=$url) auskommentiere, entsteht dieser Fehler nicht.
Hat jemand dafür eine Lösung und vielleicht gleich noch eine Erklärung für diesen komischen Fehler?
Das ganze läuft auf einen localen Testserver: Windows | PHP 7.0.9 | 10.1.16-MariaDB