ERLEDIGT
JA
JA
ANTWORTEN
8
8
ZUGRIFFE
828
828
EMPFEHLEN
-
Hallo!
Ich arbeite gerade an einem einfachen "CMS".
Hier moechte ich nun eine Möglichkeit einbauen, ein backup zu ziehen.
So weit, so gut. ICh habe jetzt einen ueberdimensionierten String, welche alle SQL Befehle beinhaltet.
Diesen möchte ich in eine Datei schreiben und NICHT auf dem server speichern sondern an den Benutzer schicken (quasi als download).
Nun weiss ich nicht wie ich das realisieren soll, ohne die Datei zwischenzeitlich auf dem Server zu hinterlegen.
Kurze verbaler Algorithmus:
Sql DB auslesen -> in String speichern -> string in eine temporäre Datei schreiben (existiert nur im Zwischenspeicher des Servers) -> datei per header an den User schicken -> user downloaded und speichert Datei lokal -> Datei im Zwischenspeicher kann verworfen werden.
Mir geht es darum, das ich dem PHP Skript keine Schreibrechte auf dem Server geben möchte!
MfG
milleman wird erwachsen ....
-
Gib die Zeichenkette doch direkt aus anstatt sie erst in einer Datei zu speichern.
Markus Wulftange
-
Du kannst die Header-Datei ja so ändern wie du möchtest.
Gib doch einfach den String in der PHP-Datei aus, und setz den Header auf den Dateityp .sql
Der WebBrowser des Users sollte dann nachfragen, was mit der Datei gemacht werden soll.
Vielleicht klappt das ja.
mfg
da_loki
-
Das wäre ne Idee. Geht aber nicht, da ich die Seite für einen DAU mache, dem kann ich ein Copy-Past-Save nicht zu muten.
Zitat von Gumbo
Der soll einfach nur klciken, speichern klicken und hochladen druecken fürs Einlesen des Backups *g*.
Aber die Idee von Loki gefällt mir.
Einfach quasi ausgeben, nur als Header festlegen, das es sich um eine *.cont.bu Datei handelt. Also content.backup File?
ich probiersman wird erwachsen ....
-
Also ich habs gelöst.
Danke Loki. Danke @PHP Documentation
Hier der Code:
Die Datei $filename hat bei mir folgenden schematischen Inhalt:PHP-Code:header("Content-Disposition: attachment; filename=".$filename);
$bu = "";
$sqlbot->getBackup($tbl_arr, $bu); // erzeugt das Backup in String $bu
echo $bu;
exit;
Code :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
-- Host: localhost -- Erstellungszeit: 26. March 2006 um 14:16 -- PHP-Version: 5.1.1 -- -- Datenbank: `__tables` -- -- -------------------------------------------------------- TRUNCATE TABLE `TBL_menuepunkte`; -- -- Daten für Tabelle `TBL_menuepunkte` -- INSERT INTO `TBL_menuepunkte` (ID, menuepunkt, kategorie) VALUES ('3', 'Lackierung', '4'); INSERT INTO `TBL_menuepunkte` (ID, menuepunkt, kategorie) VALUES ('2', 'Unfallinstandsetzung', '4'); INSERT INTO `TBL_menuepunkte` (ID, menuepunkt, kategorie) VALUES ('4', 'Auto', '-1'); INSERT INTO `TBL_menuepunkte` (ID, menuepunkt, kategorie) VALUES ('5', 'Busse', '-1'); INSERT INTO `TBL_menuepunkte` (ID, menuepunkt, kategorie) VALUES ('6', 'Werbeplakatierung', '5'); -- Host: localhost -- Erstellungszeit: 26. March 2006 um 14:16 -- PHP-Version: 5.1.1 -- -- Datenbank: `__tables` -- -- -------------------------------------------------------- TRUNCATE TABLE `TBL_menuepunkte_inhalt`; -- -- Daten für Tabelle `TBL_menuepunkte_inhalt` -- INSERT INTO `TBL_menuepunkte_inhalt` (ID, menuepunkt_ID, content) VALUES ('1', '2', 'Inhalt zum Menüpunkt <strong>Unfallinstandsetzung<br /><br /></strong>hier noch zusätzliche infos<strong></strong>');Geändert von mille (26.03.06 um 14:26 Uhr)
man wird erwachsen ....
-
Probier mal Folgendes:
PHP-Code:<?php
$headerFields = array(
'Date' => date('D, d M Y H:i:s T', time()),
'Content-Type' => 'application/octet-stream',
'Content-Disposition' => 'attachment; filename="'.date('Y-m-d\TH-i-sO', time()).'.bak.sql"',
'Content-Length' => strlen($string)
);
foreach( $headerFields as $fieldName => $fieldValue ) {
header($fieldName.': '.$fieldValue);
}
echo $string; // Daten aus der Datenbank
exit;
?>Markus Wulftange
-
Was ist denn da jetzt anders?
Ich habe das mal bei mir eingefügt und bei mir wird somit kein downlaoddialog erzwungen.
Aber nehmen wir mal an, der wärejetzt erzwungen worden, worin besteht dann der Unterschied? Bzw. was ist anders?man wird erwachsen ....
-
Prinzipiell gibt es keinen Unterschied. Ich habe nur etwas länger für meinen Beitrag gebraucht und habe deinen daher noch nicht wahrgenommen.
Markus Wulftange
-
Achso.
Danke Gumbo
-- erledigtman wird erwachsen ....
Ähnliche Themen
-
etc/inittab ohne Backup verändert
Von Huemler im Forum Linux & UnixAntworten: 1Letzter Beitrag: 18.07.07, 10:06 -
Backup von Homepage via FTP --> Attribute mit speichern
Von g-zus im Forum Hosting & WebserverAntworten: 0Letzter Beitrag: 05.02.06, 19:00 -
WebServer Backup: Mials/www/mysql Backup
Von lukelukeluke im Forum Hosting & WebserverAntworten: 2Letzter Beitrag: 28.09.05, 16:20 -
SQL Backup ohne SSH ?!
Von Sebigf im Forum Relationale DatenbanksystemeAntworten: 1Letzter Beitrag: 19.07.05, 12:54 -
Windows ohne Backup wiederherstellen?
Von mille im Forum Office-AnwendungenAntworten: 2Letzter Beitrag: 12.08.04, 08:31





Zitieren
Login






[PHP][Snippet] Array zu XML konvertieren