Merkwürdiger Fehler...
Yadgar
- php
0 shn0 Cheatah0 Der Martin
High!
Ich habe folgendes vor: eine (vorhandene) Datei soll umbenannt und dann in einen Ordner meiner Wahl verschoben werden. Ursprünglicher Dateiname, neuer Dateiname und Zielordner sollen über ein HTML-Formular an eine PHP-Datei übermittelt werden.
Hier der Code:
[code="php"]
<?php
echo "<form action='rename_and_move.php' method='POST'>";
echo "<p>Welche Datei möchten Sie umbenennen? ";
echo "<input type='text' name='datei'></input></p>";
echo "<p>Wie lautet der neue Dateiname? ";
echo "<input type='text' name='datei_neu'></input></p>";
echo "<p>In welchen Ordner soll die Datei verschoben werden? ";
echo "<input type='text' name='zielordner'></input></p>";
echo "<p><input type='submit' name='egal' value='Versenden'></input></p>";
?>
<?php
$datei = $_POST["datei"];
$datei_neu = $_POST["datei_neu"];
$zielordner = $_POST["zielordner"];
if (!@rename($datei, $datei_neu))
{
echo "Die Datei $datei konnte nicht umbenannt werden!";
}
else
{
echo "Die Datei $datei wurde in $datei_neu umbenannt!<br>";
$datei = $datei_neu;
if (empty($zielordner)) $zielordner=".";
$datei_neu = $zielordner.$datei_neu;
if (!@copy($datei, $datei_neu))
{
echo "Die Datei $datei konnte nicht nach $zielordner kopiert werden!"; // FEHLERMELDUNG!
}
else
{
echo "Die Datei $datei wurde nach $zielordner kopiert!<br>";
if (!@unlink($datei))
{
echo "Das Original der Datei $datei_neu konnte nicht gelöscht werden!";
}
else
{
echo "Das Original der Datei $datei_neu wurde gelöscht!";
}
}
}
?>
[/php]
Und für den zweiten Teil (rename_and_move.php) bekomme ich in der mit // FEHLERMELDUNG markierten Zeile folgende Meldung:
Parse error: syntax error, unexpected T_EXIT in EProgramme\xampp\htdocs\Bleimann\rename_and_move.php on line 17
...und das, obwohl ich weit und breit kein exit verwende!
Bis bald in www.khyberspace.de !
Yadgar
Servus,
if (empty($zielordner)) $zielordner=".\";
Hier maskierst du das schliessende double-quote, somit werden folgende Zeilen als String geparst
$datei_neu = $zielordner.$datei_neu;
if (!@copy($datei, $datei_neu))
{
echo "Die
~~~-----------^
Hier befindet sich das schliessende quote. Vor der Funktion die() (aehnlich wie exit, selbe Fehlermeldung) fehlt der Semicolon.
Gruss
Patrick
--
sh:( fo:| ch:? rl:( br:> n4:( ie:% mo:) va:} de:> zu:) fl:| ss:| ls:[ js:|
Hi,
Parse error: syntax error, unexpected T_EXIT in EProgramme\xampp\htdocs\Bleimann\rename_and_move.php on line 17
...und das, obwohl ich weit und breit kein exit verwende!
nein, aber Du verwendest die():
[...]
if (empty($zielordner)) $zielordner=".";
$datei_neu = $zielordner.$datei_neu;
if (!@copy($datei, $datei_neu))
{
echo "
Beginnend beim "." ist dies Dein der Variable $zielordner zugewiesener String. Und es folgt:
Die Datei $datei konnte nicht nach $zielordner kopiert werden!"; // FEHLERMELDUNG!
Also die(). Leider ist PHP nicht case-sensitive.
Cheatah
Hallo,
Ich habe folgendes vor: eine (vorhandene) Datei soll umbenannt und dann in einen Ordner meiner Wahl verschoben werden.
unabhängig von deinem Syntaxproblem, das Patrick und Cheatah ja schon erschöpfend erklärt haben, wundere ich mich, warum du das so kompliziert machst:
(1) erst im gleichen Verzeichnis umbenennen
(2) dann ins Zielverzeichnis kopieren
(3) dann die Originaldatei löschen
Warum übergibst du der Funktion rename() nicht gleich den kompletten Pfad (bestehend aus neuem Zielverzeichnis und neuem Namen) als zweiten Parameter? Dann hättest du den gesamten Vorgang in einem atomaren Aufruf. Einfacher, sicherer, sauberer.
Bei dir kann zum Beispiel im Schritt (1) ein Fehler auftreten, wenn eine Datei mit dem *neuen* Namen im *alten* Verzeichnis existiert, obwohl die überhaupt nichts mit dem gewünschten Vorgang zu tun hat.
Oder in Schritt (2), wenn die Kopie fehlschlägt, weil der Datenträger voll ist. Dann bleibt eine umbenannte Datei im Originalverzeichnis übrig.
So long,
Martin