Zum Inhalt springen

FTP Uploadskript mit PHP


Empfohlene Beiträge

Hi,

da ich zu Hause nur DSL habe und trotzdem meine Domains fit halten will, hab ich durch nen Tipp von nem Kollegen ein kleines Skript gebastelt.

Das Skript schreibt die aktuelle IP in ein unsichtbares Frameset einer HTML Datei. Die HTML Datei (index.html ;)) wird dann per FTP auf den Server geschoben. So spare ich mir den ganzen DynDNS ****. Sorry :-).

Leider bin ich jetzt auf ein Problem gestoßen.

Strato verweigert IP's in Framesets und bei 1und1 hab ich kein Webspace für die Skripts hochzuladen.

Ich habe mir auch schon überlegt von der alten strato domain zu 1und1 zu wechseln.

Wie siehts eigentlich aus wenn ich die IP Adresse als ASCII Zeichen angebe? Setzt der das im Frameset richtig um? Könnte ich die IP Adresse nicht mit Javaskript verschlüsseln?

Vielleicht weiß auch jemand wie die Prüfung von Strato funktioniert...

Gruß

debitux

Vielleicht kanns jemand gebrauchen, ist aber noch nicht fertig:


#PHP Code

<?php


$server_ip = gethostbyname($SERVER_NAME);

$filename = "index.html";

$dz = fopen($filename,"r+");

$contents = fread ($dz, filesize ($filename));

$fertig = str_replace('serverip',$server_ip,$contents);

rewind( $dz );

fwrite ($dz,$fertig);

fclose($dz);


$ftp_server = "";

$ftp_user_name = "";

$ftp_user_pass = "denkste :-PPP";

$destination_file = "index.html";

$source_file = "index.html";


$conn_id = ftp_connect("$ftp_server");

if (!$conn_id)

{

        echo "Keine FTP Verbindung!\n";

        die;

}

else

{

        echo "Verbunden mit $ftp_server\n";

}


$login_result = ftp_login($conn_id, "$ftp_user_name", "$ftp_user_pass");


if (!$login_result)

{

echo "Login fehlgeschlagen...! ($login_result)\n";

echo "Server: $ftp_server\n Benutzer: $ftp_user_name\n";

die;

}

else

{

echo "Eingeloggt in $ftp_server, mit dem Benutzer: $ftp_user_name\n";

}


$pwd = ftp_pwd($conn_id);

echo "Aktuelles Verzeichnis $pwd\n";

$upload = ftp_put($conn_id, "$destination_file", "$source_file", FTP_BINARY);


if (!$upload)

{

        echo "Ftp upload war fehlerhaft!";

}

else

{

        echo "Datei $source_file auf $ftp_server als $destination_file geschrieben\n";

}

ftp_quit($conn_id);


?>


#index.html...

<HTML><HEAD>

<META NAME="description" content="">

<META NAME="keywords" content="">

<TITLE>Meine private Homepage</TITLE>


</HEAD>

<FRAMESET ROWS="100%,*" BORDER="0" FRAMEBORDER="0">

<FRAME SRC="http://serverip/" SCROLLING="AUTO" NAME="bannerframe" NORESIZE>

</FRAMESET>

<NOFRAMES>

Meine private Homepage

<P>

<DIV ALIGN="CENTER"><A HREF="http://serverpage/</A></DIV>

</NOFRAMES>

</HTML>

Gruß

debitux

Link zu diesem Kommentar
Auf anderen Seiten teilen

So jetzt klappts...

Ich hatte den Fehler gemacht die Seite über die Strato Domain aufzurufen... Deswegen wurde Stratos eigene IP in das Framset geschrieben und ich bekam (was eigentlich auch verständlich ist) eine Fehlermeldung bei der Domain...

Naja egal jetzt funktionierts...

Die IP FUnktion ist noch nicht so doll. Aber vielleicht kann es jemand brauchen, oder vielleicht hat jemand einen Verbesserungsvorschlag... Bin ja kein Programmierer :-)


<?php


function localserver()

{

 exec('ifconfig',$catch);

 foreach($catch as $line){

        if(eregi('addr',$line))

        {

                if(eregi('P-t-P',$line))

                {

                list($t,$ip) = split(':',$line);

                $ip = trim($ip, "P-t-P");

                $ip = ereg_replace(" +", " ", $ip);

                return $ip;

                }

        }

 }

}


$server_ip = localserver();

$filename = "index.html";

$dz = fopen($filename,"r+");

exec('cp index.html index.html.save');

$contents = fread ($dz, filesize ($filename));

$fertig = str_replace('serverip',$server_ip,$contents);

rewind( $dz );

fwrite ($dz,$fertig);

fclose($dz);

exec('mv index.html.save index.html');


$ftp_server = "";

$ftp_user_name = "";

$ftp_user_pass = "";

$destination_file = "index.html";

$source_file = "index.html";


$conn_id = ftp_connect("$ftp_server");

if (!$conn_id)

{

        echo "Keine FTP Verbindung!\n";

        die;

}

else

{

        echo "Verbunden mit $ftp_server\n";

}


$login_result = ftp_login($conn_id, "$ftp_user_name", "$ftp_user_pass");


if (!$login_result)

{

echo "Login fehlgeschlagen...! ($login_result)\n";

echo "Server: $ftp_server\n Benutzer: $ftp_user_name\n";

die;

}

else

{

echo "Eingeloggt in $ftp_server, mit dem Benutzer: $ftp_user_name\n";

}


$pwd = ftp_pwd($conn_id);

echo "Aktuelles Verzeichnis $pwd\n";

$upload = ftp_put($conn_id, "$destination_file", "$source_file", FTP_BINARY);


if (!$upload)

{

        echo "Ftp upload war fehlerhaft!";

}

else

{

        echo "Datei $source_file auf $ftp_server als $destination_file geschrieben\n";

}

ftp_quit($conn_id);

?>

Damit das Skript funzt, muss man nur eine index.html ins selbe Verzeichnis legen, die ftp Daten angeben usw.... In der index.html muss an der Stelle wo die IP stehen soll, einfach nur "serverip" stehen... thats all...

Gruß + N8

debitux

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...