¿Ese es el código completo?
¿De dónde vienen las variables $prefijo y $numero?
Cita: ¿Alguien tiene alguna explicación lógica para esto?
Si tienes un campo llamado <input name="prefijo"> lamento decirte que usar $prefijo no funcionará jamás.
En local te funciona debido a una configuración obsoleta de tu instalación de PHP, que de hecho es una falla de seguridad grave.
Ahora, dependiendo del tipo de formulario debes usar $_GET['prefijo'] o $_POST['prefijo'] según sea el caso.
Por favor, consulta el siguiente manual:
http://www.php.net/variables.external