Anwendung bricht ohne Fehlermeldung ab

südpol

Erfahrenes Mitglied
Hallo zusammen,

ich versuche nach vielen Jahren Pause gerade ein einfaches PHP Programm zu schreiben. An sich läuft es auch recht gut. Allerdings verzweifle ich seit Stunden an einer vermeintlich total einfachen Stelle. Die Anwendung scheint alles nach der Verwendung der Variablen $AttributeSet['AttributeSetName'] zu ignorieren und zwar ohne jede Fehlermeldung. :-( Ich habe schon auf error_reporting(E_ALL) umgestellt - leider ohne einen Hinweis. Bis Zeile 14 wird alles ausgegeben wie es soll. Danach ist einfach schluss. Hat jemand einen Tipp für mich was das sein könnte bzw. wie ich das debugen kann?

PHP:
<?php
error_reporting(E_ALL);
// INSERT new record
$url = "http://192.168.230.132/api/TestClient.php";
$curl = curl_init($url);

curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$response = json_decode(curl_exec($curl));
//print_R($response);
curl_close($curl);

foreach($response as $AttributeSet) {
    echo "<h1>TEST</h1>";
    print_r($AttributeSet);
    if(isset($AttributeSet['AttributeSetName'])) {
        echo "<p>Name variable is set</p>";
    } else {
        echo "<p>not set</p>";
    }
    echo "<div class=\"headline\">".$AttributeSet['AttributeSetName']."</div>";
    echo "<div class=\"description\">".$AttributeSet['AttributeSetDescription']."</div>";
    foreach($AttributeSet['Attributes'] as $Attribute) {
        switch ($Attribute['AttributeTypeID']) {
            case "1":
                //Input Feld
                echo "jump to 1";
                echo "<div class=\"input_name\">".$Attribute['AttributeName']."</div>".PHP_EOL;
                echo "<div class=\"input_form\"><input name=\"AttributeID_".$Attribute['AttributeID']."\"></input></div>".PHP_EOL;
                break;
            case "2":
                //Select Feld
                echo "<div class=\"input_name\">".$Attribute['AttributeName']."</div>".PHP_EOL;
                echo "<div class=\"select_form\">".PHP_EOL;
                echo "<select name=\"AttributeID_".$Attribute['AttributeID']."\">".PHP_EOL;
                foreach ($Attribute['SelectValues'] as $SelectValue) {
                    echo "<option value=\"".$SelectValue['AttributeSelectValueID']."\">".$SelectValue['AttributeSelectValueName']."</option>".PHP_EOL;
                }
                echo "</select></div>".PHP_EOL;
                break;
            case "3":
                //MultiSelect
                echo "<div class=\"input_name\">".$Attribute['AttributeName']."</div>".PHP_EOL;
                echo "<div class=\"select_form\">".PHP_EOL;
                echo "<select multiple name=\"AttributeID_".$Attribute['AttributeID']."\">".PHP_EOL;
                foreach ($Attribute['SelectValues'] as $SelectValue) {
                    echo "<option value=\"".$SelectValue['AttributeSelectValueID']."\">".$SelectValue['AttributeSelectValueName']."</option>".PHP_EOL;
                }
                echo "</select></div>".PHP_EOL;

                break;
            case "4":
                //true/false
                


                break;
            default:
                break;
        }
    }
}

?>
 

goto;

Erfahrenes Mitglied
Hi,

wenn bei einem json_decode der zweite Parameter nicht angegeben wird, wird ein Objekt erzeugt. Ich gehe davon aus, dass du aber ein array haben möchtest.

Versuche es bitte mit:
PHP:
$response = json_decode(curl_exec($curl), true);
 

südpol

Erfahrenes Mitglied
Super Danke! Das hat geholfen. Verstehe weiter nicht warum ich nicht mal nen Fehler angezeigt bekommen habe... aber wichtig, es läuft ;-)