Bestanden op server bewerken
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)
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
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>
<? } ?>
$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
../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.
Absolute wijze werkt ook, dus ze doen het nu allebei! Ook al met variabele in de url.
Bedankt!
Mooi dat het werkt.
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.