Teil von SELFHTML Forum Teil von SELFHTML Forumsarchiv Teil von 2006 Teil von Juni

SELFHTML Forumsarchiv
PHP Script automatisch generierte SFTP Übertragung

Informationsseite
  1. Seite (PHP) PHP Script automatisch generierte SFTP Übertragung von Maddin, 29. 06. 2006, 16:57
nach unten

PHP Script automatisch generierte SFTP Übertragung

Die folgende Nachricht zum Thema stammt von: Maddin, 29. 06. 2006, 16:57

Hallo,
habe ein kleines Problem und hoffe Ihr könnt mir helfen.
Arbeite mit MySql Datenbank und Php.
Muß einen Webshop bauen, die Kundendaten müssen an dritte als csv Datei weitergeliefert werden, da Versand von dort aus geschiet.
Da ich aber nicht für jede neue Bestellung erstens ein Dump machen kann und diesen dann in einer csv Datei von meinem lokalen Rechner überspielen kann (z.B. Urlaub) würde ich das gerne automatisieren.
Es gibt doch bestimmt schon PHP Scripte die so was machen können und die ich nur entsprechend bearbeiten müßte. Sprich wenn Bestellung abgeschickt wird: erstens csv Datei generieren und zweitens diese per SFTP übertragen.
Kennt ihr solche Scripte? Wenn ja wo finde ich da eine vernünftige Lösung?

Danke für jede Hilfe,
Martin

nach obennach unten

PHP Script automatisch generierte SFTP Übertragung

Die folgende Nachricht zum Thema stammt von: Julian von Mendel, 29. 06. 2006, 17:45

Hi,

wo ist denn das Problem? Eine csv-Datei ist derart primitiv aufgebaut, dass nicht viel mehr als die Ausgabe von ein paar Kommas notwendig ist um die Aufgabe zu lösen. Ein shell_exec dass dann noch scp aufruft und fertig. Eine exakt für deine Anwendung passende Umsetzung wirst du nicht finden - aber vielleicht kannst du dir die 10 Zeilen auch selbst tippen.

Schöne Grüße
Julian
--
http://lighttraffic.de | http://derjulian.net

nach obennach unten

PHP Script automatisch generierte SFTP Übertragung

Die folgende Nachricht zum Thema stammt von: Maddin, 29. 06. 2006, 20:28

Hi Julian,
danke, daß Du mir das Zutraust, aber shell_exec, scp ???????
Sagt mir leider nichts. Sorry bin bis jetzt noch nicht vor so einem Problem gestanden...
Kennst Du irgendwo ein Beispiel, damit ich mir die Sachen mal ansehen kann???

Grüße,
Martin

nach obennach unten

PHP Script automatisch generierte SFTP Übertragung

Die folgende Nachricht zum Thema stammt von: Julian von Mendel, 29. 06. 2006, 22:06

Hi,

»» Hi Julian,
»» danke, daß Du mir das Zutraust, aber shell_exec, scp ???????
»» Sagt mir leider nichts. Sorry bin bis jetzt noch nicht vor so einem Problem gestanden...
»» Kennst Du irgendwo ein Beispiel, damit ich mir die Sachen mal ansehen kann???

shell_exec führt ein externes Programm aus. Siehe die zugehörige PHP-Dokumentation.
scp ist ein Unix-Programm das eine Datei per SFTP von einem Rechner auf den anderen kopiert. Siehe man-page.

shell_exec("scp datei123 user@server:pfad");

müsste die Datei "datei123" auf den Server "server", Username "user" nach "pfad" kopieren.

Vorher speicherst du also deine CSV-Datei ($handler = fopen("datei123","w+"), per if($handler) prüfen ob Datei öffnen erfolgreich, flock($handler,2), fwrite($handler,$csvblabla), fclose($handler)) und kopierst sie dann mittels der oben genannten Zeile auf den anderen Rechner. Bzgl. dem Erzeugen von CSV-Dateien solltest du dich mit dem einfachen Format auseinandersetzen, Implementationen lassen sich sicher zahlreich per Google auffinden.

Schöne Grüße
Julian
--
http://lighttraffic.de | http://derjulian.net

nach obennach unten

komme nicht weiter - Datei erstellen

Die folgende Nachricht zum Thema stammt von: Maddin, 04. 07. 2006, 11:37

Hi,
dann versuche ich es dochnochmal hier....

Also bin mittlerweile soweit, daß ich die Datei per sftp übertragen kann, aber eine neue Datei erstellen bekomme ich nicht hin (kann die Daten nur in eine schon bestehende Datei schreiben)

Da das Script automatisch ablaufen muß, sprich durch eine Aktion ausgelöst wird, wollte ich als Dateinamen den Timestamp mit einbinden um die Eindeutigkeit zu garantieren als Dateiname z.B. maddin-timestamp.csv da es recht unwahrscheinlich ist, daß genau zur gleichen Zeit die Aktion zweimal ausgelöst wird. (wer hier auch eine bessere Idee hat - sehr gerne!!!!).

Wie erstelle ich per php eine neue Datei mit eindeutigem Namen und kann dann gleich auf diese Datei zurückgreifen (ach ja, die Datei muß natürlich für spätere Referenzen auch auf meinem lokalen Server gespeichert bleiben... also nicht nur temporär)

Wäre euch wirkich dankbar, wenn ihr mir weiterhelfen könntet.

Danke und Grüße,
Maddin

nach obennach unten

komme nicht weiter - Datei erstellen

Die folgende Nachricht zum Thema stammt von: Julian von Mendel, 05. 07. 2006, 17:37

Hi,

»» Wie erstelle ich per php eine neue Datei mit eindeutigem Namen und kann dann gleich auf diese Datei zurückgreifen (ach ja, die Datei muß natürlich für spätere Referenzen auch auf meinem lokalen Server gespeichert bleiben... also nicht nur temporär)

ungetestetes Stückchen Programmcode, dass den Timestamp als Ausgangsname nimmt, und Ziffern hinten dran hängt, wenn der Timestamp schon existiert. Anschließend wird in die Datei der Inhalt der Variable $data geschrieben. (Mit PHP5 und file_put_contents würde sich der Programmcode um 3 Zeilen verkürzen, siehe dazu das Manual.)

// Dateiinhalt festlegen
$data = "Lustiger Inhalt...";

// Dateinamen bestimmen
$filename = "maddin-".date("U")."-"; // maddin-<timestamp>-<nr>.csv
$extension = ".csv";
$nr = 0;
while(file_exists($filename.$nr.$extension)) $nr++;
$filename .= $nr.$extension;

// In die Datei schreiben
$handler = fopen($filename,"w+");
flock($handler,LOCK_EX);
fwrite($handler,$data);
fclose($handler);


Schöne Grüße
Julian
--
http://lighttraffic.de | http://derjulian.net

nach obennach unten

PHP Script automatisch generierte SFTP Übertragung

Die folgende Nachricht zum Thema stammt von: Maddin, 06. 07. 2006, 20:42

Hi Julian,
danke nochmal auch für den Tip bezüglich des erstellens der Datei

»» »» shell_exec("scp datei123 user@server:pfad");
»»


Aber dieser Secure Copy Befehl funktioniert bei mir leider nicht (da wird nichts verschoben....)

Diesbezüglich noch irgendwelche gute Ideen??

Grüße,
Martin

nach obennach unten

PHP Script automatisch generierte SFTP Übertragung

Die folgende Nachricht zum Thema stammt von: Julian von Mendel, 06. 07. 2006, 22:10

Hey Maddin,

»» »» »» »» shell_exec("scp datei123 user@server:pfad");
»» »»

»»
»» Aber dieser Secure Copy Befehl funktioniert bei mir leider nicht (da wird nichts verschoben....)

hast du Konsolenzugriff, so dass du ihn mal testen kannst? Was heißt "funktioniert nicht"? Kannst du mal per var_dump(shell_exec("scp datei123 user@server:pfad")); testen ob irgendwelche Fehler auftreten?

Schöne Grüße
Julian
--
http://lighttraffic.de | http://derjulian.net

nach obennach unten

PHP Script automatisch generierte SFTP Übertragung

Die folgende Nachricht zum Thema stammt von: Maddin, 07. 07. 2006, 13:41

Hi Julian,
habe ich gemacht... Bekomme
string(0) ""
als Antwort...

Grüße,
Martin

nach obennach unten

PHP Script automatisch generierte SFTP Übertragung

Die folgende Nachricht zum Thema stammt von: Julian von Mendel, 07. 07. 2006, 15:10

Hi,

tut mir leid. Der Fehler wurde dadurch verursacht, dass das Passwort gefehlt hat, was sich per Schlüpsselgenerierung hätte lösen lassen. Ich habe aber eine viel elegantere Möglichkeit gefunden. PHP bietet für den Transport von Dateien per SCP Funktionen an:
http://de3.php.net/manual/de/function.ssh2-scp-send.php
Beispiel und Dokumentation auf der verlinkten Seite. Vorher muss das Modul installiert werden: http://de3.php.net/manual/de/ref.ssh2.php

Schöne Grüße
Julian
--
http://lighttraffic.de | http://derjulian.net

nach obennach unten

PHP Script automatisch generierte SFTP Übertragung

Die folgende Nachricht zum Thema stammt von: Maddin, 07. 07. 2006, 16:06

Danke für den Tip, hatte ich auch schon ausprobiert
nur
scp
und
ssh2_connect
liefern mir ein call for undefined function
nud mein provider konnte mir da auch nicht weiterhelfen....

Grüße,
Maddin

nach obennach unten

PHP Script automatisch generierte SFTP Übertragung

Die folgende Nachricht zum Thema stammt von: Julian von Mendel, 07. 07. 2006, 17:39

Hi,

»» liefern mir ein call for undefined function
»» nud mein provider konnte mir da auch nicht weiterhelfen....

das Modul muss installiert werden. Wie das geht steht auf der verlinkten Seite. Es sollte nur ein Knopfdruck für deinen Provider sein.

Schöne Grüße
Julian
--
http://lighttraffic.de | http://derjulian.net

nach obennach unten

PHP Script automatisch generierte SFTP Übertragung

Die folgende Nachricht zum Thema stammt von: Maddin, 07. 07. 2006, 19:03


»» das Modul muss installiert werden. Wie das geht steht auf der verlinkten Seite. Es sollte nur ein Knopfdruck für deinen Provider sein.
»»

Ja, aber er will es nicht machen - da hilft es nichts ob es einfach ist oder nicht.....

nach obennach unten

PHP Script automatisch generierte SFTP Übertragung

Die folgende Nachricht zum Thema stammt von: Julian von Mendel, 07. 07. 2006, 20:03

Hi,

»»
»» »» das Modul muss installiert werden. Wie das geht steht auf der verlinkten Seite. Es sollte nur ein Knopfdruck für deinen Provider sein.
»» »»
»»
»» Ja, aber er will es nicht machen - da hilft es nichts ob es einfach ist oder nicht.....

dann informiere dich über Schlüsselgenerierung um ohne Passwort per SSH Daten kopieren zu können oder wechsle zu einem anderen Provider.

Schöne Grüße
Julian
--
http://lighttraffic.de | http://derjulian.net

nach obennach unten

FTP klappt jetzt aber wie SFTP?????

Die folgende Nachricht zum Thema stammt von: Maddin, 05. 07. 2006, 16:20

Hi,
bin jetzt einen großen Schritt weiter.
Das mit der Datei klappt ganz gut und Übertragung via FTP auch.
Nachdem aber kritische Informationen übertragen werden will ich das ganze via SFTP machen und hier bräuchte ich wirklich fachmännische Hilfe!!
Wäre wirklich dankbar, wenn mir hier jemand weiterhelfen könnte!!

Grüße,
Martin

nach oben
Teil von SELFHTML Forum Teil von SELFHTML Forumsarchiv Teil von 2006 Teil von Juni

© 1998-2006 Seite Impressum, Software: Classic Forum