Автор Тема: Файл .htaccess  (Прочетена 22209 пъти)

0 Потребители и 1 Гост преглежда(т) тази тема.

zareva_rositsa

  • Full Member
  • ***
  • Благодарности
  • -Казани: 0
  • -Получени: 0
  • Публикации: 149
Файл .htaccess
« -: 07 Януари 2010, 17:13:36 »
И все пак не успях да изкарам снимки след файла .htaccess. Някой може ли да помогне?

kerkenez

  • Hero Member
  • *****
  • Благодарности
  • -Казани: 2
  • -Получени: 14
  • Публикации: 1205
Отг:Файл .htaccess
« Отговор #1 -: 07 Януари 2010, 18:09:19 »
Ако това ти е .htaccess файла
order deny, allow
deny from all

е нормално, тъй като до колкото виждам ограничаваш достъпа от всякъде.

zareva_rositsa

  • Full Member
  • ***
  • Благодарности
  • -Казани: 0
  • -Получени: 0
  • Публикации: 149
Отг:Файл .htaccess
« Отговор #2 -: 07 Януари 2010, 18:12:14 »
Да, но после правя get_pic.php файл, който би трябвало да чете от диска

kerkenez

  • Hero Member
  • *****
  • Благодарности
  • -Казани: 2
  • -Получени: 14
  • Публикации: 1205
Отг:Файл .htaccess
« Отговор #3 -: 07 Януари 2010, 18:25:54 »
Някаква грешка ?...
Без .htaccess файла работи ли ?..
Най-добре, вместо стрелба на посоки да опитам пак те вдъхновя - дай код.

zareva_rositsa

  • Full Member
  • ***
  • Благодарности
  • -Казани: 0
  • -Получени: 0
  • Публикации: 149
Отг:Файл .htaccess
« Отговор #4 -: 07 Януари 2010, 18:31:05 »
:) ;)

index_logged.php

Код: PHP
  1. <?php
  2. include  ' common.php ' ;
  3. if($_SESSION[ ' is_logged ' ]===true) {
  4.     $pics=fetch_all(run_q( ' SELECT uc.name, p.pic_id, p.pic_name, p.comment FROM
  5.        user_catalogs as uc, pictures as p WHERE user_id= ' .$_SESSION[ ' user_id ' ]
  6.         . '  AND uc.catalog_id=p.catalogue_id ORDER BY uc.catalog_id ' ));
  7.     print_r($pics);
  8. }
  9. else {
  10.     header( ' Location: index.php ' );
  11.     exit;
  12. }
  13. include  ' templates/header.php ' ;
  14. include  ' templates/index_logged.php ' ;
  15. include  ' templates/footer.php ' ;
  16.  
  17. ?>

templates/index_logged.php:
Код: PHP
  1. <div>
  2.     <?php
  3.     $cat= '  ' ;
  4.     foreach($pics as $v)
  5.         {
  6.         if($cat!=$v[ ' name ' ])
  7.             {
  8.             echo  ' <div><h2> ' .$v[ ' name ' ]. ' </h2></div> ' ;
  9.         }
  10.         $cat=$v[ ' name ' ];
  11.  
  12.         echo  ' <div style=width: " 100px "  margin=10px><div>
  13.            <img src= " get_pic.php?pic_id= ' .$v[ ' pic_id ' ]. '  " ></div>
  14.                <div> ' .$v[ ' comment ' ]. ' </div></div> ' ;
  15.         }
  16. ?>
  17. </div>

common.php:
Код: PHP
  1. <?php
  2. mysql_connect( ' localhost ' ,  ' gatakka ' ) or die( ' No server ' );
  3. mysql_select_db( ' gallery ' ) or die ( ' No database ' );
  4.  
  5. function run_q($sql) {
  6.     mysql_query( ' SET NAMES UTF8 ' );
  7.     $rs=mysql_query($sql);
  8.     if(mysql_error()) {
  9.         echo mysql_error(). '  SQL ' .$sql;
  10.     }
  11.     return $rs;
  12. }
  13.  
  14. function fetch_all($mysql_resourse) {
  15.     while($row=mysql_fetch_assoc($mysql_resourse)) {
  16.         $resp[]=$row;
  17.     }
  18.     return $resp;
  19. }
  20. ?>

get_pic.php:

include  ' common.php ' ;

Код: PHP
  1. if($_SESSION[ ' is_logged ' ]===true) {
  2.     $pic_id=(int)$_GET[ ' pic_id ' ];
  3.     echo $pic_id;
  4.     if($pic_id>0)
  5.         {
  6.         $rs=run_q( ' SELECT p.pic_name FROM pictures as p, user_catalogs as uc WHERE
  7.            p.pic_id= ' .$pic_id. '  AND p.catalogue_id=uc.catalog_id AND
  8.            uc.user_id= ' .$_SESSION[ ' user_id ' ]);
  9.         $row=mysql_fetch_assoc($rs);
  10.  
  11.         if(strlen($row[ ' pic_name ' ])>2 && file_exists( ' user_pics ' .DIRECTORY_SEPARATOR.$_SESSION[ ' user_id ' ].DIRECTORY_SEPARATOR.$row[ ' pic_name ' ]))
  12.            
  13.             {
  14.             readfile( ' user_pics ' .DIRECTORY_SEPARATOR.$_SESSION[ ' user_id ' ].DIRECTORY_SEPARATOR.$row[ ' pic_name ' ]);
  15.         }
  16.     }
  17.  
  18.     $pics=fetch_all(run_q( ' SELECT uc.name, p.pic_id, p.pic_name, p.comment FROM user_catalogs as uc, pictures as p WHERE
  19.        user_id= ' .$_SESSION[ ' user_id ' ]. '  AND uc.catalog_id=p.catalogue_id ORDER BY
  20.            uc.catalog_id ' ));
  21. }
  22.  
  23. ?>
« Последна редакция: 15 Април 2015, 20:41:28 от Avalanche »

zareva_rositsa

  • Full Member
  • ***
  • Благодарности
  • -Казани: 0
  • -Получени: 0
  • Публикации: 149
Отг:Файл .htaccess
« Отговор #5 -: 07 Януари 2010, 18:33:45 »
без .htaccess - файла вече също не работи. Не виждам откъде може да ми идва това и не дава грешки.

kerkenez

  • Hero Member
  • *****
  • Благодарности
  • -Казани: 2
  • -Получени: 14
  • Публикации: 1205
Отг:Файл .htaccess
« Отговор #6 -: 07 Януари 2010, 18:40:17 »
Това е прилично количество код :)

zareva_rositsa написа:
Цитат
И все пак не успях да изкарам снимки след файла .htaccess. Някой може ли да помогне?

Би ли обяснила как така не успяваш да изкараш  " снимки след файла .htaccess " .
Грешка ли вади кво ли ? Все нещо трябва да се случва.

zareva_rositsa

  • Full Member
  • ***
  • Благодарности
  • -Казани: 0
  • -Получени: 0
  • Публикации: 149
Отг:Файл .htaccess
« Отговор #7 -: 07 Януари 2010, 18:49:01 »
аха, ами излизаха ми снимки през браузъра на index_logged.php, докато ги извиквах директно с foreach($pics as $v)
.......
$v[ ' pic_name ' ] за име на файла.
Но след като сложих .htaccess файл, имам само иконките на снимките, без самите изображения, а кода естествено е променен, така че да не извиква снимката със файлпат, а да сочи към get_pic.php и там да го чете

kerkenez

  • Hero Member
  • *****
  • Благодарности
  • -Казани: 2
  • -Получени: 14
  • Публикации: 1205
Отг:Файл .htaccess
« Отговор #8 -: 07 Януари 2010, 19:12:50 »
Пробвай get_pic.php да го направиш така
include  ' common.php ' ;

if($_SESSION[ ' is_logged ' ]===true) {
    $pic_id=(int)$_GET[ ' pic_id ' ];
    // echo $pic_id;
    if($pic_id>0) {
        $rs=run_q( ' SELECT p.pic_name FROM pictures as p, user_catalogs as uc WHERE
p.pic_id= ' .$pic_id. '  AND p.catalogue_id=uc.catalog_id AND
uc.user_id= ' .$_SESSION[ ' user_id ' ]);
        $row=mysql_fetch_assoc($rs);
       
        if(strlen($row[ ' pic_name ' ])>2 && file_exists( ' user_pics ' .DIRECTORY_SEPARATOR.$_SESSION[ ' user_id ' ].DIRECTORY_SEPARATOR.$row[ ' pic_name ' ])) {
            header( ' Content-type: image/jpg ' );
            echo file_get_contents( ' user_pics ' .DIRECTORY_SEPARATOR.$_SESSION[ ' user_id ' ].DIRECTORY_SEPARATOR.$row[ ' pic_name ' ]);
        }
    }
   
    $pics=fetch_all(run_q( ' SELECT uc.name, p.pic_id, p.pic_name, p.comment FROM user_catalogs as uc, pictures as p WHERE
user_id= ' .$_SESSION[ ' user_id ' ]. '  AND uc.catalog_id=p.catalogue_id ORDER BY
uc.catalog_id ' ));
}

?>

zareva_rositsa

  • Full Member
  • ***
  • Благодарности
  • -Казани: 0
  • -Получени: 0
  • Публикации: 149
Отг:Файл .htaccess
« Отговор #9 -: 07 Януари 2010, 19:22:03 »
нищо не се промени

zareva_rositsa

  • Full Member
  • ***
  • Благодарности
  • -Казани: 0
  • -Получени: 0
  • Публикации: 149
Отг:Файл .htaccess
« Отговор #10 -: 07 Януари 2010, 19:23:41 »
а е сигурно, че вика имената от базата данни, защото ги изкарва на масив, който е верен

kerkenez

  • Hero Member
  • *****
  • Благодарности
  • -Казани: 2
  • -Получени: 14
  • Публикации: 1205
Отг:Файл .htaccess
« Отговор #11 -: 07 Януари 2010, 19:28:58 »
Я изпълни на директно в браузъра get_pic.php?pic_id=(някакво валидно ID) и виж какво ще ти върне

zareva_rositsa

  • Full Member
  • ***
  • Благодарности
  • -Казани: 0
  • -Получени: 0
  • Публикации: 149
Отг:Файл .htaccess
« Отговор #12 -: 07 Януари 2010, 19:39:00 »
Върна:

http://localhost/gallery/get_pic.php?pic_id=3
, не снимка. А между другото, защо текста от тази страница не може да се копира, от всяка друга може.

kerkenez

  • Hero Member
  • *****
  • Благодарности
  • -Казани: 2
  • -Получени: 14
  • Публикации: 1205
Отг:Файл .htaccess
« Отговор #13 -: 07 Януари 2010, 19:45:50 »
я в get_pic.php промени тези редове така
//header( ' Content-type: image/jpg ' );
//echo file_get_contents( ' user_pics ' .DIRECTORY_SEPARATOR.$_SESSION[ ' user_id ' ].DIRECTORY_SEPARATOR.$row[ ' pic_name ' ]);
echo  ' user_pics ' .DIRECTORY_SEPARATOR.$_SESSION[ ' user_id ' ].DIRECTORY_SEPARATOR.$row[ ' pic_name ' ];

коментираш двата и добавяш долния...
Изпълни отново и виж какво ти връща, дали пътя до файла/картинката не е сбъркан.

*трябва да си сигурна че си логната за това в началото сложи $_SESSION[ ' is_logged ' ] = true;
* също и с $_SESSION[ ' user_id ' ]

zareva_rositsa

  • Full Member
  • ***
  • Благодарности
  • -Казани: 0
  • -Получени: 0
  • Публикации: 149
Отг:Файл .htaccess
« Отговор #14 -: 07 Януари 2010, 19:51:34 »
връща правилен път, двете папки и името на самата картинка