|
|
|
| Вот скрипт который должен рисовать каритнку
<?php
Header("Content-type: image/gif");
$rgb=0x1e81de;
$idest = imagecreatetruecolor(39, 20);
$textcolor = imagecolorallocate($idest, 255,255,255);
imagefill($idest, 0, 0, $rgb);
imagestring($idest, 3, 9, 4, $text, $textcolor);
imagegif($idest);
imagedestroy($idest);
?>
|
Может где то ошибка, он почему то не рисует картинку?
Подскажите где ошибка | |
|
|
|
|
|
|
|
для: ruler
(25.11.2007 в 15:05)
| | У меня все работает. Установлена ли у вас библиотека GD? И как вы вызываете скрипт? | |
|
|
|
|
|
|
|
для: Drago
(25.11.2007 в 15:12)
| | Да установлена библиотека
Скрипт вызвывается следующим способом
<?
for ($x=0; $x<3; $x++) $x=$x.mt_rand(1,9);
echo "<img src=pic.php?code=".$x.">";
?>
|
где $x это код выводимый на данное изображение | |
|
|
|
|
|
|
|
для: Ruler
(25.11.2007 в 15:15)
| | Переменной $_GET['code'] у вас в скрипте нигде не видно. Вы его в таком же виде используете? | |
|
|
|
|
|
|
|
для: Drago
(25.11.2007 в 15:25)
| | ага
Вот более полное код
<form action=add.php method=post>
Имя: <input type=text><br>
Текст: <input type=text><br>
Введите цифры на картинке: <input type=text size=3 name=intextimg>
<?php
$ip = $_SERVER['REMOTE_ADDR'];
for ($x=0; $x<3; $x++) $x=$x.mt_rand(1,9);
echo "<img src=pic.php?text=".$x.">";
// тут подключается база данный
Затем вставляется запись
mysql_query("INSERT INTO test VALUES('".$ip."', '".$x."')");
?>
<input type=submit>
</form>
|
| |
|
|
|
|
|
|
|
для: Ruler
(25.11.2007 в 15:25)
| | Я имел ввиду этот скрипт
<?php
Header("Content-type: image/gif");
$rgb=0x1e81de;
$idest = imagecreatetruecolor(39, 20);
$textcolor = imagecolorallocate($idest, 255,255,255);
imagefill($idest, 0, 0, $rgb);
imagestring($idest, 3, 9, 4, $text, $textcolor);
imagegif($idest);
imagedestroy($idest);
?>
|
попробуйте запустить его напрямую. Например: localhost/pic.php
И что у вас не рисуется? Сама картинка или только текст на ней? | |
|
|
|
|
|
|
|
для: Ruler
(25.11.2007 в 15:15)
| | Ошибок вообще никаких не выдает? | |
|
|
|
|
|
|
|
для: ddhvvn
(25.11.2007 в 15:26)
| | Если в таком же, то скрипт по-любому выдает предупреждение и от этого картинка не отображается! | |
|
|
|
|
|
|
|
для: ddhvvn
(25.11.2007 в 15:28)
| | вот выше, я дал более полный код
Не много ошибся
echo "<img src=pic.php?text=".$x.">";
|
а не
echo "<img src=pic.php?code=".$x.">";
|
| |
|
|
|
|
|
|
|
для: Ruler
(25.11.2007 в 15:31)
| | Выдает ошибки следующие файл pic.php
Notice: Undefined variable: text in z:\home\phpgolovol\www\test\pic.php on line 7
Warning: imagegif(): Unable to open temporary file in z:\home\phpgolovol\www\test\pic.php on line 8 | |
|
|
|
|
|
|
|
для: Ruler
(25.11.2007 в 15:36)
| | Добавьте в начало скрипта, следующую строку
<?
$text = $_GET['text'] ? $_GET['text'] : '';
?>
|
| |
|
|
|
|
|
|
|
для: Drago
(25.11.2007 в 15:38)
| | Я так понимаю что этот скрипт нужно засунуть в index.php
Но почему то не че не работает | |
|
|
|
|
|
|
|
для: Ruler
(25.11.2007 в 15:46)
| | Нет, не в index.php, а в pic.php
<?php
Header("Content-type: image/gif");
$text = $_GET['text'] ? $_GET['text'] : '';
$rgb=0x1e81de;
$idest = imagecreatetruecolor(39, 20);
$textcolor = imagecolorallocate($idest, 255,255,255);
imagefill($idest, 0, 0, $rgb);
imagestring($idest, 3, 9, 4, $text, $textcolor);
imagegif($idest);
imagedestroy($idest);
?>
|
| |
|
|
|
|
|
|
|
для: Drago
(25.11.2007 в 15:48)
| | Так я тоже уже попробывал, но не катит | |
|
|
|
|
|
|
|
для: Ruler
(25.11.2007 в 15:49)
| | Те же ошибки? | |
|
|
|
|
|
|
|
для: Drago
(25.11.2007 в 15:52)
| | Да те же ошибки, но я что не совсем понимая зачем
$text = $_GET['text'] ? $_GET['text'] : ''
|
мы же выводим изображение не на pic.php
А на index.php с формай | |
|
|
|
|
|
|
|
для: Ruler
(25.11.2007 в 15:55)
| | Файлу pic.php вы передаете GET параметр text. При выключеной опции register_globals, PHP не создает локальные переменные глобальных массивов. Т.е. переменная $text у вас будет неопределена. Отсюда и замечание
Notice: Undefined variable: text in z:\home\phpgolovol\www\test\pic.php on line 7
|
А вот предупреждение
Warning: imagegif(): Unable to open temporary file in z:\home\phpgolovol\www\test\pic.php on line 8
|
говорит что-то о недоступности к временному файлу созданному функцией imagegif().
Попробуйте добавить ей второй параметр, чтобы сохранить файл на диск. И посмотрите, действительно ли он сохраняется.
<?
imagegif($idest, './image.gif');
?>
|
| |
|
|
|
|
|
|
|
для: Drago
(25.11.2007 в 16:02)
| | Да сохраняет но ошибку
Notice: Undefined index: text in z:\home\phpgolovol\www\test\pic.php on line 3
|
рода все равно выводит | |
|
|
|
|
|
|
|
для: Ruler
(25.11.2007 в 16:06)
| | Тогда, попробуйте добавить еще такую строку в начало pic.php для подавления замечаний.
<?
error_reporting(E_ALL & ~E_NOTICE);
?>
|
| |
|
|
|
|
|
|
|
для: Drago
(25.11.2007 в 16:13)
| | Добавил
<?
error_reporting(E_ALL & ~E_NOTICE);
?>
|
После того как мы добавили
$text = $_GET['text'] ? $_GET['text'] : '';
|
В базу данных стало записыватся не 3 цифры а 1 цифра | |
|
|
|
|
|
|
|
для: Ruler
(25.11.2007 в 16:17)
| | Лучше, придерживаться примерно такой структуры
<?php
error_reporting(E_ALL & ~E_NOTICE);
$text = $_GET['text'] ? $_GET['text'] : '';
$rgb=0x1e81de;
$idest = imagecreatetruecolor(39, 20);
$textcolor = imagecolorallocate($idest, 255,255,255);
imagefill($idest, 0, 0, $rgb);
imagestring($idest, 3, 9, 4, $text, $textcolor);
Header("Content-type: image/gif");
imagegif($idest);
imagedestroy($idest);
?>
|
Сама картинка у вас выводится? Текст на ней правильный? | |
|
|
|
|
|
|
|
для: Drago
(25.11.2007 в 16:21)
| | Нет изображение не выводится.
Может попробует вставить на сервер этот код и проверить на ошибки?
Будет ли он у вас работать? | |
|
|
|
|
|
|
|
для: Ruler
(25.11.2007 в 16:31)
| | Как я и говорил, у меня все работает.
http://files.d-world.org/pic.php?text=123
текст скрипта в моем предыдущем сообщении | |
|
|
|
|
|
|
|
для: Drago
(25.11.2007 в 16:39)
| | Если передавать таким образом pic.php?text=123 то и у меня все работает
Но картинка на index.php с формой не выодится если передовать цифры следующим образом
for ($x=0; $x<3; $x++) $x=$x.mt_rand(1,9);
echo "<img src=pic.php?text=".$x.">";
|
| |
|
|
|
|
|
|
|
для: Ruler
(25.11.2007 в 16:44)
| | Вобщем вот, как я уже говорил имеем следующие файлы index.php с кодом
<form action=add.php method=post>
Имя: <input type=text><br>
Текст: <input type=text><br>
Введите цифры на картинке: <input type=text size=3 name=intextimg>
<?php
$ip = $_SERVER['REMOTE_ADDR'];
for ($x=0; $x<3; $x++) $x=$x.mt_rand(1,9);
echo "<img src=pic.php?text=".$x.">";
@mysql_connect('localhost', 'login', 'pass') or die;
@mysql_select_db('dbname') or die("Не удалось соединится с базой данных");
mysql_query("INSERT INTO test VALUES('".$ip."', '".$x."')");
?>
<input type=submit>
</form>
|
И pic.php с вашими поправками рисующий каритинку
<?php
error_reporting(E_ALL & ~E_NOTICE);
$text = $_GET['text'] ? $_GET['text'] : '';
$rgb=0x1e81de;
$idest = imagecreatetruecolor(39, 20);
$textcolor = imagecolorallocate($idest, 255,255,255);
imagefill($idest, 0, 0, $rgb);
imagestring($idest, 3, 9, 4, $text, $textcolor);
Header("Content-type: image/gif");
imagegif($idest, './image.gif');
imagedestroy($idest);
?>
|
Попробуйте сами будет ли работать? | |
|
|
|
|
|
|
|
для: Ruler
(25.11.2007 в 16:44)
| | Опять таки, все работает. http://files.d-world.org/index.php
текст скрипта index.php ваше две строки.
Может у вас картинки в браузере отключены?
Добавлено: добавил и форму туда же. | |
|
|
|
|
|
|
|
для: Drago
(25.11.2007 в 16:52)
| | Картинки не отключены, проверял.
Тогда я не зднаю что делать?
Да нет же и у вас не все работает правельно
Он выводит не 3 цифры как задумано а 1 | |
|
|
|
|
|
|
|
для: Ruler
(25.11.2007 в 16:56)
| | Так у вас в цикле ошибка.
Исправьте на такой
<?
for ($i=0; $i<3; $i++) $x=$x.mt_rand(1,9);
?>
|
И я не совсем понимаю. У вас картинка не выводится вообще, либо выводится с неправильным текстом? | |
|
|
|
|
|
|
|
для: Drago
(25.11.2007 в 17:06)
| | Исправил, тогда он пишет следующее
Notice: Undefined variable: x in z:\home\phpgolovol\www\test\index.php on line 8
Блин может у меня еще где-то ошибки?
Не выложите полностью свой скрипт, проверю будет ли работать у меня так как у вас.
Работа вашего скрипта и есть желаемый результат | |
|
|
|
|
|
|
|
для: Ruler
(25.11.2007 в 17:12)
| | Ну здесь опять, замечание о том, что не определена переменная $x.
Решается, либо с помощью, собственно, ее определения
либо, подавления
<?
error_reporting(E_ALL & ~E_NOTICE);
?>
|
Вот весь скрипт
<?
error_reporting(E_ALL & ~E_NOTICE);
?>
<form action=add.php method=post>
Имя: <input type=text><br>
Текст: <input type=text><br>
Введите цифры на картинке: <input type=text size=3 name=intextimg>
<?php
$ip = $_SERVER['REMOTE_ADDR'];
$x = '';
for ($i=0; $i<3; $i++) $x=$x.mt_rand(1,9);
echo "<img src=pic.php?text=".$x.">";
@mysql_connect('localhost', 'login', 'pass') or die;
@mysql_select_db('dbname') or die("Не удалось соединится с базой данных");
mysql_query("INSERT INTO test VALUES('".$ip."', '".$x."')");
?>
<input type=submit>
</form>
|
| |
|
|
|
|
|
|
|
для: Drago
(25.11.2007 в 17:17)
| | Drago а не мог бы ты еще выкинуть скрипт картинки? | |
|
|
|
|
|
|
|
для: Ruler
(25.11.2007 в 17:24)
| | Там все по-прежнему
<?php
error_reporting(E_ALL & ~E_NOTICE);
$text = $_GET['text'] ? $_GET['text'] : '';
$rgb=0x1e81de;
$idest = imagecreatetruecolor(39, 20);
$textcolor = imagecolorallocate($idest, 255,255,255);
imagefill($idest, 0, 0, $rgb);
imagestring($idest, 3, 9, 4, $text, $textcolor);
Header("Content-type: image/gif");
imagegif($idest);
imagedestroy($idest);
?>
|
| |
|
|
|
|
|
|
|
для: Ruler
(25.11.2007 в 16:56)
| |
<?
$text = '';
for ($x=0; $x<3; $x++) $text .= mt_rand(1,9);
$rgb=0x1e81de;
$idest = imagecreatetruecolor(39, 20);
$textcolor = imagecolorallocate($idest, 255,255,255);
imagefill($idest, 0, 0, $rgb);
imagestring($idest, 3, 9, 4, $text, $textcolor);
Header("Content-type: image/gif");
imagegif($idest);
imagedestroy($idest);
?>
|
| |
|
|
|
|
|
|
|
для: sim5
(25.11.2007 в 17:17)
| | Блин все равно не рисует, а pic.php выдает ошибку
Warning: imagegif(): Unable to open temporary file in z:\home\phpgolovol\www\test\pic.php on line 10
|
| |
|
|
|
|
|
|
|
|
для: Drago
(25.11.2007 в 17:41)
| | Drago
Спасибо тебе огромное за помощь измени на ipeg и правду заработало.
Ну и нудный наверно я. | |
|
|
|
|
|
|
|
для: Ruler
(25.11.2007 в 17:48)
| | А не в курсе как сделать чтобы и гифки рисовались, вот странно png и ipeg рисуются а gif не хочет.
Да впринципе это уже не столь важно, а все таки интересно. | |
|
|
|
|
|
|
|
для: Ruler
(25.11.2007 в 18:01)
| | Проблема за проблемой, а как добится чтобы и число в базе данных обновлялось а не только на картинке.
При нажатии F5 (обновить) число на картинке меняется, а в базе данных остается прежним | |
|
|
|
|
|
|
|
для: Ruler
(25.11.2007 в 19:40)
| | >А не в курсе как сделать чтобы и гифки рисовались, вот странно png и ipeg рисуются а gif не хочет.
Для начала, хоть это и мало вероятно (но проверить не помешает), проследуйте указаюнию Хеопса, в выше указанной теме:
В разделе Environment отчёта phpinfo() посмотрите значение системной переменной TEMP и TMP - такая директория существует?
|
И там же, в смысле в phpinfo(), посмотрите версию вашей библиотеки GD. Поддержка формата GIF, была убрана из версии 1.6 и вновь добавлена в версии 2.
>Проблема за проблемой, а как добится чтобы и число в базе данных обновлялось а не только на картинке.
>При нажатии F5 (обновить) число на картинке меняется, а в базе данных остается прежним
Сейчас, у вас при обновлении страницы, в базу должна занаситься новая запись, в которой будут ip и число (исходя из приведенного вами кода).
Для того, чтобы обновить какую либо запись, следует использовать оператор UPDATE вместо INSERT. | |
|
|
|