Disculpa, pero eso no se si te funciona, pero a simple vista, esta pesimamente mal escrito.
Código PHP:
<?php
$contenidocarta = '
$set="'.$_POST[setcarta].'";
$carta="'.$_POST[numcarta].'";
$nombre="'.$_POST[nombrecarta].'";
$imagen="'.$_POST[imagencarta].'";
$debilidad="'.$_POST[debilidadcarta].'";
$resistencia="'.$_POST[resistenciacarta].'";
$hp="'.$_POST[hpcarta].'";
$descripcion='.$_POST[descripcioncarta].'';
$nombre_archivo = '$set/$carta.php';
$gestor = fopen($nombre_archivo, 'a');
fwrite($gestor, $contenidocarta);
if($fwrite){
echo 'El archivo se ha creado correctamente';
}
?>
Me imagino que debe arrojarte algun error.
recomendaciones:
* puedes usar el operador de asignacion con concatenamiento:
.= (o =. no recuerdo el orden). lo que hace es concatenar lo de la derecha en la variable de la izquierda.
* dale permisos de escritura al archivo de destino
Edit: sorry, no me acorde que estabas escribiendo codigo php. prueba poniendo los tags de apertura y cierre de php dentro del texto, sino el interprete no va a parsear bien los archivos