Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Разная отработка скрипта дома и на сервере (GDLib)
 
 автор: Dmitriy76   (11.12.2007 в 21:51)   письмо автору
 
 

Подскажите дома на моём сервере работает вот такой запрос print"<img src=thumb.php?id=$afl$file style='border:dotted 1 silver;width:75;height:100;'></a>\n"; вызывает функцию уменьшающуюся изображение , перенёс на другой сервер тот же Апач PHP 5.2 не работает ! Ошибок не выдаёт ! В чём может быть поблема !?

   
 
 автор: Staglu   (11.12.2007 в 21:56)   письмо автору
 
   для: Dmitriy76   (11.12.2007 в 21:51)
 

Если ваш скрипт использует библиотеку GDlib. То на другом сервере может быть не подключена эта библиотека и скрипт не работает. Посмотрите в файле php.ini чтоб были убраны коментарии перед extension=php_gd2.dll, а если нет доступа к php.ini. то с помошью phpinfo();.

   
 
 автор: Dmitriy76   (11.12.2007 в 22:26)   письмо автору
 
   для: Staglu   (11.12.2007 в 21:56)
 

Вот что у меня по phpinfo
gd
GD Support enabled
GD Version 2.0 or higher
FreeType Support enabled
FreeType Linkage with freetype
FreeType Version 2.3.5
T1Lib Support enabled
GIF Read Support enabled
GIF Create Support enabled
JPG Support enabled
PNG Support enabled
WBMP Support enabled

У меня подозрения на вызов функции img src=thumb.php?id=$afl$file даже если я вставлю img src=thumb1.php?id=$afl$file ошибки не будет а на домашнем ругается . В чём проблема?

   
 
 автор: Trianon   (11.12.2007 в 22:30)   письмо автору
 
   для: Dmitriy76   (11.12.2007 в 22:26)
 

на хостинге заблокирован вывод ошибок. Поэтому Вы их и не видите. Ошибка же явно не в этой строке - это всего лишь вызов - а внутри этого (а может быть и не только этого) файла.

   
 
 автор: Dmitriy76   (11.12.2007 в 23:04)   письмо автору
 
   для: Trianon   (11.12.2007 в 22:30)
 

На хостинге ошибки не заблокированы ! Это 100% Но работать не хочет!?

   
 
 автор: sim5   (11.12.2007 в 23:08)   письмо автору
 
   для: Dmitriy76   (11.12.2007 в 23:04)
 

А на реальном хосте вы получаете параметры запроса?

   
 
 автор: Dmitriy76   (11.12.2007 в 23:20)   письмо автору
 
   для: sim5   (11.12.2007 в 23:08)
 

А как проверить?

   
 
 автор: sim5   (11.12.2007 в 23:24)   письмо автору
 
   для: Dmitriy76   (11.12.2007 в 23:20)
 

print_r($_GET); сразу по принятию запроса. Вы должны увидеть массив переданных ключей и их значений. Вы как пулачете значения переменных строки запроса?

   
 
 автор: Dmitriy76   (11.12.2007 в 23:34)   письмо автору
 
   для: sim5   (11.12.2007 в 23:24)
 

На обоих серверах получаю Array ( )

   
 
 автор: sim5   (11.12.2007 в 23:39)   письмо автору
 
   для: Dmitriy76   (11.12.2007 в 23:34)
 

Ну ничего и не будет выполнено, если условие определяется по получению id, вы как его получаете, как $_GET['id'] ?

PS. Как на обоих, на локальном и реальном? Вы же сообщали, что на локальном у вас работает.

   
 
 автор: Faraon   (11.12.2007 в 23:42)   письмо автору
 
   для: sim5   (11.12.2007 в 23:39)
 

Скорее всего register_globals на реальном :)

   
 
 автор: sim5   (11.12.2007 в 23:47)   письмо автору
 
   для: Faraon   (11.12.2007 в 23:42)
 

Вот я такого же мнения, только почему массив в двух случаях пустой, может не там получает его товарищ. :)

   
 
 автор: Dmitriy76   (11.12.2007 в 23:47)   письмо автору
 
   для: Faraon   (11.12.2007 в 23:42)
 

Совсем запутался я после строки print"<img src=thumb.php?id=$afl$file style='border:dotted 1 silver;width:75;height:100;'></a>\n";
Дописал print_r($_GET);
На неё был получен ответ Array ( )
И на компе где скрипт работает и на компе где не хочет!
Прочитал статью http://phpfaq.ru/globals там говорится о PHP выше 4.1 у меня на обоих 5.2

   
 
 автор: sim5   (11.12.2007 в 23:52)   письмо автору
 
   для: Dmitriy76   (11.12.2007 в 23:47)
 

Вы должны дополнить print_r($_GET); свой сценарий в котором обрабатываете эту строку запроса, то есть, после запроса thumb.php?id=$afl$file, print_r($_GET) выдаст содержимое полученного массива. Если не получите, то скорее всего у вас register_globals. Вы так и не ответили как вы получаете переменные из запросов.

   
 
 автор: Dmitriy76   (12.12.2007 в 00:00)   письмо автору
 
   для: sim5   (11.12.2007 в 23:52)
 

Кудаж его запрос вставить там у меня вывод Вставляю print_r($_GET['id']); Ниже строки запроса пишет нет такой переменной ID ! Чего делоть то?

   
 
 автор: sim5   (12.12.2007 в 00:05)   письмо автору
 
   для: Dmitriy76   (12.12.2007 в 00:00)
 

>Кудаж его запрос вставить там у меня вывод

А зачем тогда она у вас в запросе?
Короче, скорее всего у вас причина заключается в разнличных установках rgister_globals. Если вы к переменным запроса ображаетесь как, например:
if ($id)... , то при rgister_globals = on на локальном сервере у вас все будет ОК. Но если на реальном сервере rgister_globals = off, то вы должны обращаться к переменным как $_GET['varName'], $_POST['varName']... Проверьте это.

   
 
 автор: Dmitriy76   (12.12.2007 в 00:16)   письмо автору
 
   для: sim5   (12.12.2007 в 00:05)
 

Спасибо всем !!!!
Вопрос решен проблема была в register_globals=off
Теперь бы разобраться как запросы выковыривать!

   
 
 автор: sim5   (12.12.2007 в 00:17)   письмо автору
 
   для: Dmitriy76   (12.12.2007 в 00:16)
 

На реальном сервере? Тогда не радуйтесь, а лучше перепишите свои скрипты с учетом register_globals=off

   
 
 автор: Dmitriy76   (12.12.2007 в 00:21)   письмо автору
 
   для: sim5   (12.12.2007 в 00:17)
 

Я не могу понять как вставить в строку правильный запрос print"<img src=thumb.php?id=$afl$file style='border:dotted 1 silver;width:75;height:100;'></a>\n";

   
 
 автор: sim5   (12.12.2007 в 00:25)   письмо автору
 
   для: Dmitriy76   (12.12.2007 в 00:21)
 


<?
print"<img src=\"thumb.php?id=$afl$file\" style=\"border:dotted 1 silver;width:75;height:100;\"></a>\n";

   
 
 автор: Dmitriy76   (12.12.2007 в 12:09)   письмо автору
 
   для: sim5   (12.12.2007 в 00:25)
 

Не работает !?

   
 
 автор: sim5   (12.12.2007 в 12:15)   письмо автору
 
   для: Dmitriy76   (12.12.2007 в 12:09)
 

Что не работает?

   
 
 автор: Dmitriy76   (12.12.2007 в 12:28)   письмо автору
 
   для: sim5   (12.12.2007 в 12:15)
 

Я так понял что нужно вместо ID использовать $_GET['id'] Ну и прописал print"<img src=thumb.php?"$_GET['id']"=$afl$file style=border:dotted 1 silver;width:75;height:100;'></a>\n";
И нарываюсь на ошибку ! syntax error, unexpected T_VARIABLE

   
 
 автор: Faraon   (12.12.2007 в 12:38)   письмо автору
 
   для: Dmitriy76   (12.12.2007 в 12:28)
 


print"<img src=thumb.php?".$_GET['id']."=$afl$file style=border:dotted 1 silver;width:75;height:100;'></a>\n";

   
 
 автор: sim5   (12.12.2007 в 12:38)   письмо автору
 
   для: Dmitriy76   (12.12.2007 в 12:28)
 

Вы спрашивали - "Я не могу понять как вставить в строку правильный запрос"...
Вставлять так:

//например
$afl = 'th';
$file = 12;
//то после выполнения
print"<img src=\"thumb.php?id=$afl$file\" style=\"border:dotted 1 silver;width:75;height:100;\"></a>\n";
//на странице будет ссылка с url src="thumb.php?id=th12" 

Вот в скрипте thumb.php получив $_GET['id'], вы узнаете, что оно равно th12. А вот для чего вам это надо в вашем скрипте, где и что вы пытаетесь получить, мне не ведомо. Вставлять "от фонаря" в src $_GET['id'], это вообще не понятно для чего.

   
 
 автор: Dmitriy76   (12.12.2007 в 12:55)   письмо автору
 
   для: sim5   (12.12.2007 в 12:38)
 

Вот прочитал статейку в которой сказано "Начиная с PHP 4.2.0, значение директивы register_globals по умолчанию установлено в off (отключено). Это большое изменение в PHP. Положение register_globals в off делает предопределенные переменные доступными в глобальной области видимости. Например, чтобы получить DOCUMENT_ROOT, вам необходимо будет использовать $_SERVER['DOCUMENT_ROOT'] вместо $DOCUMENT_ROOT, или $_GET['id'] из URL http://www.example.com/test.php?id=3 вместо $id, или $_ENV['HOME'] вместо $HOME."

Строка print"<img src=\"thumb.php?id=$afl$file\" style=\"border:dotted 1 silver;width:75;height:100;\"></a>\n";
На экране пусто
Функция thumb.php возвращает уменьшеную копию изображения !

   
 
 автор: KPETuH   (12.12.2007 в 13:18)   письмо автору
 
   для: Dmitriy76   (12.12.2007 в 12:55)
 

приведите код thumb.php

   
 
 автор: Dmitriy76   (12.12.2007 в 13:34)   письмо автору
 
   для: KPETuH   (12.12.2007 в 13:18)
 

Привожу
<?php
//Ф-ия возвращает уменьшенную копию изображения. И вызывается в фомате
//thumb.php?id=путь_к_рисунку, так же можно задать размеры, или только высоту, тогда
//картинка уменьшится сохранив пропорции. Скрипт понимает такие форматы изображения как gif,jpeg,png
//а возвращает в формате jpeg.Из html вызывать ф-ию нужно так <img src=thumb.php?id=путь_к_рисунку>
// список параметров thumb(путь_к_рисунку, ширина,высота)
function thumb($path,$x,$y=0)
{
$t=getimagesize ($path) or die('unknown type of image');
$with=$t[0];
$height=$t[1];
switch ($t[2])
{
case 1:
$type='gif';
$img=imagecreatefromgif($path1);
break;
case 2:
$type='jpeg';
$img=imagecreatefromjpeg($path);
break;
case 3:
$type='png';
$img=imagecreatefrompng($path);
break;
}
if($y==0)
{$y=$x*($height/$with);}

header("content-type: image/".$type);
$thumb=imagecreatetruecolor($x,$y);
imagecopyresized($thumb,$img,0,0,0,0,$x,$y,$with,$height);
$thumb=imagejpeg($thumb);
return $thumb;
}
if($id)
{
echo thumb($id,200);
}
?>

   
 
 автор: KPETuH   (12.12.2007 в 13:42)   письмо автору
 
   для: Dmitriy76   (12.12.2007 в 13:34)
 

попробуйте вместо


<?
if ($id)
{
echo 
thumb($id,200);
}


написать


<?
if (!empty($_GET['id']))
{
echo 
thumb($_GET['id']),200);
}


вы просто опять забыли про глобальные переменные :)

   
 
 автор: Dmitriy76   (12.12.2007 в 13:42)   письмо автору
 
   для: Dmitriy76   (12.12.2007 в 13:34)
 

Разобрался
if($_GET['id'])
{
echo thumb($_GET['id'],200);

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования