Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL]Usuwanie pliku z serwera
Forum PHP.pl > Forum > Przedszkole
adrianozo
Witam.
Próbuje napisać skrypt usuwania jednocześnie rekordu z bazy danych i pliku serwera, którego nazwa jest trzymana w bazie danych.
Próbowałem zrobić zmianę CHMODów i usunięcie pliku, ale nie działało. Rekord usuwa, ale pliku nie.
Zupełnie nie wiem jak to ugryźć.
Plik usunartykul.php

  1. <?php
  2. include('include/db.php');
  3. include('include/dane.php');
  4. if(!$_POST['id'])
  5. {
  6. echo '<div style="text-align:center;"><form action="index.php?page=usunartykul" method="post">
  7. <select name="id"> ';
  8. stripslashes($zapytanie = "SELECT * FROM `artykuly` ORDER BY `id` DESC");
  9. $idzapytania = mysql_query($zapytanie);
  10. while ($wiersz = mysql_fetch_row($idzapytania))
  11. echo '<option value="'.$wiersz[0].'">('.$wiersz[0].') '.$wiersz[1].'</option>';
  12. </select>
  13. <input type="submit" value="Usu&#x144;" />
  14. <br />
  15. </form>';
  16. echo'<br /><a style="text-decoration: none;" href="?page=paneladmina">Wr&#xF3;&#x107; do Panelu Administratora</a></div>';
  17. }
  18. else
  19. {
  20. addslashes($zapytanie = 'DELETE FROM `artykuly` WHERE `id`="'.$_POST['id'].'"');
  21. $idzapytania = mysql_query($zapytanie);
  22. if($idzapytania)
  23. {
  24. echo '<div style="text-align:center;">Usuni&#x119;to artyku&#x142;<br /><br /><a style="text-decoration: none;" href="?page=paneladmina">Wr&#xF3;&#x107; do Panelu Administratora</a></div>';
  25. }
  26. else
  27. {
  28. echo mysql_errno() . ": " . mysql_error() . "\n";
  29. }
  30. }
  31. mysql_close($connect);
  32. ?>


Zrobiłem takie coś, ale nie usuwa.
Skrypt usunartykul.php ma chmod 777

  1. <?php
  2. include('include/db.php');
  3. include('include/dane.php');
  4. if(!$_POST['id'])
  5. {
  6. echo '<div style="text-align:center;"><form action="index.php?page=usunartykul" method="post">
  7. <select name="id"> ';
  8. stripslashes($zapytanie = "SELECT * FROM `artykuly` ORDER BY `id` DESC");
  9. $idzapytania = mysql_query($zapytanie);
  10. while ($wiersz = mysql_fetch_row($idzapytania))
  11. echo '<option value="'.$wiersz[0].'">('.$wiersz[0].') '.$wiersz[1].'</option>';
  12. </select>
  13. <input type="submit" value="Usu&#x144;" />
  14. <br />
  15. </form>';
  16. echo'<br /><a style="text-decoration: none;" href="?page=paneladmina">Wr&#xF3;&#x107; do Panelu Administratora</a></div>';
  17. }
  18. else
  19. {
  20. stripslashes($zapytanie = "SELECT * FROM `artykuly` WHERE `id`='".$_POST['id']."' ORDER BY `id` DESC");
  21. $idzapytania = mysql_query($zapytanie);
  22. while ($wiersz = mysql_fetch_row($idzapytania))
  23. unlink('../upload/'.$wiersz['plik'].'');
  24. unlink('../zdjecie/'.$wiersz['zdjecie'].'');
  25. addslashes($zapytanie = 'DELETE FROM `artykuly` WHERE `id`="'.$_POST['id'].'"');
  26. $idzapytania = mysql_query($zapytanie);
  27. if($idzapytania)
  28. {
  29. echo '<div style="text-align:center;">Usuni&#x119;to artyku&#x142;<br /><br /><a style="text-decoration: none;" href="?page=paneladmina">Wr&#xF3;&#x107; do Panelu Administratora</a></div>';
  30. }
  31. else
  32. {
  33. echo mysql_errno() . ": " . mysql_error() . "\n";
  34. }
  35. }
  36. mysql_close($connect);
  37. ?>


Ale nie działa sad.gif
darko
1.

23. while ($wiersz = mysql_fetch_row($idzapytania))

ta pętla działa tylko dla następnej linii, dodaj nawiasy klamrowe


2.


addslashes nie działa, tak jak z niego korzystasz
Abaddor
To:
  1. unlink('../zdjecie/'.$wiersz['zdjecie'].'');
  2. unlink('../upload/'.$wiersz['plik'].'')


Zamień na:

  1. unlink("../zdjecie/".$wiersz['zdjecie']);
  2. unlink("../upload/".$wiersz['plik'])


I zobacz czy trybi.
adrianozo
  1. <?php
  2. include('include/db.php');
  3. include('include/dane.php');
  4. if(!$_POST['id'])
  5. {
  6. echo '<div style="text-align:center;"><form action="index.php?page=usunartykul" method="post">
  7. <select name="id"> ';
  8. stripslashes($zapytanie = "SELECT * FROM `artykuly` ORDER BY `id` DESC");
  9. $idzapytania = mysql_query($zapytanie);
  10. while ($wiersz = mysql_fetch_row($idzapytania))
  11. echo '<option value="'.$wiersz[0].'">('.$wiersz[0].') '.$wiersz[1].'</option>';
  12. </select>
  13. <input type="submit" value="Usu&#x144;" />
  14. <br />
  15. </form>';
  16. echo'<br /><a style="text-decoration: none;" href="?page=paneladmina">Wr&#xF3;&#x107; do Panelu Administratora</a></div>';
  17. }
  18. else
  19. {
  20. stripslashes($zapytanie = "SELECT * FROM `artykuly` WHERE `id`='".$_POST['id']."' ORDER BY `id` DESC");
  21. $idzapytania = mysql_query($zapytanie);
  22. while ($wiersz = mysql_fetch_row($idzapytania))
  23. {
  24. unlink("../zdjecie/".$wiersz['zdjecie']);
  25. unlink("../upload/".$wiersz['plik']);
  26. addslashes($zapytanie = 'DELETE FROM `artykuly` WHERE `id`="'.$_POST['id'].'"');
  27. $idzapytania = mysql_query($zapytanie);
  28. }
  29. if($idzapytania)
  30. {
  31. echo '<div style="text-align:center;">Usuni&#x119;to artyku&#x142;<br /><br /><a style="text-decoration: none;" href="?page=paneladmina">Wr&#xF3;&#x107; do Panelu Administratora</a></div>';
  32. }
  33. else
  34. {
  35. echo mysql_errno() . ": " . mysql_error() . "\n";
  36. }
  37. }
  38. mysql_close($connect);
  39. ?>


Nie usuwa sad.gif
darko
Jakiś komunikat błędu questionmark.gif daj ini_set("error_reporting", "E_ALL");
adrianozo
Błędu brak...
darko
a jakie uprawnienia ma katalog zdjecie questionmark.gif
adrianozo
777
darko
Sprawdź jeszcze zapytanie, w którym wyciągasz nazwę pliku czy $wiersz['zdjecie'] ma prawidłową wartość ? (jeszcze: mysql_query("...") or die(mysql_error()); ) może tu gdzieś jest problem

Poza tym wyciągnij na zewnątrz $zapytanie tu: stripslashes($zapytanie = "SELECT * FROM `artykuly` ORDER BY `id` DESC"); zamień na

$zapytanie = "SELECT * FROM artykuly ORDER BY id DESC";
$zapytanie = stripslashes($zapytanie);
adrianozo
Że takie coś?

  1. <?php
  2. include('include/db.php');
  3. include('include/dane.php');
  4. if(!$_POST['id'])
  5. {
  6. echo '<div style="text-align:center;"><form action="index.php?page=usunartykul" method="post">
  7. <select name="id"> ';
  8. stripslashes($zapytanie = "SELECT * FROM `artykuly` ORDER BY `id` DESC");
  9. $idzapytania = mysql_query($zapytanie);
  10. while ($wiersz = mysql_fetch_row($idzapytania))
  11. echo '<option value="'.$wiersz[0].'">('.$wiersz[0].') '.$wiersz[1].'</option>';
  12. </select>
  13. <input type="submit" value="Usu&#x144;" />
  14. <br />
  15. </form>';
  16. echo'<br /><a style="text-decoration: none;" href="?page=paneladmina">Wr&#xF3;&#x107; do Panelu Administratora</a></div>';
  17. }
  18. else
  19. {
  20. $zapytanie = "SELECT * FROM artykuly ORDER BY id DESC";
  21. $zapytanie = stripslashes($zapytanie);
  22. $idzapytania = mysql_query($zapytanie);
  23. while ($wiersz = mysql_fetch_row($idzapytania))
  24. {
  25. unlink("../zdjecie/".$wiersz['zdjecie']);
  26. unlink("../upload/".$wiersz['plik']);
  27. print_r($wiersz['plik']);
  28. addslashes($zapytanie = 'DELETE FROM `artykuly` WHERE `id`="'.$_POST['id'].'"');
  29. $idzapytania = mysql_query($zapytanie);
  30. }
  31. if($idzapytania)
  32. {
  33. echo '<div style="text-align:center;">Usuni&#x119;to artyku&#x142;<br /><br /><a style="text-decoration: none;" href="?page=paneladmina">Wr&#xF3;&#x107; do Panelu Administratora</a></div>';
  34. }
  35. else
  36. {
  37. echo mysql_errno() . ": " . mysql_error() . "\n";
  38. }
  39. }
  40. mysql_close($connect);
  41. ?>


A dlaczego takie coś nie działa?

  1. <?php
  2. include('include/db.php');
  3. include('include/dane.php');
  4. if(!$_POST['id'])
  5. {
  6. echo '<div style="text-align:center;"><form action="index.php?page=usunartykul" method="post">
  7. <select name="id"> ';
  8. stripslashes($zapytanie = "SELECT * FROM `artykuly` ORDER BY `id` DESC");
  9. $idzapytania = mysql_query($zapytanie);
  10. while ($wiersz = mysql_fetch_row($idzapytania))
  11. echo '<option value="'.$wiersz[0].'">('.$wiersz[0].') '.$wiersz[1].'</option>';
  12. </select>
  13. <input type="submit" value="Usu&#x144;" />
  14. <br />
  15. </form>';
  16. echo'<br /><a style="text-decoration: none;" href="?page=paneladmina">Wr&#xF3;&#x107; do Panelu Administratora</a></div>';
  17. }
  18. else
  19. {
  20. $zapytanie = "SELECT * FROM artykuly ORDER BY id DESC";
  21. $zapytanie = stripslashes($zapytanie);
  22. $idzapytania = mysql_query($zapytanie);
  23. while ($wiersz = mysql_fetch_row($idzapytania))
  24. {
  25. unlink('../zdjecie/'.$wiersz['zdjecie'].'');
  26. unlink('../upload/'.$wiersz['plik'].'');
  27. print_r($wiersz['plik']);
  28. addslashes($zapytanie = 'DELETE FROM `artykuly` WHERE `id`="'.$_POST['id'].'"');
  29. $idzapytania = mysql_query($zapytanie);
  30. }
  31. if($idzapytania)
  32. {
  33. echo '<div style="text-align:center;">Usuni&#x119;to artyku&#x142;<br /><br /><a style="text-decoration: none;" href="?page=paneladmina">Wr&#xF3;&#x107; do Panelu Administratora</a></div>';
  34. }
  35. else
  36. {
  37. echo mysql_errno() . ": " . mysql_error() . "\n";
  38. }
  39. }
  40. mysql_close($connect);
  41. ?>


Już próbuje na kilka sposobów i żaden nie działa sad.gif
Co robię nie tak?
Może trzeba coś na serwerze włączyć?

  1. <?php
  2. include('include/db.php');
  3. include('include/dane.php');
  4. if(!$_POST['id'])
  5. {
  6. echo '<div style="text-align:center;"><form action="index.php?page=usunartykul" method="post">
  7. <select name="id"> ';
  8. stripslashes($zapytanie = "SELECT * FROM `artykuly` ORDER BY `id` DESC");
  9. $idzapytania = mysql_query($zapytanie);
  10. while ($wiersz = mysql_fetch_row($idzapytania))
  11. echo '<option value="'.$wiersz[0].'">('.$wiersz[0].') '.$wiersz[1].'</option>';
  12. </select>
  13. <input type="submit" value="Usu&#x144;" />
  14. <br />
  15. </form>';
  16. echo'<br /><a style="text-decoration: none;" href="?page=paneladmina">Wr&#xF3;&#x107; do Panelu Administratora</a></div>';
  17. }
  18. else
  19. {
  20. $zapytanie = "SELECT * FROM artykuly ORDER BY id DESC";
  21. $zapytanie = stripslashes($zapytanie);
  22. $idzapytania = mysql_query($zapytanie);
  23. while ($wiersz = mysql_fetch_row($idzapytania))
  24. {
  25. $katalog1 = '/medbookstore/PROJEKT1/zdjecie';
  26. $katalog2 = '/medbookstore/PROJEKT1/upload';
  27. $okatalog1 = opendir($katalog1);
  28. $okatalog2 = opendir($katalog2);
  29. unlink(''.$katalog1.'/'.$wiersz['zdjecie'].'');
  30. unlink(''.$katalog2.'/'.$wiersz['plik'].'');
  31. addslashes($zapytanie = 'DELETE FROM `artykuly` WHERE `id`="'.$_POST['id'].'"');
  32. $idzapytania = mysql_query($zapytanie);
  33. }
  34. if($idzapytania)
  35. {
  36. echo '<div style="text-align:center;">Usuni&#x119;to artyku&#x142;<br /><br /><a style="text-decoration: none;" href="?page=paneladmina">Wr&#xF3;&#x107; do Panelu Administratora</a></div>';
  37. }
  38. else
  39. {
  40. echo mysql_errno() . ": " . mysql_error() . "\n";
  41. }
  42. }
  43. mysql_close($connect);
  44. ?>


Rozwiązane smile.gif
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.