Bonjour,
Tu as plusieurs problèmes :
fwrite($lien, "print '<img src=".$test." />';");
Va générer dans ton fichier la chaine suivante :
print '<img src=valeur_de_test />';
il n'y a donc pas de balises php pour indiquer au serveur que ce code est du php et non du html.
Le code suivant devrait mieux fonctionner (j'en profite pour ajouter des guillemets à l'attribut src) :
fwrite($lien, "<?php print '<img src=\"" . $test . "\" />'; ?>");
A noter que tu peux aussi juste virer le print pour avoir le code html de l'image sans avoir à ajouter les balises php
fwrite($lien, "<img src=\"" . $test . "\" />");
De même
fwriteh($lien, "<?php unlink($_GET[test].'.php') ;?>");
va générer le code suivant
<?php unlink(valeur_de_GET_test . '.php') ;?>
Ici il manque des apostrophes ou guillemets autour de la chaine 'test' pour indiquer à php qu'il ne s'agit pas d'une constante dont il doit aller chercher la valeur, mais bien de l'attribut "test" qui devrait être passé dans l'url.
Le message " Undefined index : test " t'indique quant à lui que tu n'as pas passé de variable nommée "test" dans l'url et que la variable $_GET['test'] à laquelle tu fais appel n'existe pas
Et comme cette variable n'existe pas, valeur_de_GET_test est vide et le code php produit effectivement l'action <?php unlink(.'.php') ;?> dans laquelle tu concatène la chaine ".php" à rien (ou plus exactement tu concatènes rien à la chaine ".php"

), ce qui engendre l'erreur de syntaxe.