Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Kasowanie zdjec z serwera
Forum PHP.pl > Forum > Przedszkole
pan_plotek
Witam mam problem z usunięciem zdjęcia z serwera. Skrypt działa usuwa mi dane z bazy, ale jednak nie chce mi zadziałać opcja unlink która dodałem poniżej. Skrypt polega na zaznaczeniu jakiegoś zdjęcia z tabeli i na usuneciu. Prosze o pomoc. smile.gif


  1. ...
  2. $zdjecie = $_GET['zdjecie'];
  3. $dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
  4. if (isset($_POST['submit'])) {
  5. foreach ($_POST['usun'] as $usun) {
  6. $query = "DELETE FROM galeria WHERE id = $usun LIMIT 1";
  7. @unlink(GW_UPLOADPATH . $zdjecie);
  8. mysqli_query($dbc, $query)
  9. or die('Błąd w zapytaniu do bazy danych.');
  10. }
  11. echo '<div id="potwierdzenie">';
  12. echo 'Usunieto zdjecie';
  13. echo '</div>';
  14. }
  15. $query = "SELECT * FROM galeria";
  16. $wynik = mysqli_query($dbc, $query);
  17. echo '<table border=1>';
  18. echo '<tr><th>id</th><th>Zdjecie</th><th>Dodał:</th><th>Data</th></tr>';
  19. while ($row = mysqli_fetch_array($wynik)) {
  20. echo '<td><strong><input type="checkbox" value="' . $row['id'] . '" name="usun[]"</strong></td>';
  21. echo '<td><img src="' . GW_UPLOADPATH . $row['zdjecie'] . '" alt="zdjecie" . "width=150px" /></td> ' ;
  22. echo '<td><strong>' . $row['imie_nazwisko'] . '</strong></td>';
  23. echo '<td>' . $row['data'] . '</td>';
  24.  
  25. echo '</td></tr>';
  26. }
  27. echo '</table>';
  28.  
  29. mysqli_close($dbc);
  30. ?>
CuteOne
1. Sprawdź czy ścieżka do pliku jest poprawna:
  1. file_exists(GW_UPLOADPATH . $zdjecie) ? die('poprawna') : die('nie poprawna');


2. Sprawdź chmode folderów w których przechowujesz grafikę - powinny być ustawione na 777
pan_plotek
chmod ustawiony na serwerze na 777 i sciezke rowniez pokazuje poprawną. Jakies inne sugestie winksmiley.jpg
emajl22
A rozszerzenie pliku jest? Bo nie wiem jaką co trzymasz w $_GET.
nospor
1) Włącz wyswietlanie wszystkich bledów. Tu masz napisane jak:
Temat: Jak poprawnie zada pytanie

2) Wywal małpę @ przy unlink.
pan_plotek
Notice: Undefined index: zdjecie in /www/asd_www/www/kasuj_zdjecie.php on line 81

chodzi o tą linijke : $zdjecie = $_GET['zdjecie'];

nic nie trzymam w zmiennej $zdjecie, troche glupi blad. Moze ktos doradzic jak powinno wygladac to poprawnie smile.gif
emajl22
Raczej chodziło mi o to co przekazujesz w adresie, np. index.php?akcja=kasuj&zdjecie=co_tu_jest...

Poza tym usuń tą małpkę przed unlink.
pan_plotek
Nie za bardzo rozumiem pytania, moglbys bardziej wyjasnic albo powiedziec jak to sprawdzic. Sorka ale dopiero sie ucze winksmiley.jpg
emajl22
Zaraz pod $zdjecie = $_GET['zdjecie']; daj: echo $zdjecie; i sprawdź czy coś się wyświetli.
pan_plotek
nic sie nie wyswietla.
emajl22
No to nic dziwnego, że nie kasuje zdjęć... pokaż może cały kod.
pan_plotek
To jest caly kod odpowiadajacy za usuwanie zdjec.


  1. <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
  2. <?php
  3. require_once('rozmiar_pliku.php');
  4. require_once('bazadanych.php');
  5. $zdjecie = $_GET['zdjecie'];
  6. $dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
  7. if (isset($_POST['submit'])) {
  8. foreach ($_POST['usun'] as $usun) {
  9. $query = "DELETE FROM galeria WHERE id = $usun";
  10. unlink(GW_UPLOADPATH . $zdjecie);
  11. mysqli_query($dbc, $query)
  12. or die('Błąd w zapytaniu do bazy danych.');
  13. }
  14. echo '<div id="potwierdzenie">';
  15. echo 'Usunieto zdjecie';
  16. echo '</div>';
  17. }
  18. $query = "SELECT * FROM galeria";
  19. $wynik = mysqli_query($dbc, $query);
  20. echo '<table border=1>';
  21. echo '<tr><th>id</th><th>Zdjecie</th><th>Dodał:</th><th>Data</th></tr>';
  22. while ($row = mysqli_fetch_array($wynik)) {
  23. echo '<td><strong><input type="checkbox" value="' . $row['id'] . '" name="usun[]"</strong></td>';
  24. echo '<td><img src="' . GW_UPLOADPATH . $row['zdjecie'] . '" alt="zdjecie" . "width=150px" /></td> ' ;
  25. echo '<td><strong>' . $row['imie_nazwisko'] . '</strong></td>';
  26. echo '<td>' . $row['data'] . '</td>';
  27. echo '</td></tr>';
  28. }
  29. echo '</table>';
  30.  
  31. mysqli_close($dbc);
  32. ?>
  33. <input type="submit" name="submit" value="Usuń" />
CuteOne
  1.  
  2. foreach ($_POST['usun'] as $usun) {
  3.  
  4.  
  5. $select = mysqli_query($dbc, "SELECT image_name FROM galeria WHERE id = {$usun}");
  6. $row = mysqli_fetch_array($select);
  7.  
  8.  
  9. $query = "DELETE FROM galeria WHERE id = $usun";
  10. unlink(GW_UPLOADPATH . $row['image_name']);
  11. mysqli_query($dbc, $query) or die('Błąd w zapytaniu do bazy danych.');
  12. }


w bazie musisz mieć zapisaną nazwę pliku np. zdjecie.jpg w kolumnie image_name
pan_plotek
Wszystko działa! dziekuje za pomoc winksmiley.jpg
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.