Hallo,
ich habe versucht mir eine (sehr einfache) Seite zum vergleichen von Text-Dateien zu schreiben.
Der Vergleich an sich hat auch ganz gut geklappt, war aber umständlich, da ich die Dateien vorher per Hand auf den Server hochladen musste.
Also wollte ich versuchen das ganze mit Upload zu machen.
Nun passiert folgendes:
Wenn ich beim Formular auf den submit-button drücke, erscheint wieder das formular, egal ob ich Dateien angegeben habe, oder nicht.
Ich habe versucht die Überprüfung des $_POST mit empty, !isset und sogar $_POST['file1'] == "" zu verändern, jeweils mit und ohne der 2. Bedingung, aber egal was, immer kommt das Formular wieder.
Ich habe auch schon versucht die $_POSTs mit echo auszugeben auf der formularseite, für den fall, dass ich einfach eine Falsche Bedingung habe, aber nicht hilft.
Sieht jemand von euch vielleicht spontan den Fehler? Ich schau jetzt schon seid mindestens 1 Stunde über das lächerliche Stück Quelltext x_X
ich habe versucht mir eine (sehr einfache) Seite zum vergleichen von Text-Dateien zu schreiben.
Der Vergleich an sich hat auch ganz gut geklappt, war aber umständlich, da ich die Dateien vorher per Hand auf den Server hochladen musste.
Also wollte ich versuchen das ganze mit Upload zu machen.
PHP-Code:
<?
session_start();
echo '
<head><basefont face="arial"><style type="text/css">
<!--
p { font-family:Arial,sans-serif; font-size:10pt; }
a:link { text-decoration:none; font-weight:none; color:#000000; }
a:visited { text-decoration:none; font-weight:none; color:#000000; }
a:hover { text-decoration:none; font-weight:none; }
a:active { text-decoration:underline; font-weight:bold; }
-->
</style></head>
';
if (empty($_POST['file1']) OR empty($_POST['file2']))
{
echo '
<form enctype="multipart/form-data" action="vergleich.php" method="POST">
Datei 1: <input type="file" name="file1"><br>
Datei 2: <input type="file" name="file2"><br><br>
<input type="submit" value="Vergleichen">
</form>
';
}
else
{
$file = $_POST['file1'];
$dateiname = basename($file);
copy($file, "/files/1/" . $dateiname);
$path = "c:/Web/files/1/";
$open = fopen($path . $dateiname, "r");
$i = 0;
while (!feof($open))
{
$datei1[$i] = fgets($open, 4096);
$i++;
}
fclose ($open);
$file = $_POST['file2'];
$dateiname = basename($file);
copy($file,"/files/2/" . $dateiname);
$path = "c:/Web/files/2/";
$open = fopen($path . $dateiname, "r");
$i = 0;
while (!feof($open))
{
$datei2[$i] = fgets($open, 4096);
$i++;
}
fclose ($open);
$count = $i;
$i = 0;
$error = 0;
echo '<table>';
while ($i <= $count)
{
echo '<tr>';
echo '<td>'.$datei1[$i].'</td>';
echo '<td>';
if ($datei1[$i] == $datei2[$i])
{
echo '<font color="black" size="5">=</font>';
}
else
{
echo '<font color="red" size="5">!=</font>';
$error++;
}
echo '</td>';
echo '<td align="right">'.$datei2[$i].'</td>';
echo '</tr>';
$i++;
}
echo '</table><br>';
echo 'Es gab '.$error.' Unterschiede';
}
?>
Wenn ich beim Formular auf den submit-button drücke, erscheint wieder das formular, egal ob ich Dateien angegeben habe, oder nicht.
Ich habe versucht die Überprüfung des $_POST mit empty, !isset und sogar $_POST['file1'] == "" zu verändern, jeweils mit und ohne der 2. Bedingung, aber egal was, immer kommt das Formular wieder.
Ich habe auch schon versucht die $_POSTs mit echo auszugeben auf der formularseite, für den fall, dass ich einfach eine Falsche Bedingung habe, aber nicht hilft.
Sieht jemand von euch vielleicht spontan den Fehler? Ich schau jetzt schon seid mindestens 1 Stunde über das lächerliche Stück Quelltext x_X
Kommentar