Mark Jäger: PHP - Dateien von anderem Server holen und speichern

Hallo Forum!

Folgendes Problem:

Vielleicht kennen das die Studenten unter euch: man hat einiges an webspace an der Uni zur Verfügung, die Terminals sind aber immer belegt, obwohl man sich doch nur "kurz" das neue Service-Pack herunterladen will.
Ich möchte nun folgendes machen: ein HTML-Formular, in das ich die URL einer Datei eingebe (von zuhause,...), die ich herunterladen will. Der Webserver der Uni soll nun die Datei in meinem Webspace speichern, die ich mir dann, wenn ich in der uni bin, abholen kann.

Meine Lösung: Datei mit PHP abholen und speichern.
Problem: geht nicht

Skript:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
 <title>Untitled</title>
</head>
<?php
require("conf.inc.php"); // server-variablen

function getData(){
 global $mysql_server,$mysql_user,$mysql_pass,$mysql_db,$db;
 $mysql_query_string='SELECT * FROM files';
 $mysql_query_results=mysql_query($mysql_query_string,$db)
  or die($mysql_query_string."<br>".mysql_errno().": ".mysql_error);
 $i=0;
 while ($daten = mysql_fetch_array($mysql_query_results,MYSQL_ASSOC)) {
  $states[$i++]=$daten;
 }
 $i=null;
 return $states;
}

if(isset($insert)){
 $sourceFile = fopen ($webFile, "r");
 $sourceFileContent = fread ($sourceFile, filesize($sourceFile))
 $destFile = fopen ("files/".$sourceFile_name , "w");
 fwrite($destFile,$sourceFileContent, filesize ($webFile));
 fclose($destFile);
 $mysql_query_string='INSERT INTO files (path) VALUES ("asdfa")';
  mysql_query($mysql_query_string,$db)
 or die($mysql_query_string."<BR>".mysql_errno().": ".mysql_error());
}

?>
<body>
<form action="index.php" enctype="multipart/form-data" name="form1" id="form1" method="get">
 <input type="text" name="webFile" id="webFile" size="50">
 <input type="submit" name="insert" id="insert" value="abschicken">
</form>

<table bgcolor="#808080" cellspacing="2" cellpadding="0" border="0">
<form action="index.php" enctype="multipart/form-data" name="form2" id="form2" method="get">
<?php
$data=getData();
for($i=0;$i<count($data);$i++){
 echo'
<tr>
    <td>'.$i.'</td>
    <td><a href="'.$data[$i]["path"].'">'.$data[$i]["path"].'</a></td>
 <td><input type="checkbox" name="delete" id="delete" value="true"></td>
</tr>';
}
?>

<tr>
    <td>
  <input type="submit" name="delete" id="delete" value="delete checked">
 </td>
</tr>
</table>
</form>
</body>
</html>

  1. Ich möchte nun folgendes machen: ein HTML-Formular, in das ich die URL einer Datei eingebe (von zuhause,...), die ich herunterladen will. Der Webserver der Uni soll nun die Datei in meinem Webspace speichern, die ich mir dann, wenn ich in der uni bin, abholen kann.

    Meine Lösung: Datei mit PHP abholen und speichern.
    Problem: geht nicht

    Geht nicht? Wohin? Nach Hamburg, München oder Wien?

    Es wäre hilfreich, wenn du eine Fehlermeldung oder ein Verhalten dokumentieren könntest, anstatt einen Haufen Code hier reinzukippen und dann die Allgemeinheit raten zu lassen, WAS denn nun geht und was nicht.

    Aber..

    if(isset($insert)){
    $sourceFile = fopen ($webFile, "r");

    ..dazu wäre es ganz sinnvoll, wenn man erstmal selber prüft, wo denn der Haken sein könnte bzw. bis wo das Skript läuft und wo es dann aufhört.
    Dann wäre dir nämlich ziemlich wahrscheinlich innerhalb von fünf Sekunden aufgefallen, das der fopen()-Teil nicht ausgeführt wird, weil $insert nicht gesetzt ist.

    <body>
    <form action="index.php" enctype="multipart/form-data" name="form1" id="form1" method="get">
    <input type="text" name="webFile" id="webFile" size="50">
    <input type="submit" name="insert" id="insert" value="abschicken">
    </form>

    Und wohl auch nicht gesetzt sein kann. Es macht keinen Sinn, den Wert des Absende-Tasters mit dem Formular mitzuschicken (beim Absenden wird er wohl gedrückt worden sein).

    Prüfe auf $webfile.

    Sehr hilfreich wären dir die Funktionen echo und phpinfo() gewesen.

    Gruß,
      soenk.e