|
автор: XoLoD (11.09.2004 в 22:47) |
|
| Я создал скрипт случайного вывода! Мне нужно чтобы при обращении к нему через смс с бионлайна он выдавал текст в определённом формате я точно не знаю в каком знаю тока что там чтото вроде этого Content-Type: text/plain; charset="windows-1251"
Content-Transfer-Encoding: base64 Помогите плиз | |
|
|
|
|
|
|
|
для: XoLoD
(11.09.2004 в 22:47)
| | Хм... а Билайн чей, у нас в Нижнем, эта строка выглядит
Content-Type: text/plain;
charset="koi8-r"
Content-Transfer-Encoding: base64
|
т.е. сервера судя по всему разные. Эту строку я взял из sms которую мне абонент Билайн переслал на почту. Каким способом вы получаете sms в PHP-скрипте? | |
|
|
|
|
автор: xolod (12.09.2004 в 14:57) |
|
|
для: cheops
(11.09.2004 в 22:58)
| | В москве! если через смс послать текст на 684 например так url http://domain/1.txt то назад придёт то что в текстовом файле! а если обратится к скрипту то он должен выдать определённый текст в текстовом формате! | |
|
|
|
|
|
|
|
для: xolod
(12.09.2004 в 14:57)
| | Тогда не понятна проблема... Есть файл, допустим index.php в котором расположен гененрирующий случайное число скрипт, как я понял. Пусть файл расположен на сервере http://www.site.ru/, тогда отослав sms на 684 "http://www.site.ru/index.php" в ответ будет послан файл index.php, содержащий случайное число... | |
|
|
|
|
|
|
|
для: cheops
(12.09.2004 в 16:44)
| | Да должен послать случайное число а в ответ приходит : неправильный content-type ответа | |
|
|
|
|
|
|
|
для: XoLoD
(12.09.2004 в 18:11)
| | Хм... а какие пробовали заголовки посылать? Просто text/plain не катит? У вас же в общем одни цифры - кодировка не принципиальна.
<?php
header("Content-Type: text/plain");
?>
|
И вообще, может быть у вас есть адресок с "рабочим" файлом? Ничего в теле самого файла полезного нет? Кстати, по адресу может находится любой файл или только определённого формата, скажем wml? | |
|
|
|
|
|
|
|
для: cheops
(12.09.2004 в 18:27)
| | Вот как выглядит мой файл!
<?
$quote = array(
1 => "text1",
2 => "text2",
3 => "text3",
4 => "text4",
5 => "text5",
6 => "text6",
7 => "text7",
);
srand ((double) microtime() * 1000000);
$randnum = rand(1,7);
echo"$quote[$randnum]";
?>
Теперь пример : емс картинки выглядят так <ems:picture width="72" height="14" hex="F87C07FFFFFDD9077FF03801FFFFC3B083B FE030007FFF81
F027DFD010001FFF00F09FDFA8280007FE0 0E61EEF50300001FC
00732F6FA028000078003047F7501C00000 0101FD7D7A03A01000
00A0FE3F7D07D0080000487F3EB603E0050 000343E9FBD06D006
80501A0F4FDA05680750EA0D0001E505700 3AA750EA4903"> если
этот текст просто вставить в текстовый файл и с мобилы в билайне послать текст url http://domain/этотфайл.txt то в ответ ридёт картинка размером 72х14 емс формата! файл можно любой лишбы формат получаемого текста был нужным! | |
|
|
|
|
|
|
|
для: XoLoD
(12.09.2004 в 20:10)
| | А фото как у тебя отсылается??? | |
|
|
|
|
|
|
|
для: Адоп Акробат
(12.09.2004 в 20:42)
| | Мне не нужно чтоб фото отсылалось! Мне нужен текст напрмер обратился к скрипту получил один анекдот ещё раз обратился получил другой! | |
|
|
|
|
|
|
|
для: XoLoD
(12.09.2004 в 20:44)
| | ну а как у вас этот анектод отсынается??? | |
|
|
|
|
|
|
|
для: XoLoD
(12.09.2004 в 20:10)
| | Хм... дурная мысль в голову закралась, а если нарисовать картинку средствами GDLib - в которой будет это самое случайное число и сунуть его в вывод... надо бы Дизайнера сюда направить. | |
|
|
|
|
|
|
|
для: cheops
(12.09.2004 в 20:51)
| | Какую картинку? Какое число? | |
|
|
|
|
|
|
|
для: XoLoD
(12.09.2004 в 21:01)
| | емс-картинку, в котором будут ваши строки. | |
|
|
|
|
|
|
|
для: cheops
(12.09.2004 в 22:02)
| | <?
header("Content-Type: text/plain");
header("Content-Transfer-Encoding: base64");
header("charset=koi8r");
$quote = array(
1 => "text1",
2 => "text2",
3 => "text3",
4 => "text4",
5 => "text5",
6 => "text6",
7 => "text7",
);
srand ((double) microtime() * 1000000);
$randnum = rand(1,7);
echo"$quote[$randnum]";
?>
Всё оказалось до смешного проще! | |
|
|
|
|
|
|
|
для: XoLoD
(12.09.2004 в 23:04)
| | K хакеру подходит ламер, протягивает исходник своей неработающей программы и спрашивает: - Где у меня ошибка? - В ДHK!!! | |
|
|
|
|
|
|
|
для: XoLoD
(12.09.2004 в 23:07)
| | WinERROR: Keyboard not detected. Press Enter to continue WinERROR: Ошибка записи программы ошибок записи WinERROR: WinERROR | |
|
|
|
|
|
|
|
для: XoLoD
(12.09.2004 в 23:08)
| | Что такое DOS?- Это когда девушка в чате с одним парнем разговаривает, а другой своей очереди ждет.- Что такое Linux?- Это когда девушка в чате одновременно с двумя парнями разговаривает.- Что такое Windows? - Это когда девушка в чате с двумя парнями разговаривает, и первому посылает то, что хотела сказать второму | |
|
|
|
|
|
|
|
для: XoLoD
(12.09.2004 в 23:09)
| | У меня новая проблема!!! Есть скрипт !
<?
header("Content-Type: text/plain");
header("Content-Transfer-Encoding: base64");
header("charset=koi8r");
$quote = array(
1 => "text1",
2 => " text2",
);
srand ((double) microtime() * 1000000);
$randnum = rand(1,2);
echo"$quote[$randnum]";
?>
|
он выдаст при обращении к нему текстовый файл с текстом text1 или text2, а как мне сделать так если я напишу в скрипте :
<?
header("Content-Type: text/plain");
header("Content-Transfer-Encoding: base64");
header("charset=koi8r");
$quote = array(
1 => "1<ems:picture width="72" height="14" hex="F87C07FFFFFDD9077FF03801FFFFC3B083B FE030007F
FF8F027DFD010001FFF00F09FDFA8280007 FE00E61EEF503
00001FC0732F6FA028000078003047F7501 C000000101FD7
D7A03A010000A0FE3F7D07D0080000487F3 EB603E0050000
343E9FBD06D0068001A0F4FDA05680750EA 0D0001E505700
3AA750EA4903">
2 => "2<ems:picture width="72" height="14" hex="F87C07FFFFFDD9077FF03801FFFFC3B083B FE030007FF
F8F027DFD010001FFF00F09FDFA8280007F E00E61EEF503000
01FC0732F6FA028000078003047F7501C00 0000101FD7D7A03
A010000A0FE3F7D07D0080000487F3EB603 E0050000343E9FB
D06D0068001A0F4FDA05680750EA0D0001E 5057003AA750EA4
903">
);
srand ((double) microtime() * 1000000);
$randnum = rand(1,2);
echo"$quote[$randnum]";
?>
|
и при обрашении к нему ондолжен выдать:
1<ems:picture width="72" height="14" hex="F87C07FFFFFDD9077FF03801FFFFC3B083B FE030007FFF
8027DFD010001FFF00F09FDFA8280007FE0 0E61EEF50300001
FC032F6FA028000078003047F7501C00000 0101FD7D7A03A010
000A0E3F7D07D0080000487F3EB603E0050 000343E9FBD06D0
068001AF4FDA05680750EA0D0001E505700 3AA750EA4903">
или соответственно:
2<ems:picture width="72" height="14" hex="F87C07FFFFFDD9077FF03801FFFFC3B083B FE030007FF
F8027DFD010001FFF00F09FDFA8280007FE 00E61EEF5030000
1FC032F6FA028000078003047F7501C0000 00101FD7D7A03A0
10000A0E3F7D07D0080000487F3EB603E00 50000343E9FBD06
D0068001AF4FDA05680750EA0D0001E5057 003AA750EA4903"> | |
|
|
|
|
|
|
|
для: XoLoD
(13.09.2004 в 01:05)
| | Ну... так и пишите только либо внешние кавычки сделайте одинарные
<?php
$quote = array(
1 => '<ems:picture width="72" height="14" hex="F87C07FFFFFDD9077FF03801FFFFC3B083B FE030007F
FF8F027DFD010001FFF00F09FDFA8280007 FE00E61EEF503
00001FC0732F6FA028000078003047F7501 C000000101FD7
D7A03A010000A0FE3F7D07D0080000487F3 EB603E0050000
343E9FBD06D0068001A0F4FDA05680750EA 0D0001E505700
3AA750EA4903">');
?>
|
Либо внутренние экранируйте
<?php
$quote = array(
1 => "<ems:picture width=\"72\" height=\"14\" hex=\"F87C07FFFFFDD9077FF03801FFFFC3B083B FE030007F
FF8F027DFD010001FFF00F09FDFA8280007 FE00E61EEF503
00001FC0732F6FA028000078003047F7501 C000000101FD7
D7A03A010000A0FE3F7D07D0080000487F3 EB603E0050000
343E9FBD06D0068001A0F4FDA05680750EA 0D0001E505700
3AA750EA4903\">");
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(13.09.2004 в 09:22)
| | А как это: при выводе на экран в браузер проверять результат нужно глядя в "view source", потому что xmlный тег будет принят за HTML и не выведется на экран | |
|
|
|
|
|
|
|
для: XoLoD
(13.09.2004 в 13:08)
| | И вот ещё такой вопросик! Как сделать чтобы не случайно было а попорядку какбы циклически 1->2->3->4->1 | |
|
|
|
|
|
|
|
для: XoLoD
(13.09.2004 в 13:35)
| | Хм... HTTP не сохраняет состояния поэтому определить чей телефон (браузер) обращается к скрипту нельзя. Поэтому в результате 1 просмотрит один, 2 другой, 3 ещё кто-то и ожидаемого эффекта не будет. | |
|
|
|
|
|
|
|
для: cheops
(13.09.2004 в 15:49)
| | Да я понял суть, но ведь возможно так при любом обращении просмотрится 1 при следующем 2 и так далее просто при случайном выводе один и тотже текст может выпасть 2 или 3 раза подряд и допустим человек же платит за исходящее смс и ему будет неприятно если он 3 раза получит одно и тоже а чтобы непопадалось очень быстро я бы сделал количество большое! | |
|
|
|
|
|
|
|
для: XoLoD
(13.09.2004 в 20:51)
| | Ну тогда, нужно сразу набить базу на несколько сотен анекдотов - вероятность совпадения будет маленькая, а произведение вероятности попадание одного и того же анекдота из нескольких сотен одному из нескольких тысяч абонентов сведёт это вообще к нулю.
PS Маньяк, который вместо того, чтобы купить газету с анекдотами за 30 центов добъётся повторения анекдота от вашего скрипта - потерпит :))) | |
|
|
|
|
|
|
|
для: cheops
(13.09.2004 в 23:04)
| | Значит вы просто незнакомы с сервисом MASTER на BeeOnline!!! Это свой мир и за газетой там никто не попрётся а анекдотов я уже забил 3000 штук! Так не подскажите на примере как это можно воплотить! просто нужно чтобы при любом обращении к скрипту при следующем обращении он выдавал следующий по порядку!
мля сам запутался!
А вот то что получилось со случайным числом! Если у вас есть телефон билай пошлите смс на 684 с текстом: url http://xolod.hoha.ru/ems.php
И посмотрите что пришло! если послать ещё раз придёт другое! | |
|
|
|
|
|
|
|
для: XoLoD
(14.09.2004 в 05:16)
| | В Нижнем меня Билайн послал: "Сообщение не обработано" :))) | |
|
|
|
|
|
|
|
для: cheops
(14.09.2004 в 10:05)
| | Меня тоже послал но вчера всё работало!!! Вот переделал вопервых надо настроить телефон для работы в 684 это бесплатно позвоните по номерам 06849908 телефон должен поддерживать емс!!! для того чтобы приходили емс картинки надо позвонить для samsung и nokia 068499202 для siemens с поддержкой емс 068499204 и с емс 068499203 для остальных 068499202 и для motorola 068499205! а после этого послать на 684 текст [b] url http://xolod.hoha.ru/anima.php
Так не поможете сделать скриптик! Я думаю что базу с анекдотами можно вынести в отдельный файл!!! | |
|
|
|
|
|
|
|
для: XoLoD
(14.09.2004 в 11:23)
| | Получил кучу картинок... :))) С ними чего делать? Просто на них смотреть :)))
Организовать последовательный вывод сохраняя имя предыдущей позиции в файл, как Дизайнер писал: для этого можно завести файл index.txt в котором следует хранить текущую позицию (в начале путь будет 1)
<?php
// Пусть имеется массив с 3000 анекдотов
$quote = array(...);
// имя файла
$filename = "index.txt";
// Открываем файл, для того, чтобы узнать текущую позицию
$file = fopen($filename, "r");
// читаем его содержимое в буффер
$index = fread($file, filesize($filename));
// закрываем файл
fclose($file);
$pos = (int)$index + 1;
// Проверяем не происходит ли выход за границы массива
if($pos>count($quote)) $pos = 1;
// Выводим анекдот с позицией $pos
echo $quote[$pos];
// Перезаписываем файл index.txt
$file = fopen($filename, "w");
// Помещаем в файл index.txt новую позицию, увеличенную на 1
fwrite($file,$pos);
// закрываем файл
fclose($file);
?>
|
PS Но, ИМХО решение со случайным числом элегантнее и эффективнее. Современные генераторы случайных чисел достаточно равномерные, т.е. выборка будет происходить по всем элементам массива с практически одинаковой вероятностью. | |
|
|
|
|
|
|
|
для: cheops
(14.09.2004 в 12:33)
| | Спасибо огромное!!! То что и хотел!
Мне интересно а возможноли осуществить такое с мобилы посылают текст на скрипт он приняв текст записывает его в файл каталог и выдаёт обратно чтото типа: Ваш текст принят Спасибо! и статистику показывает скоко всего текста в каталоге! | |
|
|
|
|
|
|
|
для: XoLoD
(14.09.2004 в 13:48)
| | Хм... через 684 навряд ли, так как он, судя по всему просто загружает страницу и отправляет ответ в виде sms... Может через WAP как можно, но с WAP ещё работать не приходилось... | |
|
|
|
|
|
|
|
для: cheops
(14.09.2004 в 14:28)
| | Както можно я видел чтото подобное! там любой пользователь посылает смс формата master imya kartinka и отсылает на 684 просто на мастер имя ставится ссылка на скрипт и эта картинка добавляется в общюю базу потом любой может обратиться к этой базе и иму придёт картинка наподобии как у меня просто я их сам добавляю! | |
|
|
|
|
|
|
|
для: XoLoD
(14.09.2004 в 17:20)
| | Скорее всего пчёлы сами такой сервис предоставляют, они то с текстом из sms что хочешь сделают. Конечно можно через параметр передавать
index.php?id=всё%20прогрессивное%20человечество
|
Это условно, а так все русские буквы придётся тоже закодировать как и символ пробела... но это мягко говоря не удобно... | |
|
|
|
|
|
|
|
для: cheops
(14.09.2004 в 17:47)
| | Да я знаю точно как передаётся есть услуга мастерчат так там вот так:
index.php?param1=%voc%&id=%pid%&nick=%nick%&master=imyamastera
|
Вот voc и есть перекодировка транслита в русские буквы!
Погляди в файлик там инструкция по созданию mastera | |
|
|
|
|
|
|
|
для: XoLoD
(14.09.2004 в 18:03)
| | Хм... давайте новую тему заведём, а то эта слишком длинная. Я её назову "Сервис MASTER от Beeline"
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=315&page=1 | |
|
|
|
|
|
|
|
для: XoLoD
(13.09.2004 в 13:35)
| | Тогда нужно где то вести учет отосланным sms. Например, вы сохраняете в файл на сервере индекс отосланного сообщения. И перед каждой отправкой читаете переменную из этого файла, увеличиваете на единицу и отсылаете. Ну и естественно, проверяете чтобы значение переменной не вышло за пределы массива.
Но, cheops, наверное, прав. Это не решит задачу. Мне кажется более правильный путь – увеличивать число элементов в массиве. | |
|
|
|
|
|
|
|
для: XoLoD
(12.09.2004 в 20:10)
| | Похоже дело в <ems:picture, сервер сам определяет Content и если он отличен от wml - просто отбрасывает...
Попробуйте на всякий случай заголовок
<?php
header("Content-type: text/vnd.wap.wml");
// А echo"$quote[$randnum]"; разместите между тэгами
<wml>
<card id="home">
echo"$quote[$randnum]";
</card>
</wml>
?>
|
Хотя сомнения меня берут, что это поможет... | |
|
|
|