09. juni 2007 - 00:38
Der er
23 kommentarer og 2 løsninger
Kan dette ikke lade sige gøre?
Har en formular, hvor jeg skal indtaste et filnavn, som vha. php skal slette filen. Men jeg vil gerne blive sendt tilbage til formularsiden med besken om at det var ok eller om der var fejl. Har prøvet at taste lidt men er meget ny i php . . . og det virkede selvfølgelig ikke. Formularen: <? if(isset($_GET['sent']) && $_GET['sent'] == "OK") { echo "<div style='color:red;font-weight:bold'>Filen er nu slettet</div><br>"; } if(isset($_GET['sent']) && $_GET['sent'] == "FALSE") { echo "<div style='color:red;font-weight:bold'>Filen kunne ikke slettes. Prøv igen.</div><br>"; } else { ?> </div></td> </tr> <tr> <td height="350" colspan="3" align="center" valign="top" bgcolor="#eef1e7" class="td_back"><p class="style2">Skriv navnet på filen der skal slettes: </p> <form action="slet.php" method="POST"> <p> <input name="sletfilen" type="text" class="textfelt" id="sletfilen" size="50" /> </p> <p><br /> <input type="submit" value="Slet filen" class="knap" /> <input type="hidden" name="retPage" value="<?=$_SERVER["PHP_SELF"]?>"> </p> </form> <? } ?> Filen slet.php: <?php $file_delete = "../images/banner/" . addslashes($_POST['sletfilen']); if (unlink($file_delete)) { Header("Location: ".$_POST["retPage"]."?sent=OK"); } else { Header("Location: ".$_POST["retPage"]."?sent=FALSE"); } ?>
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
Du må ikke sende en Header efter at du har skrevet til skærm. Jeg tror du skal bruge Java Script <script language='javascript'> self.location.href = "<?php echo ".$_POST["retPage"]."?sent=OK"; ?>"; </script>
<?php $file_delete = "../images/banner/" . addslashes($_POST['sletfilen']); if (unlink($file_delete)) { $sent = "OK"; } else { $sent = "FALSE"; } ?> <script language='javascript'> self.location.href = "<?php echo $_POST["retPage"]."?sent=".$sent;?>"; </script>
Jeg ville dog sikre min navnet på filen via: basename()
<?php $file_delete = "../images/banner/" . addslashes($_POST['sletfilen']); if (unlink($file_delete)) { $sent = "OK"; } else { $sent = "FALSE"; } ?> <script language='javascript'> self.location.href = "<?php echo $_POST["retPage"]."?sent=".$sent;?>"; </script> Giver kun en blank skærm...
Hvad står der i adressefeltet når du har den blanke skærm ?
Nå, nu fandt jeg fejlen . . . i formualern hvor der står <input type="hidden" name="retPage" value="<?=$_SERVER["PHP_SELF"]?>"> er der lige pludselig kommet til at stå: <input type="hidden" name="retPage" value="<?=$_SERVER["../PHP_SELF"]?>"> Jeg fjernede ../ og nu virker det. Tak for hjælpen steen-h. Send lige et svar så du kan få point :)
Lige et lille tillægsspørgsmål: Jeg har lavet lidt om på siden, så der er et tekstfelt i formularen hvor man får en liste over hvilke filer der er i biblioteket hvor man kan slette filer, sådan: <textarea name="textarea" cols="47" rows="5" style="padding-left:10px" class="textfelt"><? $path = "/stien til/html/images/banner"; $dir_handle = @opendir($path) or die("Kan ikke åbne $path"); while ($file = readdir($dir_handle)) { if($file!="." && $file!=".." && $file!="banner_120x146a.txt" && $file!="banner_120x146b.txt" && $file!="banner_120x146c.txt" && $file!="banner_120x146d.txt" && $file!="banner_468x60.txt") echo "$file" . "\n"; } closedir($dir_handle); ?> </textarea> Kan det ikke lade sig gøre at man klikker på en af filerne i <textarea> og navnet automatisk så bliver skrevet i input feltet (hvor navnet på den fil der skal slettes skal skrives hvorefter den slettes ved tryk på submit knappen)?
Jeg tænker på at man evt. kan lave et value="" i inputfeltet med en variabel der bliver sat ved valg af en fil i textarea... Kan man ikke gøre dette i php? Jeg er desværre så meget nybegynder at jeg ikke aner hvor jeg skal starte og hvordan jeg skal kringle den. På forhånd tak for hjælpen!
10. juni 2007 - 18:53
#10
Hvis du skifter følgende echo "$file" . "\n"; med echo "$file" . "-<a href=\".$_POST["retPage"]."?slet=".$file\">Slet</a>\n"; så får du et slette link efter fil navnet. Så skal du have sat det ind i dit inputfelt med <input name="sletfilen" type="text" class="textfelt" id="sletfilen" size="50" value="<?php echo $_GET['slet']; ?>/> Det kan også gøres med Java Script, så er det ikke nødvendigt med en reload.
10. juni 2007 - 18:54
#11
Der var en fejl <input name="sletfilen" type="text" class="textfelt" id="sletfilen" size="50" value="<?php echo $_GET['slet']; ?>"/>
10. juni 2007 - 19:49
#12
Der er stadig en fejl . . . har lavet ændringerne, men siden er bare blank så snart den loades.
10. juni 2007 - 20:00
#13
Smid lige din fulde kode herind. Der må være en fejl et sted.
10. juni 2007 - 20:34
#14
<form action="slet.php" method="POST"> <p> <input name="sletfilen" type="text" class="textfelt" id="sletfilen" size="50" value="<?php echo $_GET['slet']; ?>"/> </p> <p><img src="../images/tom.gif" width="10" height="10" /><br /> <input type="submit" value="Slet filen" class="knap" /> <input type="hidden" name="retPage" value="<?=$_SERVER["PHP_SELF"]?>"> </p> <p class="style2">Filer i bannerbiblioteket: </p> <p> <textarea name="textarea" cols="47" rows="5" style="padding-left:10px" class="textfelt"><? $path = "/denfuldesti/html/images/banner"; $dir_handle = @opendir($path) or die("Kan ikke åbne $path"); while ($file = readdir($dir_handle)) { if($file!="." && $file!=".." && $file!="banner_120x146a.txt" && $file!="banner_120x146b.txt" && $file!="banner_120x146c.txt" && $file!="banner_120x146d.txt" && $file!="banner_468x60.txt") echo "$file" . "-<a href=\".$_POST["retPage"]."?slet=".$file\">Slet</a>\n"; } closedir($dir_handle); ?> </textarea> </p> </form>
10. juni 2007 - 20:53
#15
Sådan: <?php //http://www.eksperten.dk/spm/782378 ?> <form action="slet.php" method="POST"> <p> <input name="sletfilen" type="text" class="textfelt" id="sletfilen" size="50" value="<?php echo $_GET['slet']; ?>"/> </p> <p><img src="../images/tom.gif" width="10" height="10" /><br /> <input type="submit" value="Slet filen" class="knap" /> <input type="hidden" name="retPage" value="<?=$_SERVER["PHP_SELF"]?>"> </p> <p class="style2">Filer i bannerbiblioteket: </p> <p> <textarea name="textarea" cols="47" rows="5" style="padding-left:10px" class="textfelt"> <? $path = "/denfuldesti/html/images/banner"; $dir_handle = @opendir($path) or die("Kan ikke åbne $path"); while ($file = readdir($dir_handle)) { if($file!="." && $file!=".." && $file!="banner_120x146a.txt" && $file!="banner_120x146b.txt" && $file!="banner_120x146c.txt" && $file!="banner_120x146d.txt" && $file!="banner_468x60.txt") echo $file . '-<a href="'.$_POST['retPage'].'?slet='.$file.'">Slet</a>'."\r\n"; } closedir($dir_handle); ?> </textarea> </p> </form>
10. juni 2007 - 21:04
#16
Ja, det giver bare noget ubrugelig tekst i textarea: sidebanner.gif-<a href="?slet=sidebanner.gif">Slet</a> topbanner.gif-<a href="?slet=topbanner.gif">Slet</a> weblance.gif-<a href="?slet=weblance.gif">Slet</a> solbergs.jpg-<a href="?slet=solbergs.jpg">Slet</a>
10. juni 2007 - 21:10
#17
Det er jo koden du selv har lavet! Jeg rettede den bare så det virkede.
10. juni 2007 - 21:19
#18
Teksten er ikke "ubrugelig" - den er bare formateret forkert. Problemet består jo nok bare i at et <textarea> giver et output i "rå" tekst, men det jeg skal bruge er den "formaterede" html kode. Har lige prøvet at smide scriptet i en tabelcelle, og her virker det fint. Kan det ikke lade sig gøre med et <textarea>, eller skal jeg bare acceptere at bruge en tabelcelle i stedet?
10. juni 2007 - 22:40
#19
Nå, pyt med det. Det er jo strengt taget ikke nødvendigt med et <textarea>, og det var jo kun for et syns skyld. Så i stedet har jeg lavet det som en tabel, hvor der kun vises filnavnene som link: <table width="263"border="0" cellpadding="0" cellspacing="0" style="border: 1px solid #1088ff; background:#FFFFFF;"> <tr> <td valign="top"><div align="left" style="width:221px; height:75px; font-size: 10pt; overflow:auto; SCROLLBAR-FACE-COLOR: #ffffff; SCROLLBAR-HIGHLIGHT-COLOR: #ffffff; SCROLLBAR-SHADOW-COLOR: #ffffff; SCROLLBAR-3DLIGHT-COLOR: #ffffFf; SCROLLBAR-ARROW-COLOR: #1088ff; SCROLLBAR-TRACK-COLOR: #ffffff; SCROLLBAR-DARKSHADOW-COLOR: #ffffff; padding-top:2px; padding-left:5px; padding-bottom:2px;"> <? $path = "/home/e-smith/files/ibays/faeroerne.dk/html/images/banner"; $dir_handle = @opendir($path) or die("Kan ikke åbne $path"); while ($file = readdir($dir_handle)) { if($file!="." && $file!=".." && $file!="banner_120x146a.txt" && $file!="banner_120x146b.txt" && $file!="banner_120x146c.txt" && $file!="banner_120x146d.txt" && $file!="banner_468x60.txt") echo '<a href="'.$_POST['retPage'].'?slet='.$file.'">'.$file.'</a><br/>'; } closedir($dir_handle); ?> </span></div></td> </tr> </table> ... og det kan jo laves så det ser ud som tekstfeltet.
11. juni 2007 - 07:52
#20
Hvad vil du med textarea?
12. juni 2007 - 17:33
#21
Det var godt du hjalp færdig jakobdo, jeg tillader mig at lægge et svar med jeg syntes vi skal dele point.
12. juni 2007 - 17:53
#22
Svar!
12. juni 2007 - 18:07
#23
Jamen I får lov til at dele . . . og begge to et STORT tak! /Carl
12. juni 2007 - 18:49
#24
Takker for point.
13. juni 2007 - 05:09
#25
Ja, jeg siger også tak.
Vi tilbyder markedets bedste kurser inden for webudvikling