Hilfe mit Switch-Case Source

05/29/2017 21:57 AR0K#1
Es funktioniert alles außer das mit:

Code:
case 'minecraft':
          case 'start':
            $ssh->exec('sudo screen -dmS minecraft');
            echo 'Minecraft Server erfolgreich gestartet';
            break;
          case 'stop':
            $ssh->exec('sudo screen -X -S minecraft quit');
            echo 'Minecraft Server erfolgreich gestoppt';
            break;

Ich finde den Fehler nach Stunden nicht mehr, könnte mir jemand helfen, damit ich das für mich heute Abend fertig kriege? Bin schon am verzweifeln.
05/29/2017 22:12 Syc#2
Ich glaube du verwendest den switch falsch. Leider ist der Thread nicht besonders informationsgehaltvoll, daher muss ich ein bisschen raten.

So wie der Switch aufgebaut ist funktioniert das so

Wenn $_POST['settings'] = 'minecraft'
Dann läuft er hier immer in den Block mit der Startanweisung.

Code:
case 'minecraft':
case 'start':
     $ssh->exec('sudo screen -dmS minecraft');
     echo 'Minecraft Server erfolgreich gestartet';
     break;
Das passiert weil nach dem minecraft kein break ist. und die beiden case 'minecraft' und case 'start' wie ein oder funktionieren.

Nur wenn $_POST['settings'] wirklich 'stop' ist läuft er er in den letzten Block.

Du kannst das ganz einfach debuggen in dem du dir die Post variable ausgeben lässt und dir dann noch ausgeben lässt, in welchen case er läuft. Ganz easy.
05/29/2017 22:59 AR0K#3
Kann geschlossen werden. Dankeschön @Syc
:) Hat geholfen, war meine Dummheit..