Avatar billede zerubbabel Nybegynder
11. januar 2010 - 22:31 Der er 8 kommentarer og
1 løsning

Admin afdeling, rette i filer en mappe baglæns

Lige nu bruger jeg dette til at rette i mine filer:

update.php:

<?php
set_magic_quotes_runtime(0);
/// update.php

$val = $_GET['side'];
echo "Filen til siden du ændrer er: $val";

$file=fopen("$val","r") or die("Cannot open");
while(!feof($file)){
$temp=fgets($file, 4096);
$content .= $temp;
}
fclose($file);
?>
<form action="target.php" method="post">
<textarea name="content" cols="56" rows="16"><? echo $content ?></textarea>
<input type="hidden" name="filename" value="<? echo $val ?>">
<input type="submit">
</form>

Altså bruger jeg det sådan at jeg skriver /update.php?p=skalopdateres.php

og en target.php der ser sådan her ud..:

<?
///target.php
$content = stripslashes($_POST["content"]);
$filename = $_POST["filename"];
$file = fopen($filename, "w") or die("Cannot open $file_name");
fwrite($file, $content );
fclose($file); 

?>
<a href="opdater.php">Tilbage til oversigten over sider der kan opdateres</a>

Det virker fint så længe filerne ligger i samme mappe som de filer der skal opdateres.. Men jeg vil jo gerne have disse filer ind i en admin mappe, og så skal de kunne rette i filer en mappe bagud..

Nogen der har nogle ideer til det?
Avatar billede repox Seniormester
12. januar 2010 - 08:10 #1
Brug en relativ sti til at angive at det er mappen før, du vil anvende:


...
  $val = "../".$_GET["side"];
...



Men udover det, så er det nok et af de mest usikre scripts jeg har set længe...
Avatar billede zerubbabel Nybegynder
12. januar 2010 - 14:39 #2
Arrh, tak. Havde nok tænkt det skulle være noget med det, vidste bare ikke det ville virke når det er med det der ?p= noget..

Det behøver ikke at være så sikkert vil jeg sige. Men hvis der er noget nemt man lige kan gøre for at gøre det lidt mere sikkert så tar jeg da med glæde imod forslag..
Avatar billede repox Seniormester
12. januar 2010 - 14:45 #3
Det er desværre ikke noget man lige 'nemt' kan gøre; generelt er der mange ting man skal tage højde for - og de rammer skal skabes i en større helhed...
Men man kunne jo starte med at sikre sig at man ikke kan komme til at uhensigtsmæssigt overskrive en vigtig fil...
Hint:
admin/update.php?side=admin/update.php
Avatar billede zerubbabel Nybegynder
12. januar 2010 - 15:11 #4
Ja, det kan selvfølgeligt være rigtigt, hvordan gør jeg lige det..

Kan det virke med en if ($p = admin/update.php) die.. Eller sådan noget..

For jeg syntes nemlig ikke jeg har chmoded nogen filer på serveren, så egentligt forstår jeg ikke helt at den overhovedet kan ændre i dem..
Avatar billede repox Seniormester
12. januar 2010 - 15:21 #5
Det er jo desværre kun en lappeløsning du er ude i...
Forestil dig at du skal have sådan noget for hver side du helst ikke vil have redigeret?
Avatar billede zerubbabel Nybegynder
12. januar 2010 - 16:01 #6
Jooh.. Men jeg tror der kommer til at være 10 sider i det hele eller sådan noget. Og de 2 af dem er det der update script, ellers er det bare en index fil, der includer en menu.php en top.php og så en indhold.php side, alt efter hvilken side p er sat til. Såår. Det er jo ikke det vilde..
Avatar billede repox Seniormester
12. januar 2010 - 16:12 #7
Well, det er jo op til dig selv; jeg ville bare påpege at det var noget usikkert det du havde lavet...
Avatar billede zerubbabel Nybegynder
12. januar 2010 - 16:48 #8
Hehe. Det kan du jo også have ret i. Men jeg er ret n00b indenfor php, så det er lige hvad jeg kunne flække sammen.. Kan være det bliver bedre med tiden..

Smid et svar, du kan jo lige så godt få dine point, det virkede jo perfekt det der med ../
Avatar billede repox Seniormester
12. januar 2010 - 19:23 #9
Det fik du her
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

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