Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Usuwanie z sewera
Gadziu
post 4.07.2013, 16:59:03
Post #1





Grupa: Zarejestrowani
Postów: 49
Pomógł: 1
Dołączył: 13.08.2011

Ostrzeżenie: (0%)
-----


Mam problem z usunięciem pliku z serwera. W sensie mam formularz w którym zaznaczam, który plik chcę usunąć, przekazuję on adres plik przez POST do funkcji unlink. Adres pliku do usunięcia daje dobry, ale pliku nie usuwa i wywala błąd, że takiego pliku nie mam na serwerze, jak jest...

index.php
  1. <form action="usun.php" method="POST">
  2. <?php
  3. include "connection.php";
  4. connection();
  5.  
  6. $query = "SELECT * FROM formularz";
  7.  
  8. $result = mysql_query($query) or die(mysql_error());
  9.  
  10.  
  11. echo "<table border='1'>";
  12. echo "<tr> <th>Nr</th> <th>Miniaturka</th> <th>Adres</th> <th> Opis</th> <th>Usuń</th> </tr>";
  13. // keeps getting the next row until there are no more to get
  14.  
  15. while($row = mysql_fetch_array( $result )) {
  16. // Print out the contents of each row into a table
  17. echo "<tr><td>";
  18. echo $row['pozycja_obraz'];
  19. echo "</td><td>";
  20. echo "<img src=".$row['adres']." alt=\"\" height=\"100px\" width=\"75px\">";
  21. echo "</td><td>";
  22. echo $row['adres'];
  23. echo "</td><td>";
  24. echo $row['opis'];
  25. echo "</td><td>";
  26. echo "<INPUT TYPE=\"checkbox\" NAME=\"zdjecie\" VALUE=".$row['adres']."\">";
  27. echo "</td></tr>";
  28. }
  29.  
  30. echo "</table>";
  31.  
  32. ?>
  33. <input type="submit" name="submit" value="Usuń zdjęcie" />
  34. </form>


usun.php
  1. <?php
  2. unlink($_POST['zdjecie']);
  3. echo "usunieto"
  4.  
  5. ?>


błąd
Kod
Warning: unlink(../images/pokoje/images1.jpg") [function.unlink]: No such file or directory in /home/mulino/domains/mulinoitaliano.pl/public_html/cms/usun.php on line 2
Go to the top of the page
+Quote Post
Szymciosek
post 4.07.2013, 17:22:18
Post #2





Grupa: Zarejestrowani
Postów: 1 168
Pomógł: 126
Dołączył: 5.02.2010
Skąd: Świdnica

Ostrzeżenie: (0%)
-----


Zrób sobie coś takiego:

  1. var_dump(scandir($_POST['zdjecie']);


Zobacz co Ci się pokaże przez to i zobacz czy tam istnieje plik, oraz weź pod uwagę, że korzystasz z ../
Go to the top of the page
+Quote Post
Mackos
post 4.07.2013, 17:32:01
Post #3





Grupa: Zarejestrowani
Postów: 362
Pomógł: 44
Dołączył: 10.06.2009

Ostrzeżenie: (0%)
-----


Na 100% dajesz zły link do obrazka wink.gif
Może realpath pomoże albo jakaś funkcja podobna.


--------------------
WebLemon.pl - projektowanie stron www, reklama i PR w internecie - Adwords, Facebook.
Go to the top of the page
+Quote Post
Gadziu
post 4.07.2013, 19:22:04
Post #4





Grupa: Zarejestrowani
Postów: 49
Pomógł: 1
Dołączył: 13.08.2011

Ostrzeżenie: (0%)
-----


Jak wykorzystuję tą funkcję to mi wyskakuje błąd...
Go to the top of the page
+Quote Post
-andesch there-
post 5.07.2013, 09:53:26
Post #5





Goście







tak jak wspomina Szymciosek
uzywasz ../

pewnie sciezka musi byc images/pokoje/images1.jpg
chyba ze plik index i usun masz w jakims folderze sasiadujacym katalogiem images, masz nie masz?
Go to the top of the page
+Quote Post
Gadziu
post 5.07.2013, 10:32:12
Post #6





Grupa: Zarejestrowani
Postów: 49
Pomógł: 1
Dołączył: 13.08.2011

Ostrzeżenie: (0%)
-----


Tak, po to to jest, bo to jest w folderze na tym samym poziomie co images. W sensie jest public_html/cms i public_html/images.

A może ma ktoś prostszy pomysł, jak zrobić, by użytkownik mógł np po prostu kliknąć sobie na napis usuń obok zdjęcia, żeby go usunęło?
Go to the top of the page
+Quote Post
_Borys_
post 5.07.2013, 11:25:58
Post #7





Grupa: Zarejestrowani
Postów: 587
Pomógł: 190
Dołączył: 5.02.2011
Skąd: 64-800

Ostrzeżenie: (0%)
-----


W checkbox-ie w value nie masz cudzysłowia otwierającego i przez to adres obrazka jest
../images/pokoje/images1.jpg"
Poza tym skoro images są na tym samym poziomie to raczej powinno być bez ../ ale popróbuj z różnymi wersjami.
Go to the top of the page
+Quote Post
Gadziu
post 5.07.2013, 12:44:27
Post #8





Grupa: Zarejestrowani
Postów: 49
Pomógł: 1
Dołączył: 13.08.2011

Ostrzeżenie: (0%)
-----


Ok, stwierdziłem, że nie ma co widocznie na moją wiedzę w tym momencie usuwanie wielu zdjęć naraz to za dużo, więc zrobiłem z radio i działa, a wygląda to tak:
usun.php
  1. <?php
  2. include "connection.php";
  3. connection();
  4.  
  5. $query = "SELECT * FROM formularz";
  6.  
  7. $result = mysql_query($query) or die(mysql_error());
  8.  
  9.  
  10. echo "<table border='1'>";
  11. echo "<tr> <th>Nr</th> <th>Miniaturka</th> <th>Adres</th> <th> Opis</th> <th>Usuń</th> </tr>";
  12. // keeps getting the next row until there are no more to get
  13. echo "<form action=\"usunf.php\" method=\"POST\">";
  14. while($row = mysql_fetch_array( $result )) {
  15. // Print out the contents of each row into a table
  16. echo "<tr><td>";
  17. echo $row['pozycja_obraz'];
  18. echo "</td><td>";
  19. echo "<img src=".$row['adres']." alt=\"\" height=\"100px\" width=\"75px\">";
  20. echo "</td><td>";
  21. echo $row['adres'];
  22. echo "</td><td>";
  23. echo $row['opis'];
  24. echo "</td><td>";
  25. echo "<input type=\"radio\" name=\"zdjecie\" value=".$row['adres'].">";
  26. echo "</td></tr>";
  27. }
  28.  
  29. echo "</table>";
  30. echo "<input type=\"submit\" value=\"Usuń zdjęcie\">";
  31.  
  32. echo "</form>";
  33. ?>


usunf.php
  1. <?php
  2. $plik = $_POST['zdjecie'];
  3. $test = file_exists($plik);
  4. if (!$test)
  5. {
  6. echo "Brak takiego zdjecia na serwerze";
  7. }
  8. else
  9. {
  10. unlink($plik);
  11. echo "Zdjęcie usunięte";
  12.  
  13. }
  14. echo "<meta http-equiv=\"refresh\" content=\"1;url=http://mulinoitaliano.pl/cms/usun.php\" />";
  15. ?>


Tylko teraz mam jeszcze jedno pytanie i jedne problem.
Pytanie: O co chodzi z tym zabezpieczaniem, bo na wielu stronach gdzie czytałem ucząc się, pisali o zabezpieczaniu kodu... Spodziewam się, że mój nie jest bezpieczny. Więc jak co zrobić, by był?
Problem: Chciałbym, żeby oprócz wykasowanie zdjęć z serwera, wykasował się także rekord z bazy, ale nie wiem jak przekazać do funkcji usunf.php te wszystkie rzeczy co mam wykasować...
Go to the top of the page
+Quote Post
Stelivo
post 5.07.2013, 12:55:36
Post #9





Grupa: Zarejestrowani
Postów: 98
Pomógł: 0
Dołączył: 26.03.2013

Ostrzeżenie: (0%)
-----


Zabezpiecz panelem logowania.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 12:30