I would like use "header("Content-disposition: filename=whatever.txt")" to make the browser pop up the save as file window.

I used the follow and it got the window to pop up.

header("Content-disposition: filename=whatever.txt");
header("Content-type: application/octetstream");
header("Pragma: no-cache");
header("Expires: 0");

// doing some DOS-CRLF magic...
$client = getenv("HTTP_USER_AGENT");
if(ereg('[^(]*\((.*)\)[^)]*',$client,$regs)) 
{
    $os = $regs[1];
    // this looks better under WinX
    if (eregi("Win",$os)) 
        $crlf="\r\n";
}

However I'm not sure how to send the data that needs to go in the file.

I would like csv information from a mysql table to go in the text file.

    First you'll need to create your data file, if it is going to be created each time you call it from a SQL call then the apache web server needs to own the file so that it can write in the data.

    $data_file = "my_file.txt";

    $sql = "do_my_data_call";

    $my_result = mysql_query($sql)

    while($record = mysql_fetch_array($result)) {

    //..get the data and do whatever ..say pick the variables you want and string them together o
    r just make an array.

    $var_1 = $record[0];
    $var_2 = $record[1];

    //..etc..

    $my_data . = "$var_1, $var_2\n";

    }

    //Then write the data to a file

    if ($file = fopen ($data_file, "w")) { //write in data
    flock ($data_file, 2);//optional
    fputs ($data_file, $my_data);
    flock ($data_file, 3);//optional
    fclose ($data_file);
    }

    //then send the data and reaqd the file out
    header ('Content-Type: application/octet-stream');
    header ("Content-Disposition: attachment; filename=$data_file");

    readfile ($data_file);

    HTH

      Here is a snippet of what I used that worked...

      $filename = "whatever.txt";
      	$force = "1";
      $isIE = 0;
      
      if (strstr($HTTP_USER_AGENT, 'compatible; MSIE ') !== false &&
          strstr($HTTP_USER_AGENT, 'Opera') === false) {
          $isIE = 1;
      }
      
      if (strstr($HTTP_USER_AGENT, 'compatible; MSIE 6') !== false &&
          strstr($HTTP_USER_AGENT, 'Opera') === false) {
          $isIE6 = 1;
      }
      
      $filename = ereg_replace('[^-a-zA-Z0-9\.]', '_', $filename);
      
      // A Pox on Microsoft and it's Office!
      if (! $force) {
          // Try to show in browser window
          header("Content-Disposition: inline; filename=\"$filename\"");
          header("Content-Type: $type0/$type1; name=\"$filename\"");
      } else {
          // Try to pop up the "save as" box
          // IE makes this hard.  It pops up 2 save boxes, or none.
          // [url]http://support.microsoft.com/support/kb/articles/Q238/5/88.ASP[/url]
          // But, accordint to Microsoft, it is "RFC compliant but doesn't
          // take into account some deviations that allowed within the
          // specification."  Doesn't that mean RFC non-compliant?
          // [url]http://support.microsoft.com/support/kb/articles/Q258/4/52.ASP[/url]
          //
          // The best thing you can do for IE is to upgrade to the latest
          // version
          if ($isIE && !isset($isIE6)) {
              // [url]http://support.microsoft.com/support/kb/articles/Q182/3/15.asp[/url]
              // Do not have quotes around filename, but that applied to
              // "attachment"... does it apply to inline too?
              //
              // This combination seems to work mostly.  IE 5.5 SP 1 has
              // known issues (see the Microsoft Knowledge Base)
              header("Content-Disposition: inline; filename=$filename");
      
              // This works for most types, but doesn't work with Word files
              header("Content-Type: application/download; name=\"$filename\"");
      
              // These are spares, just in case.  :-)
              //header("Content-Type: $type0/$type1; name=\"$filename\"");
              //header("Content-Type: application/x-msdownload; name=\"$filename\"");
              //header("Content-Type: application/octet-stream; name=\"$filename\"");
          } else {
              header("Content-Disposition: attachment; filename=\"$filename\"");
              // application/octet-stream forces download for Netscape
              header("Content-Type: application/octet-stream; name=\"$filename\"");
          }
      }
      
      	echo "Title, First Name, Last Name, Suffix, Address, City, State, Zip, Club, New Card, Comments,\n";
      	while ($myrow = mysql_fetch_array($result2)) {
      	  $sql = "SELECT * FROM table WHERE id = '$myrow[id]'";
      		$result = mysql_query($sql);
      		$clubName = mysql_fetch_array($result);
      		$club = $clubName[club_name];
      
      	  if ($myrow[new_card] == "1") {
      		  $new_card = "Yes";
      		} else {
      			$new_card = "No";
      		}
      		echo "$myrow[title], $myrow[first], $myrow[last], $myrow[suffix], $myrow[address], $myrow[city], $myrow[state], $myrow[zip], $club, $new_card, $myrow[comments],\n";
      	}
      exit;
      }
        Write a Reply...