Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > Серверные технологии и Flash

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 30.03.2007, 18:27
MINASTIS вне форума Посмотреть профиль Отправить личное сообщение для MINASTIS Посетить домашнюю страницу MINASTIS Найти все сообщения от MINASTIS
  № 1  
Ответить с цитированием
MINASTIS
 
Аватар для MINASTIS

Регистрация: Jan 2006
Адрес: Сургут
Сообщений: 897
Отправить сообщение для MINASTIS с помощью Skype™
Attention Не отображается картинка путем вывода ее пути через адрес страницы

Приветствую. Я создал систему просмотра изображений, путем php файла, в котором отображается ссылка на картинку через переменную $image. На ПК работает (локально) через Денвер, а вот в инете на многочисленных хостах никак =(
Вот код php страницы:
Код:
<html>
<body background="images/back_html.gif"><center>
<table background="images/back_table.png" width=810 height=610>
<tr>
<td align="center" valign="middle">
<?
echo "<img width='800' height='600' align='middle' src=$image>;"
?>
</td>
</tr>
</table>
</center>
</body>
</html>
А вот ссылка пример: http://lingua.110mb.com/image.php?im...s/240307_1.jpg.

Хотя если без скрипта то картинка отображается.
Помогите разобраться с проблемой.


Последний раз редактировалось etc; 30.03.2007 в 21:09.
Старый 30.03.2007, 18:36
Kikasso вне форума Посмотреть профиль Отправить личное сообщение для Kikasso Найти все сообщения от Kikasso
  № 2  
Ответить с цитированием
Kikasso
 
Аватар для Kikasso

Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
может так?
Код:
<html> 
<body background="images/back_html.gif"><center> 
<table background="images/back_table.png" width=810 height=610> 
<tr> 
<td align="center" valign="middle"> 
<img width='800' height='600' align='middle' src='<?php echo $image; ?>'> 
</td> 
</tr> 
</table> 
</center> 
</body> 
</html>
В смысле кавычками $image обрамить, попробуйте.

Старый 30.03.2007, 18:47
MINASTIS вне форума Посмотреть профиль Отправить личное сообщение для MINASTIS Посетить домашнюю страницу MINASTIS Найти все сообщения от MINASTIS
  № 3  
Ответить с цитированием
MINASTIS
 
Аватар для MINASTIS

Регистрация: Jan 2006
Адрес: Сургут
Сообщений: 897
Отправить сообщение для MINASTIS с помощью Skype™
Не работает =(
Зато ';' исчезло справа от картинки. Но так картинка и не отображается. Вот
http://lingua.110mb.com/image.php?im...s/240307_1.jpg

Старый 30.03.2007, 18:53
Kikasso вне форума Посмотреть профиль Отправить личное сообщение для Kikasso Найти все сообщения от Kikasso
  № 4  
Ответить с цитированием
Kikasso
 
Аватар для Kikasso

Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
так а что будет изображаться? У меня сурс:

Цитата:
<img width='800' height='600' align='middle' src=''>
откуда $image берется? может так:
Код:
$image = $_GET['image']
и далее по тексту.
Этож давно не автоматический процесс.
Код:
<?php 
echo "<img src=\"". $image . "\" >"; 
?>
а размеры проставляются вроде бы getImageSize


Последний раз редактировалось Kikasso; 30.03.2007 в 18:59.
Старый 30.03.2007, 19:04
MINASTIS вне форума Посмотреть профиль Отправить личное сообщение для MINASTIS Посетить домашнюю страницу MINASTIS Найти все сообщения от MINASTIS
  № 5  
Ответить с цитированием
MINASTIS
 
Аватар для MINASTIS

Регистрация: Jan 2006
Адрес: Сургут
Сообщений: 897
Отправить сообщение для MINASTIS с помощью Skype™
Kikasso, ты еще раз гений. Мои знания по php как я вижу устарели =)
Спасибо за помощь.

Кстати как оценишь сайт http://lingua.110mb.com/indexx.html ?


Последний раз редактировалось MINASTIS; 30.03.2007 в 19:08.
Старый 30.03.2007, 20:41
Kikasso вне форума Посмотреть профиль Отправить личное сообщение для Kikasso Найти все сообщения от Kikasso
  № 6  
Ответить с цитированием
Kikasso
 
Аватар для Kikasso

Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
Нормальный сайт.
Насчет $_GET - просто директива (не помню как называется), которая автоматически все геты, посты, куки и переменные сессии в переменные конвертирует, на всех нормальных хостингах поставлена в off. А то помимо путаницы можно еще на "пользователя" нарваться. А в denver она оставлена в on.
Еще момент - проставляйте "@" перед данными, которых может не быть, а то получите warning а флеш этого не поймет.
http://php.net

Старый 30.03.2007, 20:45
Kikasso вне форума Посмотреть профиль Отправить личное сообщение для Kikasso Найти все сообщения от Kikasso
  № 7  
Ответить с цитированием
Kikasso
 
Аватар для Kikasso

Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
register_globals, вот как она называется.
Цитата:
Глава 29. Использование глобальных переменных (Register_Globals)
Наверное, наиболее спорным моментом в разработке PHP стала замена значения по умолчанию для опции register_globals с ON на OFF в версии 4.2.0. Большинство пользователей доверились разработчикам, даже не зная, что это за опция и как она влияет на работу PHP. Эта страница документации призвана показать, как эта настройка сочетается с вопросами безопасности при разработке приложений. Следует понимать, что сама по себе эта опция никак не влияет на безопасность, ургозу представляет некорректное использование предоставляемых ею возможностей.

В случае, если значение параметра register_globals ON, перед выполнением вашего кода будут инициализированы различные переменные, например, переменные, переданные при отправке формы. Также, учитывая тот факт, что PHP не требует инициализации переменных, написать потенциально опасный код очень легко. Это было очень спорным решением, но общество разработчиков PHP решило изменить значение по умолчанию этой директивы на OFF. В противном случае при написании кода разработчики не могли бы с уверенностью сказать, откуда пришла та или иная переменная и насколько она достоверна. До такого нововведения переменные, определяемые разработчиком внутри скрипта, и передаваемые пользователем внешние данные могли перемешиваться. Приведем простой пример злоупотребления конфигурационной опцией register_globals:

Пример 29-1. Пример опасного кода с register_globals = on

<?php
// устанавливаем переменную $authorized = true только для пользователей, прошедших авторизацию
if (authenticated_user()) {
$authorized = true;
}

// Поскольку в случае неудачи при проверке авторизации переменная $authorized
// не установлена, она может быть установлена автоматически, благодаря register_globals,
// например, при GET запросе GET auth.php?authorized=1.
// Таким образом, пройти эту проверку можно без авторизации
if ($authorized) {
include "/highly/sensitive/data.php";
}
?>



В случае register_globals = on логика работы скрипта может быть нарушена. В случае, если установленное значение off, переменная $authorized не может быть установлена из внешних данных запроса, и скрипт будет работать корректно. Но все же инициализация переменных - один из признаков хорошего тона в программировании. Например, в приведенном выше участке кода мы могли поместить $authorized = false в качестве первой строки. Такой код работал бы как со значением on, так и off опции register_globals, и подразумевая, что по умолчанию пользователь не проходил авторизацию.

Приведем еще один пример, использующий сессии. В случае, если register_globals = on, мы можем использовать переменную $username в приведенном ниже примере, но тогда у нас не будет уверенности в достоверности ее значения (к примеру, она могла быть передана в GET-запросе).

Пример 29-2. Пример использования сессий со значением register_globals on или off

<?php
// Мы не знаем, откуда получена переменная $username, но точно знаем, что
// переменная $_SESSION хранит в себе данные сессии
if (isset($_SESSION['username'])) {

echo "Hello <b>{$_SESSION['username']}</b>";

} else {

echo "Hello <b>Guest</b><br />";
echo "Would you like to login?";

}
?>



Также существует возможность реализации оперативного реагирования в случае попытки подмены переменных. Так как во время разработки приложения мы знаем ожидаемое значение переменной, а также знаем ее достоверное значение, мы можем их сопоставить. Это не защитит код от подмены переменных, но усложнит перебор возможных вариантов. Если вы не хотите знать, как именно были получены внешние данные, используйте переменную $_REQUEST, которая состоит из данных GET и POST запросов, а также данных COOKIE. Также, информацию об этом можно найти в разделе внешние данные в PHP.

Пример 29-3. Обнаружение попытки подмены переменных

<?php
if (isset($_COOKIE['MAGIC_COOKIE'])) {

// MAGIC_COOKIE получена из достоверного источника.
// Для полной уверенности необходимо проверить ее значение.

} elseif (isset($_GET['MAGIC_COOKIE']) || isset($_POST['MAGIC_COOKIE'])) {

mail("admin@example.com", "Обнаружена попытка взлома", $_SERVER['REMOTE_ADDR']);
echo "Обнаружено нарушение безопасности, администратор уведомлен.";
exit;

} else {

// MAGIC_COOKIE в данных запроса не присутствует
}
?>



Следует понимать, что установка register_globals в off не сделает ваш код безопасным. Каждую полученную от пользователя переменную следует проверять на соответствие ожидаемому значению. Всегда проверяйте ввод пользователя и инициализируйте все используемые переменные. Для проверки на наличие неинициализированных переменных можно включить в опцию error_reporting() отображение ошибок категории E_NOTICE.

Суперглобальные переменные: замечание о доступности: Начиная с PHP 4.1.0, стали доступными суперглобальные массивы, такие как $_GET, $_POST, $_SERVER и т.д.

Старый 31.03.2007, 12:19
MINASTIS вне форума Посмотреть профиль Отправить личное сообщение для MINASTIS Посетить домашнюю страницу MINASTIS Найти все сообщения от MINASTIS
  № 8  
Ответить с цитированием
MINASTIS
 
Аватар для MINASTIS

Регистрация: Jan 2006
Адрес: Сургут
Сообщений: 897
Отправить сообщение для MINASTIS с помощью Skype™
Снова приветствую. У меня опять ошибка =(
Правда в другом но очень похожем случае.
Я сделал код, который вставляет функцией include или значение переменной заданную в ссылке, или если include не существует он дефолтное значение дает. В общем смотрите:
Код:
<?php
Error_Reporting(E_ALL & ~E_NOTICE);
if (isset($_GET['page'])) {
include($_GET['page']);
} else {
include("pages/index.html");
}
?>
Вот если нет значени в ссылке, то есть:
http://lingua.110mb.com/indexx_info.php

А вот если есть:
http://lingua.110mb.com/indexx_info....ges/about.html

Почему он не отображает выбранную страницу? Сама по себе она существует, но он ошибку выдает...


Последний раз редактировалось etc; 31.03.2007 в 12:42.
Старый 31.03.2007, 12:42
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 9  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
MINASTIS, не используй тег PHP для php-кода, используй CODE. Сам же видишь, что читать невозможно.

Старый 31.03.2007, 17:26
MINASTIS вне форума Посмотреть профиль Отправить личное сообщение для MINASTIS Посетить домашнюю страницу MINASTIS Найти все сообщения от MINASTIS
  № 10  
Ответить с цитированием
MINASTIS
 
Аватар для MINASTIS

Регистрация: Jan 2006
Адрес: Сургут
Сообщений: 897
Отправить сообщение для MINASTIS с помощью Skype™
__etc без проблем. Кстати, по проблеме не знаешь в чем загвостка? =(

Создать новую тему Ответ Часовой пояс GMT +4, время: 00:52.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 00:52.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.