Tach!
also so?
<input type="text" name="nickname" id="nickname" <?php if(isset($_GET['mID'])) {?> value="<?php echo $user_nickname;?>" <?php }?> <?php if(!isset($_GET['mID'])) {?> value="<?=(isset($_POST['nickname'])) ? $_POST['nickname'] :''?>" <?php }?>>
Nein. $_GET und $_POST sind Bestandteil der Eingabedaten. Die haben nichts in der Ausgabe zu suchen. Ich meine: Es gibt ein generelles Objekt/Array, in dem alle Ausgabewerte gesammelt werden.
$output = [];
Wenn der New-Fall eintritt, dann erstellst du die Eigenschaften dafür.
$output['type'] = 'new';
$output['name'] = '';
...
Und im Edit-Fall
$output['type'] = 'edit';
$output['name'] = $aus_der_Datenabfrage;
...
Und nun gehts zur Ausgabe. Alle auszugebenden Werte stehen in $output. Wenn Dinge unterschiedlich gerendert werden sollen, dann kannst du den Wert in type befragen, ansonsten gibst du die Werte direkt aus (inklusive kontextgerechter Behandlung).
<input type="text" name="nickname" value="<?=htmlspechialchars($output['name'])?>">
dedlfix.