[PHP] Opnieuw (Dit keer met meer info) auto download problem

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Naj_Geetsrev
  • Registratie: Oktober 2002
  • Laatst online: 21-07 13:18
Ik ben mezig met een script dat een backup maakt van een database. Hij geeft een lijst van gegevens en slaat die op de server in backup.bak

Nou wil dat wanneer de script is uitgevoerd, hij het bestand (backup.bak) download. (Dus dat de gebruiker een download schermpje krijgt en de locatie aan kan geven waar het bestand komt.).


Dit is het script dat de backup maakt:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
<?php


/*
------------------------------------------------------------------------
Datum laatste wijziging:
Datum creatie          : 10-12-2002

Auteur                 : <Jan Versteeg>

------------------------------------------------------------------------
Beschrijving           : Backup
------------------------------------------------------------------------
*/
?>



<HTML>



  <HEAD>
    <STYLE>
      <!--
      BODY         { FONT-family: Arial; FONT-SIZE: 12 }
      -->
    </style>
  <TITLE>Backup</TITLE>
  </HEAD>

<BODY topmargin="0" leftmargin="0" >
<?
  $fd= fopen ("backup.bak","w+");
  // Backup docent (medewerker)
  fwrite($fd,"<|DOCENT>\n");
  mysql_connect("localhost","team4","team4")or die ("Kan niet met database communiceren");
              mysql_select_db("project8");
              $query = ("SELECT * FROM docent;");
              $result = mysql_query($query);
              while($row=mysql_fetch_array($result))
              {
              fwrite($fd,"-=\n");
              fwrite($fd,"$row[0]\n");
              fwrite($fd,"$row[1]\n");
              fwrite($fd,"$row[2]\n");
              fwrite($fd,"$row[3]\n");
              fwrite($fd,"$row[4]\n");
              fwrite($fd,"=-\n");
              }
 fwrite($fd,"<\DOCENT>\n");
 // Backup kamer
 fwrite($fd,"<|KAMER>\n");
 mysql_connect("localhost","team4","team4")or die ("Kan niet met database communiceren");
              mysql_select_db("project8");
              $query = ("SELECT * FROM kamer;");
              $result = mysql_query($query);
              while($row=mysql_fetch_array($result))
              {
              fwrite($fd,"-=\n");
              fwrite($fd,"$row[0]\n");
              fwrite($fd,"$row[1]\n");
              fwrite($fd,"=-\n");
              }
 fwrite($fd,"<\KAMER>\n");
 fclose($fd);


?>


code:
1
<script>window.location.href='http://10.26.2.110/team4/admin_pagina/backup.bak'</script>  // Zo probeerde ik de download te starten, maar hij opent het gewoon

in het browser schermpje

[ Voor 15% gewijzigd door Glimi op 10-12-2002 14:01 ]


Acties:
  • 0 Henk 'm!

  • thomaske
  • Registratie: Juni 2000
  • Laatst online: 08:58

thomaske

» » » » » »

Zet eens [php] tags om je code.
En kijk eens naar de php-header functie (daar staan legio voorbeelden van wat jij wilt!)

[ Voor 20% gewijzigd door thomaske op 10-12-2002 14:00 ]

Brusselmans: "Continuïteit bestaat niet, tenzij in zinloze vorm. Iets wat continu is, is obsessief, dus ziekelijk, dus oninteressant, dus zinloos."


Acties:
  • 0 Henk 'm!

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 18-09 16:28

Bosmonster

*zucht*

A. Gebruik [ PHP ] tags in dit forum.. is wat leesbaarder
B. probeer het eens met passthru, zodat je controle hebt over de content-type. Deze kun je vervolgens op application/octet-stream zetten zodat het een download wordt.

Acties:
  • 0 Henk 'm!

  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
thomaske schreef op 10 december 2002 @ 14:00:
Zet eens [php] tags om je code.
En kijk eens naar de php-header functie (daar staan legio voorbeelden van wat jij wilt!)

O-)
Gebruik inderdaad de header() functie om ervoor te zorgen dat de browser de boel ziet als een downloadstream.
Verder zou ik ervoor kiezen om geen HTML te outputten, maar de file die je aanmaakt door te sturen met fpassthru() oid :)