11. januar 2007 - 16:10
Der er
12 kommentarer og 1 løsning
skriv i html filer
skal bruge en php fil der kan lave en liste over html filer i en mappe og hvis man klikker på dem skal man kunne ændre indholdet.. ikke navnet KUN indholdet og ingen wysiwyg editor..
Annonceindlæg fra COMM2IG
12. januar 2007 - 00:56
#1
Jeg har lige hurtigt smasket nogle koder sammen, som jeg havde liggende: <? if(is_dir($_GET['dir']) && !empty($_GET['dir'])){$theDirectory = $_GET['dir']; $get = 1;}else{$theDirectory = ".";} if(is_dir($theDirectory) && empty($_GET['fil'])) { echo "<table><tr><td>Navn</td><td>Type</td><td>Rediger</td></tr>"; $dir = opendir($theDirectory); while(false !== ($file = readdir($dir))) { $type = filetype($theDirectory ."/". $file); if($type != "dir") { echo "<tr><td>" . $file . "</td>"; echo "<td>" . $type . "</td>"; echo "<td>"; if($type == "file") if(!empty($_GET['dir'])) { echo "<a href=\"?fil=" . $_GET['dir'] . "/" . $file . "\">OK</a>"; } else { echo "<a href=\"?fil=" . $file . "\">OK</a>"; } echo "</td></tr>"; } else { if($get == 1){$href = "href=\"?dir=".$_GET['dir']."/" . $file . "\"";}else{$href = "href=\"?dir=" . $file . "\"";} echo "<tr><td><a ".$href.">" . $file ."</a></td>"; echo "<td>" . $type . "</td>"; echo "<td>Kan ikke redigeres</td></tr>"; } } closedir($dir); echo "</table>"; } else if(empty($_GET['fil'])) { echo $theDirectory . " er ikke en mappe"; } if(!empty($_GET['fil'])) { $fil = $_GET['fil']; global $submit; if ($submit) { header("Location: ".$_SERVER['PHP_SELF']); $skrivtil = fopen($fil, "w"); $nytindhold = str_replace("\\","",$nytindhold); fputs($skrivtil, $nytindhold); fclose($skrivtil); } ?> <html><head><title>Rediger en fil</title> <center> <form action="" method="post"> <table border="4" bordercolor="black" cellpadding="12" cellspacing="0"><tr> <th class="blue"><span class="big">Rediger fil</span></th> </tr><tr> <td valign="top" align="center" nowrap>Indtast nyt indhold, og klik på "opdater"<br><br> <textarea name="nytindhold" cols="56" rows="16"> <?php $indhold = str_replace("\\", "", readfile($fil)); echo $indhold; ?></textarea><br><br> <input type="submit" name="submit" value="Opdater"></td> </tr><tr> <th colspan="2" class="blue"><span class="small"> </span></th> </tr></table> <?php } ?>
12. januar 2007 - 15:04
#2
skide godt men tror du at du kan lave det sådan så den ikke viser . og .. og at den bare laver listen så man skal klikke på navnet og ikke ok..?
12. januar 2007 - 15:12
#3
og det må ikke være muligt at ændre php filer.. KUN html filer...
12. januar 2007 - 15:18
#4
hvis man klikker på opdater sker der ikke andet end at alt man har skrevet forsvinder og den viser det samme indhold igen!
13. januar 2007 - 02:16
#5
Så skulle det være fikset: <? $theDirectory = "."; if(is_dir($theDirectory) && empty($_GET['fil'])) { echo "<table><tr><td>Navn</td><td>Type</td></tr>"; $dir = opendir($theDirectory); while(false !== ($file = readdir($dir))) { $type = filetype($theDirectory ."/". $file); $filtype = explode(".", $file); if($type != "dir" && $file != "." && $file != ".." && end($filtype) == "html") { echo "<tr><td><a href=\"?fil=" . $file . "\">" . $file . "</a></td>"; echo "<td>fil</td>"; echo "</td></tr>"; } else if($type == "dir" && $file != "." && $file != "..") { echo "<tr><td>" . $file ."</td>"; echo "<td>mappe</td>"; } } closedir($dir); echo "</table>"; } else if(empty($_GET['fil'])) { echo $theDirectory . " er ikke en mappe"; } if(!empty($_GET['fil'])) { $fil = $_GET['fil']; if ($_POST['submit']) { $skrivtil = fopen($fil, "w"); $nytindhold = str_replace("\\","",$nytindhold); fputs($skrivtil, $nytindhold); fclose($skrivtil); header("Location: ".$_SERVER['PHP_SELF']); } ?> <center> <form action="" method="post"> <table border="4" bordercolor="black" cellpadding="12" cellspacing="0"><tr> <th>Rediger fil</th> </tr><tr> <td valign="top" align="center" nowrap>Indtast nyt indhold, og klik på "opdater"<br><br> <textarea name="nytindhold" cols="56" rows="16"> <?php $indhold = str_replace("\\", "", readfile($fil)); echo $indhold; ?></textarea><br><br> <input type="submit" name="submit" value="Opdater"></td> </tr><tr> <th colspan="2"> </th> </tr></table> <?php } ?>
13. januar 2007 - 09:30
#6
godt men nu kan man ikke åbne mapper... og kan du gøre sådan så man både kan ændre .html OG .htm? ikke php
13. januar 2007 - 14:47
#7
Nu kan man åbne mapperne, og man kan kun ændre i filer, hvor filtypenavnet er .html og .htm: <? if(is_dir($_GET['dir']) && !empty($_GET['dir'])){$theDirectory = $_GET['dir']; $get = 1;}else{$theDirectory = ".";} if(is_dir($theDirectory) && empty($_GET['fil'])) { echo "<table><tr><td style=\"width: 150px;\">Navn</td><td>Type</td></tr>"; $dir = opendir($theDirectory); while(false !== ($file = readdir($dir))) { $type = filetype($theDirectory ."/". $file); $filtype = explode(".", $file); if($type != "dir" && $file != "." && $file != ".." && end($filtype) == "html") { if(!empty($_GET['dir'])) { echo "<tr><td><a href=\"?fil=" . $_GET['dir'] . "/" . $file . "\">" . $file . "</a></td>"; } else { echo "<tr><td><a href=\"?fil=" . $file . "\">" . $file . "</a></td>"; } echo "<td>fil</td></tr>"; } else if($type == "dir" && $file != "." && $file != "..") { if($get == 1){$href = "href=\"?dir=".$_GET['dir']."/" . $file . "\"";}else{$href = "href=\"?dir=" . $file . "\"";} echo "<tr><td><a ".$href.">" . $file ."</a></td>"; echo "<td>mappe</td></tr>"; } } closedir($dir); echo "</table>"; } else if(empty($_GET['fil'])) { echo $theDirectory . " er ikke en mappe"; } if(!empty($_GET['fil'])) { $fil = $_GET['fil']; global $submit; if ($submit) { header("Location: ".$_SERVER['PHP_SELF']); $skrivtil = fopen($fil, "w"); $nytindhold = str_replace("\\","",$nytindhold); fputs($skrivtil, $nytindhold); fclose($skrivtil); } ?> <center> <form action="" method="post"> <table border="4" bordercolor="black" cellpadding="12" cellspacing="0"><tr> <th>Rediger fi</th> </tr><tr> <td valign="top" align="center" nowrap>Indtast nyt indhold, og klik på "opdater"<br><br> <textarea name="nytindhold" cols="56" rows="16"> <?php $indhold = str_replace("\\", "", readfile($fil)); echo $indhold; ?></textarea><br><br> <input type="submit" name="submit" value="Opdater"></td> </tr><tr> <th colspan="2"> </th> </tr></table> <?php } ?>
13. januar 2007 - 14:59
#8
tusind tak! men gider du ikke gøre sådan så man kommer tilbage til listen når den har gemt det nye indhold? og så lige at der ikke står type? gider du at skrive det i et svar? så giver jeg point
13. januar 2007 - 15:12
#9
kom med et svar shooka det hele virker!
13. januar 2007 - 15:32
#10
nej det vil stadig kun med .html den skal også kunne med .htm?
13. januar 2007 - 15:48
#11
Nu skal det altså virke: <? if(is_dir($_GET['dir']) && !empty($_GET['dir'])){$theDirectory = $_GET['dir']; $get = 1;}else{$theDirectory = ".";} if(is_dir($theDirectory) && empty($_GET['fil'])) { echo "<table><tr><td style=\"width: 150px;\">Navn</td></tr>"; $dir = opendir($theDirectory); while(false !== ($file = readdir($dir))) { $type = filetype($theDirectory ."/". $file); $filtype = explode(".", $file); if($type != "dir" && $file != "." && $file != ".." && (end($filtype) == "html" || end($filtype) == "htm")) { if(!empty($_GET['dir'])) { echo "<tr><td><a href=\"?fil=" . $_GET['dir'] . "/" . $file . "\">" . $file . "</a></td></tr>"; } else { echo "<tr><td><a href=\"?fil=" . $file . "\">" . $file . "</a></td></tr>"; } } else if($type == "dir" && $file != "." && $file != "..") { if($get == 1){$href = "href=\"?dir=".$_GET['dir']."/" . $file . "\"";}else{$href = "href=\"?dir=" . $file . "\"";} echo "<tr><td><a ".$href.">" . $file ."</a></td></tr>"; } } closedir($dir); echo "</table>"; } else if(empty($_GET['fil'])) { echo $theDirectory . " er ikke en mappe"; } if(!empty($_GET['fil'])) { $fil = $_GET['fil']; global $submit; if ($submit) { $skrivtil = fopen($fil, "w"); $nytindhold = str_replace("\\","",$nytindhold); fputs($skrivtil, $nytindhold); fclose($skrivtil); header("Location: ".$_SERVER['PHP_SELF']); } ?> <center> <form action="" method="post"> <table border="4" bordercolor="black" cellpadding="12" cellspacing="0"><tr> <th>Rediger fi</th> </tr><tr> <td valign="top" align="center" nowrap>Indtast nyt indhold, og klik på "opdater"<br><br> <textarea name="nytindhold" cols="56" rows="16"> <?php $indhold = str_replace("\\", "", readfile($fil)); echo $indhold; ?></textarea><br><br> <input type="submit" name="submit" value="Opdater"></td> </tr><tr> <th colspan="2"> </th> </tr></table> <?php } ?>
29. januar 2007 - 14:10
#12
hejsa kiggede lige på koden og prøvede den selv alt virker nice... men når jeg trykker på opdatere vil den ikke opdatere html filen? Har kopiret direkte over herfra eksperten.dk ... kan i sige hvad jeg gør galt? er det pga noget med header("Location: ".$_SERVER['PHP_SELF']); ?? Håber i vil svare.
08. marts 2007 - 01:56
#13
Den skrive da ikke det nye ind. Den gør det kun muligt at se kilde koderne. Jeg har ikke mulig hed for at rette html filen.
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.