Avatar billede henrywood Nybegynder
16. september 2002 - 23:48 Der er 2 kommentarer

Filrettigheder og PHP (CHMOD)

Hejsa !

Jeg har følgende kode:

if ($form->submitted && $form->valid) {

    $templateName = $form->getSubmitValue('name');

    $templateFile = realpath(INCLUDE_PATH.'/templates').'/'.$templateName.'.php';
    if (file_exists($templateFile)) {
    $new = false;
    if (!is_writeable($templateFile))
        {chmod ($templateFile,0777); error('Der kunne ikke skrives til filen: <pre>'.$templateFile.'</pre><br><br>Tryk Opdater for at prøve at gemme igen,'); }
    } else
    $new = true;
   
    $fd = fopen($templateFile, "w");
    $body = str_replace("\r", '', $form->getSubmitValue('body'));
    $body = templateTagsToIncludes($body);
    fputs($fd, $body);
    fclose ($fd);
    if ($new && !chmod($templateFile, 0664))
    error('Kunne ikke sætte rettigheder på filen '.$templateFile);
   
    if (queryFetch(buildSQLSelect('pages', 'COUNT(name)', array('name' => $templateName)))) {
    // There is a page for this template
    info('Skabelonen blev gemt <br><a HREF="?page='.$templateName.'">Klik her for at se siden</a>');
    } else {
    info('Skabelonen blev gemt');
    }
   
} elseif (isset($template) && file_exists($templateFile = realpath(INCLUDE_PATH.'/templates/'.$template.'.php'))) {
    // Prefil form

    $form->elements['body']->value = '';
    $fd = fopen($templateFile, "r");
    while (!feof ($fd))
    $form->elements['body']->value .= fgets($fd, 4096);
    fclose ($fd);
    $form->elements['body']->value = templateIncludesToTags($form->elements['body']->value);
} else {
    $form->elements['body']->value = "\nIndtast noget indhold til siden";
}

og templates biblioteket er CHMOD 0777
Koden bruges til at gemme en fil eller rette i en på en formular. Problemet er dog, at jeg kun kan gemme/rette (dvs. køre ovenstående kode een gang) før jeg får en 'Kunne ikke skrive til filen)

Med andre ord, hvad skal jeg CHmode templates biblioteket til (som indeholder php filer - således at dette ikke sker

Samt hvordan sætter jeg den korrekte CHMOD kode via et FTP program (dvs. hvad skal være klikket af i Other, Group og Owner)
Avatar billede webmasterdk Praktikant
17. september 2002 - 08:56 #1
Det er jo ikke kun din mappe, men også de dertil hørende filer der skal cdmoddes...
Se evt.: http://www.php.net/manual/en/function.chmod.php
Avatar billede henrywood Nybegynder
17. september 2002 - 10:01 #2
$templateFile er også filnavnet, f.eks /home/sites/site1/include/templates/template.php så den chmod 0664 arbejder vel på filen ?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester