Gå til innhold

Endre navnet på en mappe, får feilmelding [LØST]


Anbefalte innlegg

Skrevet (endret)

Jeg har et script som skal si hvor f.eks bilder til mitt galleri skal havne. Hvis jeg endrer navnet på den mappen i et input felt så skal den endre mappenavnet via php.

 

Hvis jeg skriver f.eks "bilder/" i input feltet, men mappa heter "galleri/" fra før så skal "galleri/" bli endret til "bilder/".

 

Jeg prøvde med denne koden:

 

<?php

$smiley_dir2 = '/'.Smiley.'';
$blogg_dir2 = '/'.Blogg.'';
$galleri_dir2 = '/'.Galleri.'';
$ord_dir2 = '/'.Ord.'';
$header_dir2 = '/'.Header.'';

$smiley_dir3 = '/'.$smiley_dir.'';
$blogg_dir3 = '/'.$blogg_dir.'';
$galleri_dir3 = '/'.$galleri_dir.'';
$ord_dir3 = '/'.$ord_dir.'';
$header_dir3 = '/'.$header_dir.'';

rename($smiley_dir2, $smiley_dir3);
rename($blogg_dir2, $blogg_dir3);
rename($galleri_dir2, $galleri_dir3);
rename($ord_dir2, $ord_dir3);
rename($header_dir2, $header_dir3);

?>

 

Jeg har sjekket alle variablene og de blir satt. Jeg får denne meldingen:

 

Warning: rename(/galleri/,/bilder/): Ingen slik fil eller filkatalog in /home/******/public_html/innstillinger.php on line 337

 

Jeg har selvfølgelig sjekket at alle mapper finnes fra før.

 

Jeg prøvde uten de mappe greiene i variablene og den samme meldingen kommer. Hva er feil?

 

Takker for svar på forhånd!

Endret av ThaMezzy
Videoannonse
Annonse
Skrevet (endret)

må det ikke være rename("/home/******/public_html/galleri/","/home/******/public_html/bilder/"):?

 

hele pathen altså.

 

edit: og gåseøyne

Endret av MC2
Skrevet
må det ikke være rename("/home/******/public_html/galleri/","/home/******/public_html/bilder/"):?

 

hele pathen altså.

 

edit: og gåseøyne

5726791[/snapback]

 

Gjorde alt dette nå, og dette funket heller ikke. Samme feilmelding.

Skrevet

Denne lille kodesnutten forklarer rename()-funksjonen i php

<?php
/*
* Henter ut full dokumentsti til mappen scriptet er i
*/
$path = getenv(DOCUMENT_ROOT);


/*
* $mydir er en mappe jeg alt har på serveren
* i document_root
* Kan også bruke variabler slik:
* Eksempelvis blir det slik istedetfor
* $myFolderForRenaming = '/testdir';
* $mydir = $path . $myFolderForRenaming;
*/
$mydir = $path. "/testdir"; /* Denne stien kan være relativ (siste del) */
/* Eksempel på en relativ sti:
* $mydir = $path. "/testdir/otherdir/folderIwantToRename";
*/

/* 
* Gir $mydir et nytt navn, kan også bruke variabler
* Eks $myOtherDir = '/mappe_med_nytt_navn';
* rename($mydir, $path .$myOtherDir);
*/
rename($mydir, $path. "/mydir");

?>

Skrevet

CruellaDeVille:

 

Nå får jeg denne feilmeldingen etter å ha prøvd det du sa:

 

Warning: rename(/home/******/public_html/galleri/,/bilder/): Ikke tilgang in /home/******/public_html/innstillinger.php on line 377

 

Mappene er chmod'et 777.

Skrevet
CruellaDeVille:

 

Nå får jeg denne feilmeldingen etter å ha prøvd det du sa:

 

Warning: rename(/home/******/public_html/galleri/,/bilder/): Ikke tilgang in /home/******/public_html/innstillinger.php on line 377

 

Mappene er chmod'et 777.

5727497[/snapback]

 

Kan ikke du paste inn koden du bruker?

Skrevet

 

La oss si at mappen for $dir er skrivbar (chmod 777)

Så oppretter du mappen Smiley, Blog, Gallery osv etc.

Er de også 777?

Med mindre du eksplisitt setter chmod 777 rekursivt i mappen $dir vil alle undermapper kanskje få andre tilgangsrettingheter (eks chmod 755, som jeg mener å huske er standard)

 

Siden feilmeldingen din er at du ikke har tilgang vil jeg tro at det har noe med tilgangsrettigheter på undermapper. Kan ikke du sjekke det iallfall?

 

Og en ting til:

Denne delen av koden kan gjøres enklere:

# if(file_exists($blogg_dir3) AND $blogg_dir3 == $blogg_dir2) {
#  
#  }
#  else
#  {
#  rename($blogg_dir2, $blogg_dir3);
#  }

 

dette kan gjøres om til en negasjon:

if(!(file_exists($blogg_dir3) AND $blogg_dir3== $blogg_dir2)){
rename($blogg_dir2, $blogg_dir3);
}
(

 

sparer noen linjer kode, egentlig ikke noe mer enn det.

Skrevet (endret)

Nå funket det. Jeg chmod'et public_html til 777 så funket det. Jeg chmod'et selvfølgelig alle viktig ting tilbake.

 

Takker for all hjelp her.

Endret av ThaMezzy

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...