За последние 24 часа нас посетили 18653 программиста и 1599 роботов. Сейчас ищут 995 программистов ...

Переобразование адресов

Тема в разделе "Прочие вопросы по PHP", создана пользователем andrey_94, 1 июн 2009.

  1. andrey_94

    andrey_94 Активный пользователь

    С нами с:
    17 май 2009
    Сообщения:
    40
    Симпатии:
    0
    Ка правильно преобразовать?, с помощью mod_rewrite адрес такого вида:
    Код (Text):
    1. view_photo.php?photo=4
    в такой:
    Код (Text):
    1. photo/4.html
     
  2. TheShock

    TheShock Активный пользователь

    С нами с:
    30 май 2009
    Сообщения:
    1.255
    Симпатии:
    0
    Адрес:
    Київ
    Как-то так:
    Код (Text):
    1. RewriteRule ^photo/([0-9]+).html$ view_photo.php?photo=$1 [L,QSA]
     
  3. andrey_94

    andrey_94 Активный пользователь

    С нами с:
    17 май 2009
    Сообщения:
    40
    Симпатии:
    0
    Спасибо, работает но, вместо изображений отображается черный прямоугольник, как это исправить?
     
  4. TheShock

    TheShock Активный пользователь

    С нами с:
    30 май 2009
    Сообщения:
    1.255
    Симпатии:
    0
    Адрес:
    Київ
    Извини, переустанавливал систему, не успел собрать libastral.so
    Черный прямоугольник отображается где и, главное, какого размера?
    Отображается ли он по адресу photo/1.html ?
    Отображается ли он по адресу view_photo.php?photo=$1 ?
     
  5. andrey_94

    andrey_94 Активный пользователь

    С нами с:
    17 май 2009
    Сообщения:
    40
    Симпатии:
    0
    1. Черный прямоугольник отображается на месте изображения которое должно быть, примерно размера 20px на 40px.
    2. Отображается
    3. По адресу view_photo.php?photo=1 - Отображается
     
  6. TheShock

    TheShock Активный пользователь

    С нами с:
    30 май 2009
    Сообщения:
    1.255
    Симпатии:
    0
    Адрес:
    Київ
    Пункты 2 и 3 - изображение, или прямоугольник
    Ты стараешься вставить изображение с помощью <img src=''... в другом месте сайта?
     
  7. andrey_94

    andrey_94 Активный пользователь

    С нами с:
    17 май 2009
    Сообщения:
    40
    Симпатии:
    0
    Отображаться прямоугольник
     
  8. TheShock

    TheShock Активный пользователь

    С нами с:
    30 май 2009
    Сообщения:
    1.255
    Симпатии:
    0
    Адрес:
    Київ
    Тогда - код в студию.
     
  9. andrey_94

    andrey_94 Активный пользователь

    С нами с:
    17 май 2009
    Сообщения:
    40
    Симпатии:
    0
    Мод реврайта или файла view_photo.php ?
     
  10. TheShock

    TheShock Активный пользователь

    С нами с:
    30 май 2009
    Сообщения:
    1.255
    Симпатии:
    0
    Адрес:
    Київ
    файла view_photo.php
     
  11. andrey_94

    andrey_94 Активный пользователь

    С нами с:
    17 май 2009
    Сообщения:
    40
    Симпатии:
    0
    PHP:
    1. <?php
    2.  
    3. $db = mysql_connect("localhost","andrey","andrey");
    4. $result = mysql_select_db("test");
    5.  
    6. if (isset($_GET['photo'])) { $photo = $_GET['photo'];}
    7.  
    8. ?>
    9.  
    10. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    11. <html xmlns="http://www.w3.org/1999/xhtml">
    12. <head>
    13. <meta http-equiv="content-type" content="text/html; charset=windows-1251" />
    14. <title>Фото</title>
    15. </head>
    16.  
    17. <body>
    18. <?php
    19.  
    20. $result = mysql_query ("SELECT path, path_mini, title FROM foto WHERE id='$photo'",$db);
    21. $myrow = mysql_fetch_array ($result);
    22.  
    23. printf ("<img src='photo/%s' width='170' height='170' style='margin-right:5px; margin-bottom:10px; margin-top:10px; margin-left:2px; border: #333 solid 3px' title='%s'>", $myrow["path"], $myrow["title"]);       
    24.  
    25. ?>
    26. </body>
    27. </html>
    28.  
     
  12. TheShock

    TheShock Активный пользователь

    С нами с:
    30 май 2009
    Сообщения:
    1.255
    Симпатии:
    0
    Адрес:
    Київ
    это какой файл? я говорил, дай view_photo.php. сам файл генерации картинки. а еще:

    PHP:
    1. <?php
    2. // Замени
    3. $photo = $_GET['photo'];
    4. // На
    5. $photo = (int) $_GET['photo'];
    6. // Поможет избежать СКЛ инъекции
    7.  
     
  13. TheShock

    TheShock Активный пользователь

    С нами с:
    30 май 2009
    Сообщения:
    1.255
    Симпатии:
    0
    Адрес:
    Київ
    Вообще, перепиши лучше эту часть так:

    PHP:
    1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    2. <html xmlns="http://www.w3.org/1999/xhtml">
    3. <head>
    4. <meta http-equiv="content-type" content="text/html; charset=windows-1251" />
    5. <title>Фото</title>
    6. </head>
    7.  
    8. <body>
    9. <?php
    10.  
    11. // Ссылку тягать необязательно
    12. mysql_connect("localhost","andrey","andrey");
    13.  
    14. // А вдруг $_GET['photo'] будет пустым? Тогда у тебя будет Нотис.
    15. $photo = empty($_GET['photo']) ? 0 : intval($_GET['photo']);
    16.  
    17. $result = mysql_query ("SELECT path, path_mini, title FROM foto WHERE id='$photo'");
    18. $myrow = mysql_fetch_array ($result);
    19. // Кажется, тут надо сделать так.
    20. $myrow = $myrow[0];
    21.  
    22. printf ("<img src='photo/%s' width='170' height='170' style='margin-right:5px; margin-bottom:10px; margin-top:10px; margin-left:2px; border: #333 solid 3px' title='%s'>", $myrow["path"], $myrow["title"]);       
    23.  
    24. ?>
    25. </body>
    26. </html>
    27.  
     
  14. andrey_94

    andrey_94 Активный пользователь

    С нами с:
    17 май 2009
    Сообщения:
    40
    Симпатии:
    0
    так я дал файл view_photo.php он отображает у меня картинку в полном виде
     
  15. TheShock

    TheShock Активный пользователь

    С нами с:
    30 май 2009
    Сообщения:
    1.255
    Симпатии:
    0
    Адрес:
    Київ
    я так и думал.
    хтмл-файл "виев_фото" ссылается на ХТМЛ файл "виев_фото" (на самого себя). <img src='photo/%s'
    photo/%s - это не картинка, а текст!
     
  16. andrey_94

    andrey_94 Активный пользователь

    С нами с:
    17 май 2009
    Сообщения:
    40
    Симпатии:
    0
    ой.... чего то я вообще ничего не понимаю.... где виев_фото ссылается на хтмл файл? photo/%s здесь, у меня подставляется путь к картинке
     
  17. TheShock

    TheShock Активный пользователь

    С нами с:
    30 май 2009
    Сообщения:
    1.255
    Симпатии:
    0
    Адрес:
    Київ
    Это?
    Код (Text):
    1. RewriteRule ^photo/([0-9]+).html$ view_photo.php?photo=$1 [L,QSA]
    Ну так он ссылается на все тот же view_photo.php. Или нет?
     
  18. TheShock

    TheShock Активный пользователь

    С нами с:
    30 май 2009
    Сообщения:
    1.255
    Симпатии:
    0
    Адрес:
    Київ
    вижу, нет.
     
  19. andrey_94

    andrey_94 Активный пользователь

    С нами с:
    17 май 2009
    Сообщения:
    40
    Симпатии:
    0
    Это в этом вся проблема, как ее исправить?
     
  20. TheShock

    TheShock Активный пользователь

    С нами с:
    30 май 2009
    Сообщения:
    1.255
    Симпатии:
    0
    Адрес:
    Київ
    После <?php вставь error_reporting(E_ALL);
     
  21. andrey_94

    andrey_94 Активный пользователь

    С нами с:
    17 май 2009
    Сообщения:
    40
    Симпатии:
    0
    нет.. все равно не работает
     
  22. TheShock

    TheShock Активный пользователь

    С нами с:
    30 май 2009
    Сообщения:
    1.255
    Симпатии:
    0
    Адрес:
    Київ
    оно и не должно работать . Поставил после первого <?php еррор-репортинг? какие-то ошибки выдает?
     
  23. andrey_94

    andrey_94 Активный пользователь

    С нами с:
    17 май 2009
    Сообщения:
    40
    Симпатии:
    0
    поставил, ошибок нету
     
  24. TheShock

    TheShock Активный пользователь

    С нами с:
    30 май 2009
    Сообщения:
    1.255
    Симпатии:
    0
    Адрес:
    Київ
    перед printf поставь var_dump($myrow["path"]); что выводит?
     
  25. andrey_94

    andrey_94 Активный пользователь

    С нами с:
    17 май 2009
    Сообщения:
    40
    Симпатии:
    0
    выводит вот такое
    PHP:
    1. string(17) "30-05-2009--1.jpg"