16:59

Мой блог о путешествиях www.crazy-traveller.ru
[ok]

Здравствуйте! Помогите пожалуйста решить проблему совмещения кода html, echo и header в одном файле.
читать дальше
Заранее благодарю всех откликнувшихся!

@темы: Программирование

Комментарии
21.12.2008 в 17:12

The day that you stop running is the day that you arrive.
Для начала, контент-тайпом ты задаешь вывод ИЗОБРАЖЕНИЯ, то есть у тебя ВСЯ страница считается КАРТИНКОЙ.
Как будто ты обратился не к пхп-файлу, а к файлу картинки. Имеет смысл только если ты хочешь, чтобы у тебя пхп-скрипт отдал картинку, а не хтмл.

При этом echo использовать бессмысленно.

Если хочется использовать echo раньше хеадера, то сделай так:
в начале скрипта пиши
ob_start();

в конце скрипта(после header) пиши
ob_end_flush();

и радуйся)


А лучше сделай отдельный скрипт, который будет генерировать картинку по запросу, в нем тогда будет и хеадер, и контент картинки, саму картинку можно выводить, передавая этому скрипту параметры по _GET, а в основной скрипт тогда вставишь
21.12.2008 в 17:24

Мой блог о путешествиях www.crazy-traveller.ru
я сначала так и хотела сделать что б была иконка и при клике на неё открывалась новая картинка с изображением. а у меня при кликании предлогалось потом скачать пхп-страницу. и ещё как передавать без < form method="GET" > я не знаю. А сюда такую конструкцию прилепить у меня не получаеца.
21.12.2008 в 17:27

The day that you stop running is the day that you arrive.
Просто ОНА А что у тебя лежит в $row["EXtimg"] ?
Если ссылка на картинку - просто вставь ссылку, тогда хеадер не нужен.
Если сама картинка засунута в базу - тогда делай отдельный PHP файл c чтением картинки, в него пиши header('Content-type: image/jpeg');
а дальше через echo выводи содержимое картинки в базе)

а уже этот отдельный файл используй как изображение.

Но сначала ответь на первый вопрос.
21.12.2008 в 17:35

Мой блог о путешествиях www.crazy-traveller.ru
у меня там сама картинка лежит, а не ссылка.
Вот смотри. я в первом файле пишу: echo ("< b >Фотографии:< /b > "."< a href='image.php?id=".$row['id']."' target='_blank' >< img src='pictures/image.gif' >< /a >< br >");

а в файле image.php пишу:
< ?php
include "dbSettings.inc";
if ( isset( $_GET['id'] ) ) {
// Здесь $id номер изображения
$id = (int)$_GET['id'];
if ( $id > 0 ) {
$query = "SELECT `timg` FROM `tours` WHERE `id`=".$id;
// Выполняем запрос и получаем файл
$res = mysql_query($query);
if ( mysql_num_rows( $res ) == 1 ) {
$timg = mysql_fetch_array($res);
// Отсылаем браузеру заголовок, сообщающий о том, что сейчас будет передаваться файл изображения
header("Content-type: image/*");
// И передаем сам файл
echo $timg['timg'];
}

}

}
?>

Второй код я взяла из инета, не сама писала. и вот при работе всего этого безобразия при кликании на иконку картинки в первом файле у меня выдаётся "открыть или сохранить файл image.php?" =(((
21.12.2008 в 17:45

The day that you stop running is the day that you arrive.
Просто ОНА если нажать "открыть", картинка-то открывается?

тогда положи в директорию со скриптами файл
.htaccess
и напиши в него
RewriteEngine On
RewriteRule ^image\.jpg$ image.php$1

После этого в основном скрипте ссылайся уже на image.jpg с нужными параметрами, они будут переданы image.php

да, и content-type проставляй корректно, в зависимости от типа картинки
21.12.2008 в 17:49

Мой блог о путешествиях www.crazy-traveller.ru
не. открываеца тока предложение сохранить файл. Ну вот када из инета чвото качаешь, то вот такая вот маленькая табличка посреди экрана появляется, типа ХОТИТЕ СОХРАНИТЬ ЭТОТ ФАЙЛ?

блин, я ничего не понимаю((( куда мне потом ссылаться в первом файле? Ты не мог бы писать попроще немножко, для очень-очень чайников?
21.12.2008 в 17:51

Мой блог о путешествиях www.crazy-traveller.ru
и как назвать этот файл .htaccess или это вот .htaccess и есть его название?
21.12.2008 в 17:59

The day that you stop running is the day that you arrive.
именно это и есть его название.
тебе надо назвать файл ".htaccess" без кавычек.

а в первом файле вместо
напишешь это:


Да, кстати, обращение к файлу через знак ?param=value и есть передача параметров через GET.

Я пишу как могу просто. )
Тут надо только немного подумать и спросить про непонятные директивы, если не удастся их нагуглить
21.12.2008 в 18:06

Мой блог о путешествиях www.crazy-traveller.ru
я попробовала создать такой файл, комп просит ввести его название. считает видимо что после точки это расширение файла а названия и нет получается(

в файле заменила на image.jpg, теперь выдаётся что типа нет такого файла... не может найти его..

обращение к файлу через знак ?param=value и есть передача параметров через GET.
ого! круто)

подумать и спросить про непонятные директивы
если б я знала ещё что такое директивы) но эт всё потом. давай сначала с проблемой разберёмся...

зы: спасибо большое что откликнулся и пытаешься помочь!!!!
21.12.2008 в 18:09

The day that you stop running is the day that you arrive.
Просто ОНА
пожалуйста, но по-моему, ты или не читаешь то что я пишу, или не думаешь...

я писал:
После этого[...после создания файла .htaccess] в основном скрипте ссылайся уже на image.jpg с нужными параметрами, они будут переданы image.php

если ты не создала файл, то логично, что у тебя:
в файле заменила на image.jpg, теперь выдаётся что типа нет такого файла... не может найти его..
потому что если нет .htaccess то нет и перенаправления обращений image.jpg на image.php

Возьми тоталкоммандер(виндовскоммандер), например, в нем все нормально создается.
21.12.2008 в 18:26

Мой блог о путешествиях www.crazy-traveller.ru
хм... вот странно.. вроде заработало но почему то некоторые картинки отображает а некоторые нет, крестиком тока выводят.. и это... открывается не через отдельную страничку а опять же спрашивает ХОТИТЕ ОТКРЫТЬ ИЛИ СОХРАНИТЬ ФАЙЛ?
21.12.2008 в 18:30

The day that you stop running is the day that you arrive.
Просто ОНА вероятно, проблема в настройках браузера.
картинки крестиком - читай, что я написал про content-type
вообще дай ссылку на скрипт, посмотрю.
в-смысле, на сайте, чтобы посмотреть его в работе

21.12.2008 в 18:35

Мой блог о путешествиях www.crazy-traveller.ru
я загружала в базу данных тока jpg картинки и в контент-тайп тож jpg поставила.

вот первый файл где кликаю на иконку:
< ? include "protect.inc";
include "dbSettings.inc"; ?>
< html >
< head >

< link href="myStyle.css"
rel="stylesheet"
type="text/css" >
< /head >
< body >
< ? $query="SELECT * FROM tours WHERE id='".$id."'";
$result=mysql_query($query)
or die ("Error:query");
while ($row=mysql_fetch_array($result))
{
echo ("< b >Номер тура:< /b > ".$row["id"]."< br >");
echo ("< b >Страна:< /b > ".$row["tname"]."< br >");
echo ("< b >Фотографии:< /b > "."< a href='image.jpg?id=".$row['id']."' target='_blank' >< img src='pictures/image.gif' >< /a >< br >");
}
?>
< /body >
< /html >

а вот файл image.php:
< ?php
include "dbSettings.inc";
if ( isset( $_GET['id'] ) ) {
// Здесь $id номер изображения
$id = (int)$_GET['id'];
if ( $id > 0 ) {
$query = "SELECT `timg` FROM `tours` WHERE `id`=".$id;
// Выполняем запрос и получаем файл
$res = mysql_query($query);
if ( mysql_num_rows( $res ) == 1 ) {
$timg = mysql_fetch_array($res);
// Отсылаем браузеру заголовок, сообщающий о том, что сейчас будет передаваться файл изображения
header("Content-type: image/jpg");
// И передаем сам файл
echo $timg['timg'];
}
}
}
?>
21.12.2008 в 18:37

The day that you stop running is the day that you arrive.
Просто ОНА перечитай мое предыдущее сообщение, пожалуйста.
21.12.2008 в 18:39

Мой блог о путешествиях www.crazy-traveller.ru
а у меня нет его на сайте. это курсовик, который мы показываем в работе прост на компах а не в инете.
21.12.2008 в 18:46

The day that you stop running is the day that you arrive.
Просто ОНА T____T сурово же вас учат...
проверь в разных браузерах.

а еще попробуй прописать не image.jpg а image.html
тогда будет так

файл, где кликаешь на иконку:


и .htaccess будет:


если не поможет - придется делать отдельный вывод страницы, в которую уже писать <img src=image.html?id= ........ это отдельно.
21.12.2008 в 18:59

Мой блог о путешествиях www.crazy-traveller.ru
попробовала в Опере, там даже залогиница не получилось (у меян в начале при входе на сайт логиницо нужно). Нам препод всё время вдалбливает что эт всё можно осуществить тока в Эксплорере и что б ни в чём другом не пытались даже... Мне почему-то кажца тут проблема с БД..

Переделала в image.html. Докладываю: открываеца в новом окне, но иногда глючит и выдаёт вместо картинки такой например текст: "/tmpphp4EC.tmp". Это происходит с картинками которые по весу примерно в 14 кб, а те что по 2-3 КБ они отображаются...

И ещё такой вопрос. у меня в БД на каждой строке три картинки. соответственно три иконки для кликания и должно быть три файла image.html, image1.html и image2.html. Как это отобразить с файле .htaccess и вообще можешь поподробнее объяснить что эт за файл и как он работает, что бы я понимала?
21.12.2008 в 19:02

The day that you stop running is the day that you arrive.
Просто ОНА
Судя по твоим описаниям, у тебя на компьютере проблема с интерпретацией php.
Чем ты пользуешься, чтобы пхп-файлы запускались?

Файл .htaccess с кодом, который мы сделали, перенаправляет обращения с image.html НА image.php
В параметрах к нему ты можешь указать любой номер картинки.

Ты же вызываешь:

Вот у тебя там есть id.
указывай какой нужно)

Или ты вообще про общую реализацию? Если да - сделай в базе в таблице три поля под картинки, а не одно.
21.12.2008 в 19:08

Мой блог о путешествиях www.crazy-traveller.ru
пользуюсь денвером, как нам и говорили в универе... и работал он у меня до этого почти год нормально...

id должен не задаваться в файле а браться из предыдущего файла. Выходит таблица в которой мы кликаем на ячейку в строке, грузится файл где отображаются другие ячейки из этой строки "номер тура, "страна" и фотка тоже берётся из ячейки... ну.. ты понимаешь ведь!

ну у меян три поля и из всех трёх нужно по отдельности картинки запрашивать.. так?
21.12.2008 в 19:12

The day that you stop running is the day that you arrive.
Просто ОНА скачай свежий денвер. denwer.ru

ты понимаешь ведь!
ну у меян три поля и из всех трёх нужно по отдельности картинки запрашивать.. так?

да. тогда делаешь под картинки не одно, а три поля в таблице, и в каждое заливаешь отдельно картинку. и из каждого отдельно запрашиваешь.
21.12.2008 в 19:17

Мой блог о путешествиях www.crazy-traveller.ru
а у меня старая БД тогда вся полетит(

вот! я так и сделала и у меня получилось что в первом файле у меня три иконки для кликания (для каждой из картинок). соответственно каждая икконка пересылает на разные файлы image.html, image1.html и image2.html и вот я спрашиваю нужно ли это как то отображать в файле .htaccess? Хотя покаписала поняла что видимо не нужно. но на всяк.случай спрашиваю..
21.12.2008 в 19:23

The day that you stop running is the day that you arrive.
Просто ОНА с чего бы у тебя БД полетит? никуда ничего не полетит.
Но если волнуешься, то зайди localhost/Tools/phpMyAdmin/
выбери базу и справа-вверху выбери экспорт, и экспортируй базу в файл.

соответственно каждая икконка пересылает на разные файлы image.html, image1.html и image2.html и вот я спрашиваю нужно ли это как то отображать в файле .htaccess
думать вас явно не учат... :(
передавай номер картинки параметром. У тебя будет например
image.html?id=123&pic=2

а в самом файле image.php смотри, что передано в pic и выбирай соответствующую картинку.

Это все пишется за 15 минут максимум.
21.12.2008 в 19:31

Мой блог о путешествиях www.crazy-traveller.ru
ок. тогда скажи какую версию скачать и где там её найти можно? на сайте денвера вижу тока кучи каких-то обновлений и дополнений...

думать вас явно не учат...
эт не нас не учат, а я не учусь... я вообще на ИТ случайно попала. можешь считать меня блондинкой...

в файле image.php у меня идёт "SELECT `timg` FROM `tours`....." Так вот в БД в таблице у меня три столбца для трёх картинок: timg, timg1 и timg2. Тогда получается что и файлов image.php должно быть три. Или я непрально понимаю?
21.12.2008 в 19:40

The day that you stop running is the day that you arrive.
Просто ОНА Хорошо, буду считать тебя блондинкой. Однако стоит пытаться думать, половина твоих вопросов решается логикой.

ок. тогда скажи какую версию скачать и где там её найти можно? на сайте денвера вижу тока кучи каких-то обновлений и дополнений...
www.denwer.ru/dis/?url=Base/Denwer3_Base_2008-0...
Дальше следуй написанным там инструкциям.

в файле image.php у меня идёт "SELECT `timg` FROM `tours`....." Так вот в БД в таблице у меня три столбца для трёх картинок: timg, timg1 и timg2. Тогда получается что и файлов image.php должно быть три. Или я непрально понимаю?
переименуй поля так, чтобы они были
timg0, timg1, timg2
т.е. нумерованные.

дальше код будет такой:

для основного файла


для image.php

21.12.2008 в 19:58

Мой блог о путешествиях www.crazy-traveller.ru
Я пытаюсь. Честно. Но не устроены у меня мозги так что бы на лету это всё схватывать...

ок, счас буду скачивать..

остальное сделала, вроде работает тока я поставила pic0, pic1 и pic2, т.к. у меня timg0, timg1 и timg2. А если pic1 2 и 3 то последняя не открывалась картинка.
21.12.2008 в 20:01

The day that you stop running is the day that you arrive.
Просто ОНА скачивай))

ну вот, а говоришь, мозги не работают. именно pic=0, pic=1 и pic=2. я ошибся :)
21.12.2008 в 20:08

Мой блог о путешествиях www.crazy-traveller.ru
скачала, посмотрела что такая версия у меня уже была но юзала я другую... установила эту. не работает. теперь понятно почему я использовала другую... можно мне обратно мою старую поставить?

ну вот они у меня работают но оч медлено и.. кароч програмирование эт просто не моё...
21.12.2008 в 20:11

The day that you stop running is the day that you arrive.
Просто ОНА описывай проблему подробнее.
что у тебя "не работает"?
у меня последняя версия, работает.

Какая ошибка, что выводит?
21.12.2008 в 20:13

Мой блог о путешествиях www.crazy-traveller.ru
http:// localhost и выдаётся "Невозможно отобразить страницу"
21.12.2008 в 20:18

The day that you stop running is the day that you arrive.
Просто ОНА последний денвер надо запустить ,-)
ПАПКА_ДЕНВЕРА\denwer\Run.exe
к тому же, ты ставила его поверх старого или в отдельную папку?