Avatar billede mabi Nybegynder
21. februar 2009 - 23:10 Der er 12 kommentarer og
1 løsning

Hjælp til Form i PHP med unlink

Hej...

Jeg er stadig ny i php, men forsøger at lære dette.

Har en lille kode som viser alle AVI filer i et DIR på serveren.
Det jeg prøver på er at jeg skal kunne slette enkle filer ved hjælp at en check box, men kan ikke for det til at virke, og ved slet ikke om det kan lade sig gøre på den måde som jeg har gjort.

........

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
</head>
<link rel="stylesheet" type="text/css" href="../style/style.css">
<body>
<form name="form1" id="form1" method="post" action="">
<?php
foreach (glob("*.avi") as $filename) {
echo "<a target=\"player\" href=\"videoplayer.php?file=".$filename."\"> <input type=\"checkbox\" value=\"FileToDelete[]\" >".$filename."</a>. Størrelse: ".r$
}
foreach ($_POST['FileToDelete'] as $deletefilename)
{
  unlink($deletefilename);
}
?>
<input type="button" value="delete">
</form>
</body>
</html>
Avatar billede jantzen88 Nybegynder
21. februar 2009 - 23:25 #1
I din input mangler du da name=\"FileToDelete\"
forstår heller ikke rigtig ".r$ efter Størrelse: -- mit bud ville være Størrelse: ". filesize($filename);
og din <input type="button" value="delete"> type skal være "submit"
Avatar billede erikjacobsen Ekspert
21. februar 2009 - 23:26 #2
Prøv at putte FileToDelete[] i name-attributten, og filnavnet i value-attributten.
Avatar billede jantzen88 Nybegynder
21. februar 2009 - 23:30 #3
Hov sorry det rigtigt som erikjacobsen siger name=\"FileToDelete[]\" i stedet for name=\"FileToDelete\" og så value=\"$filename\" :)
Avatar billede mabi Nybegynder
22. februar 2009 - 08:12 #4
Sorry Jantzen88 "forstår heller ikke rigtig ".r$ efter Størrelse: -- mit bud ville være Størrelse: ". filesize($filename);" copy and paste fejl.....

har prøvet at rette de ting i forslår, men giver stadig fejl, hvis jeg har forstået det, her er hele koden.

Fejlen er i line 12 :

Warning: Invalid argument supplied for foreach() in /var/camrecordings/recordings.php on line 12

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
</head>
<link rel="stylesheet" type="text/css" href="../style/style.css">
<body>
<form name="form1" id="form1" method="post" action="">
<?php
foreach (glob("*.avi") as $filename) {
echo "<a target=\"player\" href=\"videoplayer.php?file=".$filename."\"> <input type=\"checkbox\" name =\"FileToDelete[]\" value=\"$filename\" >".$filename."</a>. Størrelse: ".round((filesize($filename)/1024), 2)." Kb<br />";
}
foreach ($_POST['FileToDelete'] as $deletefilename)
{
  unlink($deletefilename);
}
?>
<input type="button" value="Submit">
</form>
</body>
</html>
Avatar billede erikjacobsen Ekspert
22. februar 2009 - 09:13 #5
Det siger den når $_POST['FileToDelete'] ikke er et array. Og det er det fx ikke første gang du går ind på siden.
Avatar billede mabi Nybegynder
28. februar 2009 - 11:19 #6
Hmmm.. er ikke rigtigt kommet vider, har ikke flere ider.... surt.
Er der nogle der har et forslag til hvordan man ellers kunne gøre.


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
</head>
<link rel="stylesheet" type="text/css" href="../style/style.css">
<body>
<form name="form1" id="form1" method="post" action="">
<?php
foreach (glob("*.avi") as $filename) {
echo "<a target=\"player\" href=\"videoplayer.php?file=".$filename."\"> <input type=\"checkbox\" name =\"FileToDelete[]\" value=\"$filename\" >".$filename."</a>. Størrelse: ".round((filesize($filename)/1024), 2)." Kb<br />";
}
if(is_array($_POST['FileToDelete[]']))
foreach ($_POST['FileToDelete[]'] as $deletefilename)
{
  unlink($deletefilename);
}
?>
<input type="button" value="Submit">
</form>
</body>
</html>
Avatar billede erikjacobsen Ekspert
28. februar 2009 - 14:03 #7
Ikke

if(is_array($_POST['FileToDelete[]']))
foreach ($_POST['FileToDelete[]'] as $deletefilename)
{
  unlink($deletefilename);
}

men (utestet)

if(is_array($_POST['FileToDelete']))
foreach ($_POST['FileToDelete'] as $deletefilename)
{
  unlink($deletefilename);
}
Avatar billede mabi Nybegynder
28. februar 2009 - 14:35 #8
Nå, nu er jeg da nået så langt at der ikke er nogle fejl på skærmen, men det virker bare ikke , jeg kan checke AVI-filen af og trykke på Submit, men der sker bare ikke noget...
Avatar billede erikjacobsen Ekspert
28. februar 2009 - 14:50 #9
Så skal vi se hvad der er i vejen. Prøv

if(is_array($_POST['FileToDelete']))
foreach ($_POST['FileToDelete'] as $deletefilename)
{
  print "Prøver at bøffe $deletefilename<br>";
  if (unlink($deletefilename)) {
    print "Bøffet $deletefilename<br>";
  } else {
    print "No bøf $deletefilename<br>";
  }
}
Avatar billede mabi Nybegynder
28. februar 2009 - 15:25 #10
Ingen ting....... har pillet script ud af mine frames nu.... og sat "target" til "blank" når jeg vælger en avi fil åbner et nyt vindue og afspiller filen, men på siden med de listet avi filer sker der ingen ting når jeg trykker på submit, der står heller ikke noget i Apache log filerne
Avatar billede erikjacobsen Ekspert
28. februar 2009 - 18:55 #11
Sker ingenting, i hvilken betydning?

Jeg kan se to ting, der kan gå galt:

1) Du har din checkbox inden i en <a>....</a>. Det er ikke sikkert det er så godt.
2) Du bør bruge en <input type="submit">
Avatar billede mabi Nybegynder
28. februar 2009 - 20:32 #12
Sådan :-) Nu virker det, det var en hård nød, men fik da lært noget nyt.

Mange tak for hjælpen....

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
</head>
<link rel="stylesheet" type="text/css" href="../style/style.css">
<body>
<form name="form1" id="form1" method="post" action="">
<?php
foreach (glob("*.avi") as $filename) {
echo "<input type=\"checkbox\" name =\"FileToDelete[]\" value=\"$filename\" > <a target=\"player\" href=\"videoplayer.php?file=".$filename."\"> ".$filename." </a>. Størrelse: ".round((filesize($filename)/1024), 2)." Kb<br />";
}

//if(is_array($_POST['FileToDelete']))
//foreach ($_POST['FileToDelete'] as $deletefilename)
//{
//  unlink($deletefilename);
//}

if(is_array($_POST['FileToDelete']))
foreach ($_POST['FileToDelete'] as $deletefilename)
{
  print "Prøver at bøffe $deletefilename<br>";
  if (unlink("/Sti/Til/Dir/$deletefilename")) {
    print "Bøffet $deletefilename<br>";
  } else {
    print "No bøf $deletefilename<br>";
  }
}
?>
<input type="Submit" value="Submit">
</form>
</body>
</html>
Avatar billede mabi Nybegynder
06. september 2009 - 16:47 #13
Lukker
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
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

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