Bestanden op server bewerken

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Robert H

Robert H

29/05/2010 20:42:06
Quote Anchor link
Ik ben bezig met een mini-script om een bestand te openen, te laten zien, te bewerken en weer op te slaan. Dit lukt allemaal, alleen met een bestand dat in dezelfde folder als het script staat.

Nu heb ik meerdere bestanden die ik via dit script wil bewerken en die staan in andere folders.

Ter illustratie:
Het script: site.nl/script/script.php
Bestand 1: site.nl/folder/bestand.txt
Bestand 2: site.nl/folder2/bestand.txt
Bestand 3: site.nl/folder3/bestand.txt

Ik heb al verschillende dingen geprobeerd, zoals dat je in HTML doet ../ voor een bestandsnaam zetten e.d. maar dat haalt niks uit. Ik heb dus geen idee hoe je dit met PHP moet doen.

Wat verder de bedoeling is, en wat ik wel kan, is dat je uiteindelijk bij script.php in de url een variabele meegeeft, bijv. p=naam. Waar naam gelijk staat aan de naam van een folder, om zo d.m.v. deze variabele kan bepalen in welke folder je bestand geopend moet worden. De namen van deze bestanden zijn wel overal gelijk.

Is er iemand die mij kan helpen met het openen van deze bestanden in andere folders?

Dit is mijn code:
Note: Ik heb een deel afgekeken van een ander script, ik weet dus niet van elk attribuut wat deze doet.
Verder: Nu staat er als bestand text.txt, dit moet dus een bestand worden in een variabele folder.
Het script zoals hij hier staat werkt wel.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php

$file
= "text.txt";
  
if(isset($_POST['edit']))
    {

    $newdata = $_POST['newdata'];
    $fw = fopen($file, 'w') or die('Kan bestand niet openen!');
    $fb = fwrite($fw, stripslashes($newdata)) or die('Kan niet naar bestand schrijven!');
    fclose($fw);
    echo "Gelukt!";
    }

else{
    $fh = fopen($file, "r") or die("Kan bestand niet openen!");
    $contents = fread($fh, filesize($file)) or die("Kan bestand niet lezen!");
    fclose($fh);
    ?>

    
    <h3>Paginanaam</h3>
        <form method='post'>
        <textarea name='newdata' cols='100%' rows='10'><? echo "$contents"; ?></textarea>
        <input type='submit' name='edit' value='Bewerken'>
        </form>
        
    <? } ?>
Gewijzigd op 29/05/2010 20:43:59 door Robert H
 
PHP hulp

PHP hulp

25/04/2024 17:05:42
 

29/05/2010 21:41:21
Quote Anchor link
Als je een bestand op relatieve manier wilt openen, dan open je het dus ten opzichte van het bestand wat nu draait. Dus als je bestand één wilt openen dan is de path:
../folder/bestand.txt
Let op, geen slash ervoor.
Als je het absolute wilt doen, dan wordt het iets als (uitgaande van linux):
/home/site.nl/htdocs/folder/bestand.txt
En dat is ook maar net hoe het op je server is ingesteld.
 
Robert H

Robert H

29/05/2010 21:53:41
Quote Anchor link
Hmm, relatieve manier heb ik eerder al geprobeert maar gaf direct een error. Nu werkt het ineens wel, denk dus dat ik een typfoutje heb gemaakt.

Absolute wijze werkt ook, dus ze doen het nu allebei! Ook al met variabele in de url.

Bedankt!
 

29/05/2010 21:56:12
Quote Anchor link
Let wel op variabelen in de url... Kan gevaarlijk zijn.
Mooi dat het werkt.
 
Robert H

Robert H

29/05/2010 22:03:35
Quote Anchor link
Ja, heb je gelijk in. Maar wat ik nu maak is afgeschermd voor één eindgebruiker dus zit daar nu nog niet over in. Neemt niet weg dat ik van mezelf weet dat ik me later ook nog moet verdiepen in het maken van veilige scripts.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.