Bitte um Erklärung forech und rename

quidnovi

Erfahrenes Mitglied
Hallo Wissende :-),

Lasse mir den Inhalt eines Imageordners ausgeben.
Die Namen der Files gebe ich in ein Textfeld zu Umbenennung an.

PHP:
echo "<input type='hidden' name='altName[]' value='".$eintrag."'>".
	  "<input type='text' name='neuName[]' value='".$eintrag."'>";
....

"<input type='hidden' name='woher' value='".$_GET['openDir']."'>".
"<input type='hidden' name='images[]' value='".$eintrag."'>".
"<input type='hidden' name='pdf[]' value='".$eintrag."'>".
"<input type='hidden' name='loeschen[]' value='".$eintrag."'>".
"<input type='hidden' name='altName[]' value='".$eintrag."'>".
"<input type='hidden' name='NeuName[]' value='".$eintrag."'>".
"<input type='submit' name'sendfiles' value='Aktion durchf&uuml;hren'>".

Das ganze geht dann an ein Verarbeitungsscript, in welchem - unter anderem - die Umbenennung durchgeführt wird.

mit:
PHP:
print_r($_POST['altName']);
echo "<br />";
print_r($_POST['neuName']);

lasse ich mir die Arrays ausgeben. Sieht dann so aus:
Code:
Array ( [0] => 2058.jpg [1] => 2148.jpg [2] => 2227.jpg [3] => TH_2058.jpg [4] => TH_2148.jpg [5] => TH_2227.jpg [6] => )
Array ( [0] => A2058.jpg [1] => B2148.jpg [2] => C2227.jpg [3] => TH_2058.jpg [4] => TH_2148.jpg [5] => TH_2227.jpg )

Die Umbenennung erfolgt mit folgendem Code:
PHP:
if (!empty($_POST['neuName']) && !empty($_POST['altName'])){
		// Ausgewählte Bilder anzeigen
			foreach ($_POST['altName'] as $alterName){
				foreach ($_POST['neuName'] as $neuerName){
						rename("./Fotoordner/".$_POST['woher']."/".$alterName,"./Fotoordner/".$_POST['woher']."/".$neuerName);
			}
		}
	}

Das funktioniert auch, die Dateien werden wie gewünscht umbenannt, ich erhalte aber folgende Fehlermeldung (in dem Ordner sind 3 Originalbiler und die dazugehörigen Thumbs):
Code:
Warning: rename(./Fotoordner/Fotos1/2058.jpg,./Fotoordner/Fotos1/B2148.jpg) [function.rename]: No such file or directory in W:\xampp\htdocs\imide_kunden\www.manet.atBildergalerie\copyOrdnerMitInhalt.php on line 74

Warning: rename(./Fotoordner/Fotos1/2058.jpg,./Fotoordner/Fotos1/C2227.jpg) [function.rename]: No such file or directory in W:\xampp\htdocs\imide_kunden\www.manet.atBildergalerie\copyOrdnerMitInhalt.php on line 74

Warning: rename(./Fotoordner/Fotos1/2058.jpg,./Fotoordner/Fotos1/TH_2058.jpg) [function.rename]: No such file or directory in W:\xampp\htdocs\imide_kunden\www.manet.atBildergalerie\copyOrdnerMitInhalt.php on line 74

Warning: rename(./Fotoordner/Fotos1/2058.jpg,./Fotoordner/Fotos1/TH_2148.jpg) [function.rename]: No such file or directory in W:\xampp\htdocs\imide_kunden\www.manet.atBildergalerie\copyOrdnerMitInhalt.php on line 74

Warning: rename(./Fotoordner/Fotos1/2058.jpg,./Fotoordner/Fotos1/TH_2227.jpg) [function.rename]: No such file or directory in W:\xampp\htdocs\imide_kunden\www.manet.atBildergalerie\copyOrdnerMitInhalt.php on line 74

Warning: rename(./Fotoordner/Fotos1/2148.jpg,./Fotoordner/Fotos1/A2058.jpg) [function.rename]: File exists in W:\xampp\htdocs\imide_kunden\www.manet.atBildergalerie\copyOrdnerMitInhalt.php on line 74

Warning: rename(./Fotoordner/Fotos1/2148.jpg,./Fotoordner/Fotos1/C2227.jpg) [function.rename]: No such file or directory in W:\xampp\htdocs\imide_kunden\www.manet.atBildergalerie\copyOrdnerMitInhalt.php on line 74

Warning: rename(./Fotoordner/Fotos1/2148.jpg,./Fotoordner/Fotos1/TH_2058.jpg) [function.rename]: No such file or directory in W:\xampp\htdocs\imide_kunden\www.manet.atBildergalerie\copyOrdnerMitInhalt.php on line 74

Warning: rename(./Fotoordner/Fotos1/2148.jpg,./Fotoordner/Fotos1/TH_2148.jpg) [function.rename]: No such file or directory in W:\xampp\htdocs\imide_kunden\www.manet.atBildergalerie\copyOrdnerMitInhalt.php on line 74

Warning: rename(./Fotoordner/Fotos1/2148.jpg,./Fotoordner/Fotos1/TH_2227.jpg) [function.rename]: No such file or directory in W:\xampp\htdocs\imide_kunden\www.manet.atBildergalerie\copyOrdnerMitInhalt.php on line 74

Warning: rename(./Fotoordner/Fotos1/2227.jpg,./Fotoordner/Fotos1/A2058.jpg) [function.rename]: File exists in W:\xampp\htdocs\imide_kunden\www.manet.atBildergalerie\copyOrdnerMitInhalt.php on line 74

Warning: rename(./Fotoordner/Fotos1/2227.jpg,./Fotoordner/Fotos1/B2148.jpg) [function.rename]: File exists in W:\xampp\htdocs\imide_kunden\www.manet.atBildergalerie\copyOrdnerMitInhalt.php on line 74

Warning: rename(./Fotoordner/Fotos1/2227.jpg,./Fotoordner/Fotos1/TH_2058.jpg) [function.rename]: No such file or directory in W:\xampp\htdocs\imide_kunden\www.manet.atBildergalerie\copyOrdnerMitInhalt.php on line 74

Warning: rename(./Fotoordner/Fotos1/2227.jpg,./Fotoordner/Fotos1/TH_2148.jpg) [function.rename]: No such file or directory in W:\xampp\htdocs\imide_kunden\www.manet.atBildergalerie\copyOrdnerMitInhalt.php on line 74

Warning: rename(./Fotoordner/Fotos1/2227.jpg,./Fotoordner/Fotos1/TH_2227.jpg) [function.rename]: No such file or directory in W:\xampp\htdocs\imide_kunden\www.manet.atBildergalerie\copyOrdnerMitInhalt.php on line 74

Warning: rename(./Fotoordner/Fotos1/TH_2058.jpg,./Fotoordner/Fotos1/A2058.jpg) [function.rename]: File exists in W:\xampp\htdocs\imide_kunden\www.manet.atBildergalerie\copyOrdnerMitInhalt.php on line 74

Warning: rename(./Fotoordner/Fotos1/TH_2058.jpg,./Fotoordner/Fotos1/B2148.jpg) [function.rename]: File exists in W:\xampp\htdocs\imide_kunden\www.manet.atBildergalerie\copyOrdnerMitInhalt.php on line 74

Warning: rename(./Fotoordner/Fotos1/TH_2058.jpg,./Fotoordner/Fotos1/C2227.jpg) [function.rename]: File exists in W:\xampp\htdocs\imide_kunden\www.manet.atBildergalerie\copyOrdnerMitInhalt.php on line 74

Warning: rename(./Fotoordner/Fotos1/TH_2058.jpg,./Fotoordner/Fotos1/TH_2148.jpg) [function.rename]: File exists in W:\xampp\htdocs\imide_kunden\www.manet.atBildergalerie\copyOrdnerMitInhalt.php on line 74

Warning: rename(./Fotoordner/Fotos1/TH_2058.jpg,./Fotoordner/Fotos1/TH_2227.jpg) [function.rename]: File exists in W:\xampp\htdocs\imide_kunden\www.manet.atBildergalerie\copyOrdnerMitInhalt.php on line 74

Warning: rename(./Fotoordner/Fotos1/TH_2148.jpg,./Fotoordner/Fotos1/A2058.jpg) [function.rename]: File exists in W:\xampp\htdocs\imide_kunden\www.manet.atBildergalerie\copyOrdnerMitInhalt.php on line 74

Warning: rename(./Fotoordner/Fotos1/TH_2148.jpg,./Fotoordner/Fotos1/B2148.jpg) [function.rename]: File exists in W:\xampp\htdocs\imide_kunden\www.manet.atBildergalerie\copyOrdnerMitInhalt.php on line 74

Warning: rename(./Fotoordner/Fotos1/TH_2148.jpg,./Fotoordner/Fotos1/C2227.jpg) [function.rename]: File exists in W:\xampp\htdocs\imide_kunden\www.manet.atBildergalerie\copyOrdnerMitInhalt.php on line 74

Warning: rename(./Fotoordner/Fotos1/TH_2148.jpg,./Fotoordner/Fotos1/TH_2058.jpg) [function.rename]: File exists in W:\xampp\htdocs\imide_kunden\www.manet.atBildergalerie\copyOrdnerMitInhalt.php on line 74

Warning: rename(./Fotoordner/Fotos1/TH_2148.jpg,./Fotoordner/Fotos1/TH_2227.jpg) [function.rename]: File exists in W:\xampp\htdocs\imide_kunden\www.manet.atBildergalerie\copyOrdnerMitInhalt.php on line 74

Warning: rename(./Fotoordner/Fotos1/TH_2227.jpg,./Fotoordner/Fotos1/A2058.jpg) [function.rename]: File exists in W:\xampp\htdocs\imide_kunden\www.manet.atBildergalerie\copyOrdnerMitInhalt.php on line 74

Warning: rename(./Fotoordner/Fotos1/TH_2227.jpg,./Fotoordner/Fotos1/B2148.jpg) [function.rename]: File exists in W:\xampp\htdocs\imide_kunden\www.manet.atBildergalerie\copyOrdnerMitInhalt.php on line 74

Warning: rename(./Fotoordner/Fotos1/TH_2227.jpg,./Fotoordner/Fotos1/C2227.jpg) [function.rename]: File exists in W:\xampp\htdocs\imide_kunden\www.manet.atBildergalerie\copyOrdnerMitInhalt.php on line 74

Warning: rename(./Fotoordner/Fotos1/TH_2227.jpg,./Fotoordner/Fotos1/TH_2058.jpg) [function.rename]: File exists in W:\xampp\htdocs\imide_kunden\www.manet.atBildergalerie\copyOrdnerMitInhalt.php on line 74

Warning: rename(./Fotoordner/Fotos1/TH_2227.jpg,./Fotoordner/Fotos1/TH_2148.jpg) [function.rename]: File exists in W:\xampp\htdocs\imide_kunden\www.manet.atBildergalerie\copyOrdnerMitInhalt.php on line 74

Warning: rename(./Fotoordner/Fotos1/,./Fotoordner/Fotos1/A2058.jpg) [function.rename]: Permission denied in W:\xampp\htdocs\imide_kunden\www.manet.atBildergalerie\copyOrdnerMitInhalt.php on line 74

Warning: rename(./Fotoordner/Fotos1/,./Fotoordner/Fotos1/B2148.jpg) [function.rename]: Permission denied in W:\xampp\htdocs\imide_kunden\www.manet.atBildergalerie\copyOrdnerMitInhalt.php on line 74

Warning: rename(./Fotoordner/Fotos1/,./Fotoordner/Fotos1/C2227.jpg) [function.rename]: Permission denied in W:\xampp\htdocs\imide_kunden\www.manet.atBildergalerie\copyOrdnerMitInhalt.php on line 74

Warning: rename(./Fotoordner/Fotos1/,./Fotoordner/Fotos1/TH_2058.jpg) [function.rename]: Permission denied in W:\xampp\htdocs\imide_kunden\www.manet.atBildergalerie\copyOrdnerMitInhalt.php on line 74

Warning: rename(./Fotoordner/Fotos1/,./Fotoordner/Fotos1/TH_2148.jpg) [function.rename]: Permission denied in W:\xampp\htdocs\imide_kunden\www.manet.atBildergalerie\copyOrdnerMitInhalt.php on line 74

Warning: rename(./Fotoordner/Fotos1/,./Fotoordner/Fotos1/TH_2227.jpg) [function.rename]: Permission denied in W:\xampp\htdocs\imide_kunden\www.manet.atBildergalerie\copyOrdnerMitInhalt.php on line 74

Das hat sicher mit den 2 foreach zu tun, kann das Ganze aber nicht umgehen, da ich sonst die alten sowie die neuen Namen nicht habe.

Nur dass es funktioniert, ist mir einfach zu wenig, daher bitte ich Euch, mir den Fehler zu erklären, danke
 
Bei den verschachtelten foreach hast du glaub ich einen Denkfehler drin. Zu jedem alten Namen gehst du die ganze Reihe von Neuen Namen durch und ersetzt das dann. So hat im nachhinein jeder alte Name einmal jeden neuen Namen bekommen und zu guter letzt haben alle den selben Namen, was natürlich nich sein darf. Du musst die beiden Arrays parallel abarbeiten und nich ineinander. Ich kann dir hier leider nix schreiben, weil ich nich viel Zeit hab, aber soviel erstmal zum Prinzip.
 
Hi CraisiePrinzZ,

ja, da haste sicher recht. Werde das mal versuchen und sehen welche Fehlermeldung noch auf Lager sind :), denn ich weiss jetzt noch nicht so recht wie ich das umsetzen kann.
Aber als Ansatz durchaus logisch.

Vielen Dank inzwischen.
 
Ich würd das wohl eher mit einer einfachen for-Schleife machen. Da kannste dann ganz beruhigt alles auslesen. Vorher natürlich die Arrays noch in eine Variable schreiben.

PHP:
$altName = $_POST['altName'];
$neuName = $_POST['neuName'];

for ($i = 0; $i < count($altName); $i++) // Mit count(); wird die Anzahl der Felder gezählt
{
      rename("./Fotoordner/".$_POST['woher']."/".$altName[$i],"./Fotoordner/".$_POST['woher']."/".$neuName[$i]);
}

Probier das ma und wenns nich funktioniert meld dich nochmal. Kann nämlich für nix mehr garantieren nach diesem stressigen Tag. :D
 
Schönen guten Morgen CraisiePrinzZ,

wie einfach doch die Welt sein kann. Beeindruckend! Hast' mich jetzt ein großes Stück vorwärts gebracht, denn dieser Code erklärt sich von selbst.

Vielen Dank und "arbeitsreichen" Tag noch :-):-):-)
 
Zurück