mySQL Tabelle von localhost auf webserver kopieren

Moderatoren: crack, Marwin, Krüsty

Antworten
Rainer
Alter Hase
Beiträge: 81
Registriert: Freitag 21. Juli 2006, 14:39
Wohnort: Senftenberg
Kontaktdaten:

mySQL Tabelle von localhost auf webserver kopieren

Beitrag von Rainer » Montag 17. November 2008, 13:47

Hallo,
ich möchte eine local bearbeitete Tabelle komplett in die auf dem Webserver existierende Datenbank schreiben. Da ich dafür keine Möglichkeit gefunden habe, habe ich die Tabelle ausgelesen und daraus eine Datei mit den Felddaten (zum Neuerstellen) und eine Datei mit dem Inhalt (Datensätze) erzeugt. In einem auf dem Webserver befindlichen php-Skript habe ich dann eine neue Tabelle erzeugt und die Datensätze reingeschrieben. Funktioniert auch.
Jetzt möchte ich die beiden Dateien, für die die Pfade generiert werden:

$quelle = "C:\xampp\htdocs\dbbearbeitung\bearbeitung\temp\".$table.".cnt"
für die Quelle und
$ziel = "temp/".$table.".cnt"
für das Ziel auf dem Webserver.

in einen Ordner (temp) auf den Webserver uploaden.
Der Ordner existiert dort und hat 777 für Rechte eingetragen. Ich versuche schon tagelang mit der php-Funktion
move_uploaded_file($quelle,$ziel);
den Upload vorzunehmen, es funktioniert aber nicht. Ich möchte die normale Uploadefunktion mit LoadFile-Dialog nicht nutzen, da die Pfade ohnehin feststehen und ich den Namen der Tabelle aus einer Combobox entnehme (in $table abgelegt, funktioniert).
Kann mir da jemand weiterhelfen?
Danke
Gruß Rainer

Benutzeravatar
crack
Administrator
Beiträge: 280
Registriert: Dienstag 21. Dezember 2004, 15:02
Wohnort: 53783 Eitorf
Kontaktdaten:

Re: mySQL Tabelle von localhost auf webserver kopieren

Beitrag von crack » Donnerstag 20. November 2008, 20:02

move_uplod_file dient wohl eher dazu die hochgelade innerhalb der Verzeichnisse des Servers zu verschieben, und nicht dem Upload selbst ...

Info Link zum Thema
mit freundlichen grüssen,
with best regards,

crack

Rainer
Alter Hase
Beiträge: 81
Registriert: Freitag 21. Juli 2006, 14:39
Wohnort: Senftenberg
Kontaktdaten:

Re: mySQL Tabelle von localhost auf webserver kopieren

Beitrag von Rainer » Dienstag 25. November 2008, 12:56

hallo crack,
entschuldige bitte die späte Reaktion, ich hatte nicht mehr mit einer Antwort gerechnet.
Ich bin nach viel googlen auch zu dem Ergebnis gekommen. Ein Upload scheint so offensichtlich überhaupt nicht zu gehen, in einigen Beiträgen wird auf Sicherheit verwiesen. Ich hab's gezwungenermaßen mit dem normalen Upload über Formular geregelt; ist zwar nicht besonders elegant, funkt aber sicher.
Vielen Dank und noch eine schöne Woche (für den Rest)
Gruß Rainer

Benutzeravatar
crack
Administrator
Beiträge: 280
Registriert: Dienstag 21. Dezember 2004, 15:02
Wohnort: 53783 Eitorf
Kontaktdaten:

Re: mySQL Tabelle von localhost auf webserver kopieren

Beitrag von crack » Dienstag 25. November 2008, 23:00

Rainer hat geschrieben:hallo crack,
entschuldige bitte die späte Reaktion, ich hatte nicht mehr mit einer Antwort gerechnet.
Ich bin nach viel googlen auch zu dem Ergebnis gekommen. Ein Upload scheint so offensichtlich überhaupt nicht zu gehen, in einigen Beiträgen wird auf Sicherheit verwiesen. Ich hab's gezwungenermaßen mit dem normalen Upload über Formular geregelt; ist zwar nicht besonders elegant, funkt aber sicher.
Vielen Dank und noch eine schöne Woche (für den Rest)
Gruß Rainer
Moment, mit etwas Phantasie sollte sich das dennoch lösen lassen, eine Upload Funktion gibt es auf jeden Fall, und diese funktioniert auch, die Benutzt ja z.B. jedes PHP basierte Gallerie System, wie Coppermine2 zum Beispiel.
Jedoch ist das Sicherheitsargument tatsächlich nicht von der Hand zu weisen, da bei JPGs und GIFs auch ausführbarer Code mitübertragen werden kann, und wird.
Abhilfe wäre eine Verifikation des Hochladenden Rechners per Cookie oder einem Berechtigungscode.
Lösungsvorschlag: der Upload wir vom Client mittels Java/-script gehandelt, der sich dabei dem Server über authentifiziert und vom Server dementsprechend verifiziert, angenommen und in das entsprechende Verzeichniss verschoben.
mit freundlichen grüssen,
with best regards,

crack

Rainer
Alter Hase
Beiträge: 81
Registriert: Freitag 21. Juli 2006, 14:39
Wohnort: Senftenberg
Kontaktdaten:

Re: mySQL Tabelle von localhost auf webserver kopieren

Beitrag von Rainer » Freitag 28. November 2008, 10:58

Hallo crack,
kennst Du in Javascript so eine Möglichkeit (oder einen Ansatz oder eine URL) für einen Upload?

Gruß Rainer

Benutzeravatar
crack
Administrator
Beiträge: 280
Registriert: Dienstag 21. Dezember 2004, 15:02
Wohnort: 53783 Eitorf
Kontaktdaten:

Re: mySQL Tabelle von localhost auf webserver kopieren

Beitrag von crack » Samstag 29. November 2008, 16:37

Nein, das Javascript nur zur Authentifizierung und Übergabe des Pfades, also zur automatisierung letztenendes.
Also ich hab mal ein eigenes Test Script unter die Lupe genommen, der Prozess ist ungefähr der: Der Upload ist eigentlich eine Funktion von Server OS und Browser, hierbei scheint PHP noch garnicht beteiligt zu sein, die Datei wird in einen Ordner /usr/temp in der Serverroot geladen, und dieses Verzeichniss scheint eine Art 'Quarantainestation' für hochgeladene Dateien zu sein. Danach wird die Datei mit der move_uploaded_file ins das von Dir gewählte Zielverzeichniss verschoben.

Hier ist mal der PHP Code des Scripts:

Code: Alles auswählen

<?php
// In PHP kleiner als 4.1.0 sollten Sie $HTTP_POST_FILES anstatt $_FILES verwenden.
// In PHP kleiner als 4.0.3 verwenden Sie copy() und is_uploaded_file() anstatt von
// move_uploaded_file()

$uploaddir = './upload/';

print "<pre>";
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploaddir . $_FILES['userfile']['name'])) {
    print "File is valid, and was successfully uploaded.  Here's some more debugging info:\n";
    print_r($_FILES);
    echo realpath($_FILES['userfile']['name']);
} else {
    print "Possible file upload attack!  Here's some debugging info:\n";
    print_r($_FILES);
}

?> 
und hier die HTML Seite mit dem Upload:

Code: Alles auswählen

<form enctype="multipart/form-data" action="upload2.php" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="30000">
Send this file: <input name="userfile" type="file">
<input type="submit" value="Send File">
</form>
Also wenn ich versuche eine .jpg Datei Hochzuladen kommt der in dem PHP Script sichbare Fehlertext, ein .gif oder ein .htm z.B. kann ich hochladen und es wird gemeldet 'File succesfully uploaded', jedoch landet die Datei nicht im Zielverzeichniss, da die Datei in einem Ordner der Serverroot ankommt, vermute ich das in dem Fall mein Webspacehost meinen Scripten nicht gewährt auf Ordner der Serverroot ausser der ../htdocs und der ../cgi-bin zuzugreifen, und das dürfte bei allen 'dedicaded Servern' der Fall sein, bei einen echten 'Root Server' hat man wohl volle Zugriffsrechte auf diese Verzeichnisse.

Aber, möglicherweise gibt es doch die Option die Tabelle unmittelbar in die Datenbank zu laden, schau doch mal in eine MySQL Refferenz, evtl. findest Du dort eine Möglichkeit....
Zuletzt geändert von crack am Samstag 29. November 2008, 16:41, insgesamt 1-mal geändert.
Grund: Nachtrag, Ergänzung, Follow Up Prevention
mit freundlichen grüssen,
with best regards,

crack

Rainer
Alter Hase
Beiträge: 81
Registriert: Freitag 21. Juli 2006, 14:39
Wohnort: Senftenberg
Kontaktdaten:

Re: mySQL Tabelle von localhost auf webserver kopieren

Beitrag von Rainer » Sonntag 30. November 2008, 12:52

ich suche gerade entsprechende Seiten, auf

http://www.thegeekstuff.com/2008/10/imp ... sqlimport/

scheint dazu was zu sein, muss es mal testen...


Gruß Rainer

Benutzeravatar
crack
Administrator
Beiträge: 280
Registriert: Dienstag 21. Dezember 2004, 15:02
Wohnort: 53783 Eitorf
Kontaktdaten:

Re: mySQL Tabelle von localhost auf webserver kopieren

Beitrag von crack » Sonntag 30. November 2008, 13:10

Also mein Upload Script oben hatte doch in vollem Umfang funktioniert, das zuerst keine JPGs hochgeladen wurden lag daran das ich 'max_file_size' zu niedrig gesetzt habe, und das die Dateien nicht aus dem temporären Verzeichniss rüberkopiert wurden lag daran das ich zu der Zeit Zugriff per FTP Client hatte, und solange der FTP Client auf ein Verzeichniss zugreift, ist es Anscheinend für Schreibzugriffe des Servers gesperrt (was ja auch Sinn macht....)
mit freundlichen grüssen,
with best regards,

crack

Rainer
Alter Hase
Beiträge: 81
Registriert: Freitag 21. Juli 2006, 14:39
Wohnort: Senftenberg
Kontaktdaten:

Re: mySQL Tabelle von localhost auf webserver kopieren

Beitrag von Rainer » Sonntag 30. November 2008, 18:02

ist schon klar, so in etwa (mit form) habe ich das ja jetzt auch gelöst. Nur findet der eigentliche Upload praktisch automatisch statt, das file landet in einem temporären verzeichnis auf dem Webserver. Danach kann dann in ein Zielverzeichnis verschoben werden. Ich hatte soetwas wie MoveFile im Sinn, und das funktioniert nicht. Du benutzt auch
move_uploaded_file($_FILES['userfile']['tmp_name']

in [tmp_name] steht der temporäre File-Name, der automatisch vergeben wird (habe ich über echo herausgefunden). Wie gesagt, das funktioniert ja auch, nur bin ich bei jedem File, das ich uploaden muss, gezwungen, den OpenFile-Dialog aufzurufen, das File auszuwählen und wie in Deinem Skript auch, den Upload-Vorgang zu starten und das wollte ich gern umgehen. Jetzt versuche ich herauszufinden, ob über mySQL die Möglichkeit besteht, die Tabelle ohne den Umweg über Files in der Datenbank im Web zu installieren; damit wäre dann der Upload nicht mehr nötig.

Antworten