I am struggling to wrap my head around this.
I am creating two forms on a page to generate a configuration file for a device, one form for each of the two different devices we use. The form works fine and submits the values correctly, but I need the file to initiate a download. Using one form I have been able to achieve this, but with two forms I get an error regarding the header information.
Here is the head of my file
<html>
<head>
<link rel="stylesheet" type="text/css" href="screen.css" />
<?php
include('header.php');
include('config/wan.php');
include('config/wan-voip.php');
include('config/pppoe.php');
include('config/pppoe-voip.php');
include('config/dlink.php');
?>
</head>
<body>
This si followed by the a standard HTML form and then here is my code to validate the inputs and act accordingly:
if(isset($_POST['submit']))
{
if(!empty($_POST['type']) && isset($_POST['router']) && $_POST['router'] == 'netgear')
{
if($_POST['type'] == 'pppoe' && (empty($_POST['username']) || empty($_POST['password'])))
{
echo 'Please fill in the username and password';
exit;
}
if(empty($_POST['ssid']) || empty($_POST['pass']))
{
echo 'Please provide the SSID and Wireless Key';
exit;
}
if(($_POST['type'] == 'wan-voip' || $_POST['type'] == 'pppoe-voip') && (empty($_POST['ext']) || empty($_POST['extpass'])))
{
echo 'Please provide the Extension Information';
exit;
}
}
elseif(isset($_POST['router']) && $_POST['router'] == 'dlink')
{
if(empty($_POST['ssid']) || empty($_POST['pass']))
{
echo 'Please provide the SSID and Wireless Key';
exit;
}
}
ob_end_clean();
if($_POST['router'] == 'netgear')
{
header("Content-type: text/plain");
header("Content-Disposition: attachment; filename=".date('d-m-Y')."-".$_POST['type'].".ini");
$file = str_replace('-', '', $_POST['type']);
echo $$file;
}
elseif($_POST['router'] == 'dlink')
{
header("Content-type: text/plain");
header("Content-Disposition: attachment; filename=".date('d-m-Y')."-dlink.cfg");
echo $dlink;
}
}
Could someone please suggest how I could go about solving this. I have read some other related spots and tried moving bits of the script around and trying some of the suggestions but I seem to keep hitting brick walls.