php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2009

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 05.01.2009, 12:13  
Neuer Benutzer
 
Registriert seit: 29.11.2008
Beiträge: 10
SilferSurver befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] FTP Funktion einbauen

Hallo!

Ich befasse mich erst seit kurzem mit PHP. Wer kann mir helfen hier eine FTP funktion einzubauen? Das wär echt super nett!

Code:
function get_def($dbname, $table) {
    global $verbindung;
    $def = "";

    $def .= "CREATE TABLE $table (\n";
    $result = mysql_db_query($dbname, "SHOW FIELDS FROM $table",$verbindung);
    while($row = mysql_fetch_array($result)) {
        $def .= "    $row[Field] $row[Type]";
        if ($row["Default"] != "") $def .= " DEFAULT '$row[Default]'";
        if ($row["Null"] != "YES") $def .= " NOT NULL";
        if ($row["Extra"] != "") $def .= " $row[Extra]";
        $def .= ",\n";
    }
    $def = ereg_replace(",\n$","", $def);
    $result = mysql_db_query($dbname, "SHOW KEYS FROM $table",$verbindung);
    while($row = mysql_fetch_array($result)) {
          $kname=$row["Key_name"];
          if(($kname != "PRIMARY") && ($row["Non_unique"] == 0)) $kname="UNIQUE|$kname";
          if(!isset($index[$kname])) $index[$kname] = array();
          $index[$kname][] = $row["Column_name"];
    }
    while(list($x, $columns) = @each($index)) {
          $def .= ",\n";
          if($x == "PRIMARY") $def .= "  PRIMARY KEY (" . implode($columns, ", ") . ")";
          else if (substr($x,0,6) == "UNIQUE") $def .= "  UNIQUE ".substr($x,7)." (" . implode($columns, ", ") . ")";
          else $def .= "  KEY $x (" . implode($columns, ", ") . ")";
    }

    $def .= "\n);";
    return (stripslashes($def));
}

//Erstelle Eintäge von Tabelle
function get_content($dbname, $table) {
    global $verbindung;
    $content="";
    $result = mysql_db_query($dbname, "SELECT * FROM $table",$verbindung);
    while($row = mysql_fetch_row($result)) {
        $insert = "INSERT INTO $table VALUES (";
        for($j=0; $j<mysql_num_fields($result);$j++) {
            if(!isset($row[$j])) $insert .= "NULL,";
            else if($row[$j] != "") $insert .= "'".addslashes($row[$j])."',";
            else $insert .= "'',";
        }
        $insert = ereg_replace(",$","",$insert);
        $insert .= ");\n";
        $content .= $insert;
    }
    return $content;
}

//Funktion um Backup auf dem Server zu speichern
function write_backup($val,$newfile,$newfile_data)
   {
   global $compression,$path,$cur_date,$filetype,$backup_pfad;

   $backup_pfad[] = $path.$val."_structur_".$cur_date.".".$filetype;
   $backup_pfad[] = $path.$val."_data_".$cur_date.".".$filetype;

   if ($compression==1)
      {
      $fp = gzopen($path.$val."_structur_".$cur_date.".".$filetype,"w9");
      gzwrite ($fp,$newfile);
      gzclose ($fp);


      $fp = gzopen($path.$val."_data_".$cur_date.".".$filetype,"w9");
      gzwrite ($fp,$newfile_data);
      gzclose ($fp);
      }
   else
      {
      $fp = fopen ($path.$val."_structur_".$cur_date.".".$filetype,"w");
      fwrite ($fp,$newfile);
      fclose ($fp);


      $fp = fopen($path.$val."_data_".$cur_date.".".$filetype,"w");
      fwrite ($fp,$newfile_data);
      fclose ($fp);
      }
   }
//Backup per Email verschicken
function mail_att($to, $from, $subject, $message) {
    // $to Empfänger
    // $from Absender ("email@domain.de" oder "Name <email@domain.de>")
    // $subject Betreff
    // $message Inhalt der Email
    global $backup_pfad; //Die Pfade zu den Dateien


    if(is_array($backup_pfad) AND count($backup_pfad) > 0)
       {
       $mime_boundary = "-----=" . md5(uniqid(rand(), 1));


      $header = "From: ".$from."\r\n";
      $header.= "MIME-Version: 1.0\r\n";
      $header.= "Content-Type: multipart/mixed;\r\n";
      $header.= " boundary=\"".$mime_boundary."\"\r\n";

      $content = "This is a multi-part message in MIME format.\r\n\r\n";
      $content.= "--".$mime_boundary."\r\n";
      $content.= "Content-Type: text/plain charset=\"iso-8859-1\"\r\n";
      $content.= "Content-Transfer-Encoding: 7bit\r\n\r\n";
      $content.= $message."\r\n";

      //Dateien anhaengen
      foreach($backup_pfad AS $file)
          {
          $name = basename($file);
         $data = chunk_split(base64_encode(implode("", file($file))));
         $len = filesize($file);
         $content.= "--".$mime_boundary."\r\n";
         $content.= "Content-Disposition: attachment;\r\n";
         $content.= "\tfilename=\"$name\";\r\n";
         $content.= "Content-Length: .$len;\r\n";
         $content.= "Content-Type: application/x-gzip; name=\"".$file."\"\r\n";
         $content.= "Content-Transfer-Encoding: base64\r\n\r\n";
         $content.= $data."\r\n";
          }

      if(mail($to, $subject, $content, $header)) return true;
      else return false;
      }

   return false;
   }


//Backup erstellen
while (list(,$val) = each($dbname))
   {
   $newfile="# Strukturbackup: $cur_time \r\n# www.php-einfach.de \r\n";
   $newfile_data="# Datenbackup: $cur_time \r\n# www.php-einfach.de \r\n";

   //backup schreiben
   $tables = mysql_list_tables($val,$verbindung);
   $num_tables = @mysql_num_rows($tables);
   $i = 0;
   while($i < $num_tables)
      {
      $table = mysql_tablename($tables, $i);

      $newfile .= "\n# ----------------------------------------------------------\n#\n";
      $newfile .= "# structur for Table '$table'\n#\n";
      $newfile .= get_def($val,$table);
      $newfile .= "\n\n";


      $newfile_data .= "\n# ----------------------------------------------------------\n#\n";
      $newfile_data .= "#\n# data for table '$table'\n#\n";
      $newfile_data .= get_content($val,$table);
      $newfile_data .= "\n\n";
      $i++;
      }

   write_backup($val,$newfile,$newfile_data);
   } //End: while




//Backup per Email senden
if($send == 1)
   {
   $text="Datenbank-Backup vom: ".date("d.m.Y H:i")."\n\n\n www.php-einfach.de PHP lernen leicht gemacht";
   $from = "backup@server.de";

   if(!mail_att($email, $from, "Datenbank-Backup ".date("Y-m-d"), $text))
      echo "Es konnte <b>keine</b> Email gesendet werden<br>";

   }
Schöne Grüsse

Silfer
SilferSurver ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 05.01.2009, 12:29  
Erfahrener Benutzer
 
Registriert seit: 28.03.2008
Beiträge: 1.846
HPR1974 wird schon bald berühmt werden
Standard

einfach so:
function ftp_function(){
return "FTP funktion eingebunden";
}
annste dann überall verwenden
HPR1974 ist offline  
Alt 05.01.2009, 12:38  
Neuer Benutzer
 
Registriert seit: 29.11.2008
Beiträge: 10
SilferSurver befindet sich auf einem aufstrebenden Ast
Standard So weit bin ich schon

Das hab ich mir schon zusammengebastelt:

PHP-Code:
if ($use_ftp == '1') {
    if (
$compression == '1') {
      
$mode FTP_BINARY;
    } else {
      
$mode FTP_ASCII;
    }
    
$ftp_id       ftp_connect($ftp_server);
    
$login_result ftp_login($ftp_id$ftp_user_name$ftp_user_pass);
    
$upload       ftp_put($ftp_id$ftp_path $mode);
    
ftp_close($ftp_id); 
Aber ich hab leider keine Ahnung wo ich die Daten für den Upload herbekomme?

Ich möchte quasi das erstellte SQL Backup auf einen FTP senden !
SilferSurver ist offline  
Alt 05.01.2009, 12:42  
Erfahrener Benutzer
 
Registriert seit: 28.03.2008
Beiträge: 1.846
HPR1974 wird schon bald berühmt werden
Standard

$upload = ftp_put($ftp_id, $ftp_path , $mode);
da fehlt doch ein parameter IMHO genau der den Du suchst, also RTFM nochmal...

und die daten hast Du doch schon in writebackup gespeichert, also lass Dir den filename von deiner funktion als rückgabewert geben und die Datei wirfst Du dann auf deinen ftp server
HPR1974 ist offline  
Alt 05.01.2009, 12:51  
Neuer Benutzer
 
Registriert seit: 29.11.2008
Beiträge: 10
SilferSurver befindet sich auf einem aufstrebenden Ast
Standard scheitert

Und genau da scheitert es! leider!

ich weiss das es mit diesen Zeilen zu tun hat

PHP-Code:
function write_backup($val,$newfile,$newfile_data)
   {
   global 
$compression,$path,$cur_date,$filetype,$backup_pfad;

   
$backup_pfad[] = $path.$val."_structur_".$cur_date.".".$filetype;
   
$backup_pfad[] = $path.$val."_data_".$cur_date.".".$filetype;

   if (
$compression==1)
      {
      
$fp gzopen($path.$val."_structur_".$cur_date.".".$filetype,"w9");
      
gzwrite ($fp,$newfile);
      
gzclose ($fp);


      
$fp gzopen($path.$val."_data_".$cur_date.".".$filetype,"w9");
      
gzwrite ($fp,$newfile_data);
      
gzclose ($fp);
      }
   else
      {
      
$fp fopen ($path.$val."_structur_".$cur_date.".".$filetype,"w");
      
fwrite ($fp,$newfile);
      
fclose ($fp);


      
$fp fopen($path.$val."_data_".$cur_date.".".$filetype,"w");
      
fwrite ($fp,$newfile_data);
      
fclose ($fp);
      }
   } 
Aber ich weiss leider nicht wie ich das jetzt umsetzen kann.

Könntest Du mir bitte da helfen oder nen Lösungsansatz geben

Danke schon ma

Geändert von SilferSurver (05.01.2009 um 13:48 Uhr).
SilferSurver ist offline  
Alt 05.01.2009, 12:53  
Neuer Benutzer
 
Registriert seit: 29.11.2008
Beiträge: 10
SilferSurver befindet sich auf einem aufstrebenden Ast
Standard

Danke

Geändert von SilferSurver (05.01.2009 um 14:10 Uhr).
SilferSurver ist offline  
Alt 05.01.2009, 13:04  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

Zitat:
Zitat von SilferSurver Beitrag anzeigen
man man !

sowas geht gar nicht!

was für kinder! könnt das jemand mal bitte löschen!
done
cycap ist offline  
Alt 05.01.2009, 13:41  
Neuer Benutzer
 
Registriert seit: 29.11.2008
Beiträge: 10
SilferSurver befindet sich auf einem aufstrebenden Ast
Standard bin echt am verzweifeln

bin echt am verzweifeln

kann mir niemand helfen?
SilferSurver ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
JS: Einführung - Javascript im Schichtenmodell nikosch Tutorials 4 11.04.2009 17:06
[Erledigt] Array innerhalb einer Funktion Marko_Schulze PHP Tipps 2008 8 02.12.2008 18:58
Wert einer Funktion an andere Funktion übergeben Secondary PHP Tipps 2008 14 27.08.2008 10:36
Rekursive Funktion bricht ab... duras666 PHP Tipps 2008 9 28.04.2008 11:36
gpc_quotes funktion: verbesserungsvorschläge? Promaetheus PHP Tipps 2007 10 12.08.2007 19:29
Komplexe Funktion: +Übersichtlichkeit, -Performance Jacks Rache PHP Tipps 2006 3 07.06.2006 14:22
PHP-GTK Tutorial Beitragsarchiv 9 02.11.2005 21:07
Rückgabewert einer rekrusiven Funktion PHP-Fortgeschrittene 7 06.10.2005 18:44
(schnellere) Funktion zum Zusammenfassen von CSS PHP-Fortgeschrittene 21 08.08.2005 16:47
In einer Funktion auf eine Funktion der Klasse zugreifen phpbeginner PHP Tipps 2005-2 2 28.07.2005 00:30
Funktion in einer Funktion aufrufen? PHP Tipps 2005-2 11 14.06.2005 15:14
[Erledigt] Array-Übergabe in Funktion PHP Tipps 2005 1 08.05.2005 21:05
[Erledigt] Wie kann ich beliebig viele Werte an eine Funktion übergeben PHP Tipps 2005 11 25.01.2005 10:44
[Erledigt] sql syntax error in funktion, kann aber nix finden :( PHP Tipps 2004 10 20.07.2004 19:19
Referenz auf Funktion übergeben PHP-Fortgeschrittene 7 20.07.2004 09:51

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php mail_att, ftp in website einbauen, php ftp funktionen, ftp in homepage einbauen, php gzopen, mail_att funktion, php funktion einbauen, ftp auf homepage einbauen, einbauen von share funktion, php ftp funktion, ftp funktion von php, php funktionen einbauen, php5 mail_att, wie wird ftp in html eingebaut, ftp funktion über html, if ($row(\'email\'), funktion einbauen, mail_att php, glob ftp php, share funktion ftp

Alle Zeitangaben in WEZ +1. Es ist jetzt 11:47 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum