jasiek07 0 Zgłoś post Napisano Marzec 8, 2014 witam, mam duzy klopot. Moja strona stoi na joomli. Zalezalo mi na tym aby ograniczyc dostep do niektorych tresci, tak wiec tylko zalogowani moga odslaniac niektore artykoly. Niestety sytuacja jest na tyle skomplikowana, ze w tych artykolach umieszczone sa tresci z innych plikow php w ramkach, a pliki php z trescia o ktorych mowa znajduja sie powiedzmy w folderze "zdjecia" w katalogu www czyli tam gdzie reszta strony. Tak wiec bez problemu teraz wszyscy moga ominac ograniczenia, odwiedzajac bezposrednio pliki php z linku do nich. Da sie jakos zrobic, aby dostep do folderu "zdjecia" oraz calej jego zawartosci mialy tylko osoby zalogowane w joomli? pozdrawiam Udostępnij ten post Link to postu Udostępnij na innych stronach
Łukasz Ostrowski 593 Zgłoś post Napisano Marzec 8, 2014 Serwuj je przez php który będzie sprawdzać czy użytkownik ma dane uprawnienia. Czyli link zamiast domena.pl/zdjecia/kot.jpg będzie domena.pl/cos.php?image=24312 Udostępnij ten post Link to postu Udostępnij na innych stronach
jasiek07 0 Zgłoś post Napisano Marzec 8, 2014 niestety nie mam zbyt duzej wiedzy jesli chodzi o programowanie, moglbys opisac jak to powinno wygladac?? albo jakis link do poradnika moze do tego?? Wiem o co chodzi ale nie mam pojecia jak to zrobic Udostępnij ten post Link to postu Udostępnij na innych stronach
Łukasz Ostrowski 593 Zgłoś post Napisano Marzec 8, 2014 Od joomli i jej podobnych trzymam się z daleka, poszukaj na necie czy nie ma jakiegoś modułu/pluginu do niej Udostępnij ten post Link to postu Udostępnij na innych stronach
jasiek07 0 Zgłoś post Napisano Marzec 8, 2014 (edytowany) ok dzieki za pomoc znalazlem cos takiego: Firstly, you should restrict access to your script from outside of the Joomla framework. You can do this pasting this code at the beginning of your code: // No direct access defined( '_JEXEC' ) or die( 'Restricted access' ); oraz Secondly, if you just want to test if the user accessing the script is logged in you can use this code: $user =& JFactory::getUser(); if ($user->guest) { echo "<p>Please login to download.</p>"; } else { //put the download code here } tylko nie wiem do konca w jaki sposob zastosowac ten kod. Wklejenie na poczatek pliku php wydaje mi sie zbyt latwe moglby to ktos jakos rozszyfrowac? i jak to powinno wygladac przed wklejeniem do pliku php?? bo teraz po wklejeniu tego skryptu do pliku php nie dzieje sie kompletnie nic nadal strona sie wyswietla bez przeszkod Edytowano Marzec 8, 2014 przez jasiek07 (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
PrecelusMaximus 53 Zgłoś post Napisano Marzec 8, 2014 (edytowany) O ile dobrze pamiętam, wystarczy wysłać odpowiedni nagłówek header() a później readfile() lub file_get_contents() zapodać prawdziwą ścieżkę, aczkolwiek pewien nie jestem. Edit: Wpisz w google "php pobieranie po zalogowaniu się" od razu wyskakuje Pierwszy lepszy link: http://www.goldenline.pl/grupy/Komputery_Internet/php/sciaganie-pliku-header,2985282/ i to jeszcze po polsku. Edytowano Marzec 8, 2014 przez PrecelusMaximus (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
Łukasz Ostrowski 593 Zgłoś post Napisano Marzec 8, 2014 Stwórz sobie plik o nazwie test.php i jako zawartość daj: <?php /** * @package Joomla.Site * @copyright Copyright (C) 2005 - 2014 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ // Set flag that this is a parent file. define('_JEXEC', 1); define('DS', DIRECTORY_SEPARATOR); $obrazek = "sciezka/do/obrazka.jpg"; if (file_exists(dirname(__FILE__) . '/defines.php')) { include_once dirname(__FILE__) . '/defines.php'; } if (!defined('_JDEFINES')) { define('JPATH_BASE', dirname(__FILE__)); require_once JPATH_BASE.'/includes/defines.php'; } require_once JPATH_BASE.'/includes/framework.php'; $user =& JFactory::getUser(); if ($user->guest) { echo "<p>Please login to download.</p>"; } else { header('Content-type: image/jpeg'); header('Content-Disposition: attachment; filename="'.$obrazek.'"'); readfile($obrazek); } ?> $obrazek zamień na ścieżkę do jakiegoś obrazka jpg, np. zdjecie/obrazek.jpg. Spróbuj dodać obrazek do artykułu podając jako ścieżkę test.php, powinno Ci wyświetlić obrazek jeśli jesteś zalogowany. Nie testowałem tego, pisane "na kolanie", sprawdź co się stanie. Nie skrobałem nic do Joomli ale może zadziała Udostępnij ten post Link to postu Udostępnij na innych stronach