Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Dodawanie danych do pliku na innym serwerze, Logowanie do ftp przez php
DiKey
post 13.10.2010, 15:06:56
Post #1





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 13.10.2010

Ostrzeżenie: (0%)
-----


Witam, wszystkich, trochę głupio, że w moim pierwszym poście proszę o pomoc, ale na usprawiedliwienie powiem, że sporo z tego forum korzystałem jako gość smile.gif
W skrócie problem wygląda tak: mam skrypt, który przechwytuje dane z formularza i zapisuje je do pliku na lokalnym serwerze, a chcę żeby robił to na innym serwerze FTP.

O to co mam:

  1. <?php
  2.  
  3. $MESSAGE_FILE = "plik.ini";
  4. // En: result file
  5. // Fr: fichier resultat.
  6.  
  7.  
  8. $DEFAULT_EXIT_PAGE = "strona wyjsciowa";
  9. // En: exit page.
  10. // Fr: page de sortie.
  11.  
  12. // End Necessary Variables section
  13. /******************************************************************************/
  14.  
  15. function error($error_message) {
  16. echo $error_message."<BR>";
  17. }
  18.  
  19. function check_referer () {
  20. global $REFERERS, $HTTP_REFERER;
  21. if ($HTTP_REFERER != "")
  22. while (list($val, $ref) = each($REFERERS))
  23. if (preg_match("/^http:\/\/$ref/", $HTTP_REFERER))
  24. return;
  25. error("Unauthorized access to: $HTTP_REFERER");
  26. }
  27.  
  28. #check_referer();
  29.  
  30. $message = "";
  31.  
  32. while (list($key, $val) = each($HTTP_POST_VARS)) {
  33. $message .= ' "'."$val".'"';
  34. }
  35.  
  36. $message = preg_replace("/\n\r*/", "<BR>", $message);
  37.  
  38.  
  39. $file_arry = file($MESSAGE_FILE); //or error("Can not open \$MESSAGE_FILE");
  40. $file = join ("", $file_arry);
  41. $message .= "\n".$file;
  42.  
  43. $fp = fopen("$MESSAGE_FILE", "w"); // error("Can not write \$MESSAGE_FILE");
  44. flock($fp, 1);
  45. fputs($fp, $message);
  46. flock($fp, 3);
  47. fclose($fp);
  48.  
  49.  
  50. if(! $exit_page)
  51. $exit_page = $DEFAULT_EXIT_PAGE;
  52.  
  53. Header("Location: ".$exit_page);
  54. // Exit -> $exit_page
  55.  
  56. ?>
  57.  


Docelowy serwer ftp nie jest publiczny, więc trzeba się jakoś przez ten skrypt zalogować... Oczywiście oba serwery są moje.
Szukałem w google, na forum.php.pl itp. ale jedyne co znalazłem to ten skrypt wyżej i taki do pobrania dowolnego pliku:

  1. <?php
  2. function getFile($server, $dir, $file)
  3. {
  4. if(!$id = ftp_connect($server)){
  5. echo("Błąd przy próbie połączenia z serwerem $server...");
  6. }
  7. if(!ftp_login($id, "uzytkownik", "haslo")){
  8. echo("Błąd przy próbie zalogowania...");
  9. }
  10. echo("Połączenie z serwerem ustanowione...");
  11.  
  12. if(!@ftp_get ($id, $file, $dir."//".$file, FTP_BINARY)){
  13. echo("Błąd przy próbie pobrania pliku $file...");
  14. }
  15. echo("Plik $file został pobrany...");
  16.  
  17. ftp_close($id);
  18. echo("Koniec połączenia...");
  19. }
  20. getFile("adres serwera", "katalog", "nazwa pliku.rozszerzenie");
  21. ?>


Ale nie bardzo wiem jak te dwa skrypty połączyć. Dziękuje za każdą pomoc.
Go to the top of the page
+Quote Post
hind
post 13.10.2010, 15:40:59
Post #2





Grupa: Zarejestrowani
Postów: 142
Pomógł: 24
Dołączył: 30.03.2009
Skąd: Rokitno Szlacheckie

Ostrzeżenie: (0%)
-----


ten drugi skrypt pobiera dane z serwera ftp
jak chcesz wgrywać (w prosty sposócool.gif pliki na ftp to można to zrobić przez file_put_contents
  1. file_put_contents('ftp://login:haslo@host/adres/do/pliku.txt', 'dane'); // przyjmuje dodatkowo takie informacje jak context z timeoutem
Go to the top of the page
+Quote Post
DiKey
post 13.10.2010, 16:10:02
Post #3





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 13.10.2010

Ostrzeżenie: (0%)
-----


Hmm, ten skrypt domyślnie dopisuje dane na początek tego pliku tekstowego. I tak ma właśnie być, jakby wgrywał cały plik na ftp to zapewne by podmienił oryginał.

//Edit

Zrobiłem tak, że skrypt:
1. Pobiera plik z ftp
2. Edytuje go
3. Wysyła z powrotem na serwer

Lecz nie wydaje mi się żeby była to najbardziej optymalna wersja ;p

Ten post edytował DiKey 13.10.2010, 17:36:02
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 18.07.2025 - 02:13