Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Błąd w pobieraniu plików
Forum PHP.pl > Forum > PHP
fugitivus
Witam. Otrzymałem gotowy projekt, w którym powinienem nanieść zmiany. Jedną z nich jest stworzenie strony z planami zajęć. Niżej podany kod generuje na stronie listę z wykazem kierunków, a każdy wpis listy posiada postać hiperłącza. Po kliknięciu powinien zostać pobrany plan zajęć w pliku .doc Niestety, otrzymuję jedynie komunikat:

"403 Forbidden. You don't have permission to access this document."

W zakresie PHP nie jestem ekspertem, więc życzliwe osoby proszę o pomoc i z wyprzedzeniem składam podziękowania. Jeśli w trakcie przeszukiwania forum przeoczyłem podobny temat, proszę o link do niego.

Moje podejrzenia padają na fragment kodu:

<a href="./pliki/plany/"'.$row['nazwa'].'>'.$row2['nazwa'].'</a>

ponieważ na stronie otrzymuję odnośnik do: www.xxx.pl/pliki/plany bez odniesienia do konkretnego pliku .doc, a wydaje mi się (chociaż nie wiem czy słusznie), że powinno być: www.xxx.pl/pliki/plany/xxx.doc Proszę o ewentualne wyprowadzenie z błędu.

  1. <?php
  2. $link=mysql_connect('sql.xxx.pl', 'xxx', 'xxx');
  3. mysql_select_db("glowna");
  4.  
  5. $pdo = new PDO('mysql:host=sql.xxx.pl;dbname=glowna', 'xxx', 'xxx');
  6. $stmt = $pdo -> query('SELECT * FROM kierunki ORDER BY nazwa ASC');
  7. echo '<ul>';
  8. foreach($stmt as $row2)
  9. {
  10.  
  11. // ---------------- pobranie nazwy pliku
  12.  
  13. $query = "SELECT id,nazwapliku FROM plany WHERE idk = ".$row2["id"].";";
  14. $result = mysql_query($query);
  15. $rowx = mysql_fetch_array($result);
  16. $nazwa = $rowx["nazwapliku"];
  17.  
  18. // -----------------------------------
  19. if (empty($nazwa))
  20. { 
  21. echo '<li class="lista"><font style="color:#E0E0E0">
  22. '.$row2['nazwa'].'</font></li>';
  23. } else
  24. {
  25. echo '<li class="lista">
  26. <a href="./pliki/plany/"'.$row['nazwa'].'>'.$row2['nazwa'].'</a>
  27. </li>';
  28. }
  29. }
  30. $stmt -> closeCursor();
  31. mysql_close($link);
  32. echo '</ul>';
  33. ?>
nevt
Cytat
403 Forbidden. You don't have permission to access this document.

podstawy angielskiego się kłaniają... nudzę się, więc przetłumaczę:

403 Zabronione. Nie posiadasz uprawnień dostępu do tego dokumentu.

Teraz już chyba jasne, że PHP nie ma z tym nic wspólnego - na serwerze masz źle przydzielone uprawnienia dla plików które chcesz udostępniać. W najprostszym przypadku ustaw prawo odczytu dla wszystkich i będzie ok...
fugitivus
Serdeczne dzięki. Nie byłem pewny czy dostępu nie zabrania baza danych. W katalogu z plikami do pobrania umieściłem plik .htaccess z zawartością: Access allow all, ale niestety nadal nie można pobrać plików. Jeśli możesz kilka słów więcej na ten temat, pozostanę bardzo zobowiązany.
webdice
Ale człowieku co to za kod? PDO i tradycyjna obsługa bazy? Coś Ty czytał? smile.gif
nevt
.htaccess kontroluje uprawnienia via web server... a twój problem to uprawnienia na poziomie systemu plików systemu operacyjnego... jesli to linux to odpal mc - zaznacz pliki i nadaj prawo odczytu dla wszystkich - i już...
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.