Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: Программирование на PHP

  Все выпуски  

RusFAQ.ru: Программирование на PHP


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / PHP

Выпуск № 607
от 07.03.2007, 21:13

Администратор:Калашников О.А.
В рассылке:Подписчиков: 413, Экспертов: 39
В номере:Вопросов: 7, Ответов: 15


Вопрос № 76917: Здравствуй All! Помогите пожалуйста чайнику найти ошибку в коде (см. приложение). Err.log выдает следующее: PHP Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in email.php on line 2 ..
Вопрос № 77023: Здраствуйте. В приложении функция создания уменьш. копий изображений. Но почемуто она их делает нецветными. В чем проблема? Спасибо....
Вопрос № 77092: Дорогие эксперты! Помогите мне с регистрацией. Хочу создать раздел, который закрыт для незарег пользователей. Как сделать регистрацию и такой раздел?...
Вопрос № 77133: ЗДратсвуйте подскажите пожалуйста в чем может быть проблемма? Parse error: parse error, unexpected $end in z:\home\localhost\www\board.php on line 89 но у меня нету 89 строчки... С чем такое может быть связано?...
Вопрос № 77137: Уважаемые эксперты, в PHP-скрипте вызывается функция, которая с "третьего" сайта берет число и возвращает его в качестве результата. Проблема в том, что "третий" сайт не всегда доступен, а результат пользователю на экран нужно...
Вопрос № 77358: Здравствуйте. Вопрос по поводу $_SERVER['HTTP_REFERER']. Веду статистику сайта, и очень часто посетители заходят ко мне, не только на главную страничку, с пустым полем REFERER. Как еще можно узнать откуда пришел пользователь. ЗЫ: в MY...
Вопрос № 77382: здраствуйте. меня интересует один вопрос. однажды бродя по инету :) я увидел такой сайт: http://try2hack.nl/levels/ мне понравилась эта идея, и я хотел бы реализовать её например на моём сайте. но я что-то не понял, по какому принципу можно сдела...

Вопрос № 76.917
Здравствуй All! Помогите пожалуйста чайнику найти ошибку в коде (см. приложение). Err.log выдает следующее:
PHP Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in email.php on line 2

Приложение:

Отправлен: 27.02.2007, 07:32
Вопрос задал: DennisKraft (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: PVS
Здравствуйте, DennisKraft!
Вместо всех разрывов стороки поставте и все заработает как надо

Приложение:

Ответ отправил: PVS (статус: Специалист)
Ответ отправлен: 27.02.2007, 09:58

Отвечает: Архипов Александр Юрьевич
Здравствуйте, DennisKraft!

Я обычно делаю проще:
$subj = "Web-freelance - Ваше сообщение";
$text = <<<HERE
Уважаемый $_POST['name']
Спасибо за ваш интерес к нашим услугам, Ваш запрос будет обработан,как можно быстрее.
Если у Вас возникли вопросы, будем рады на них ответить.
-----
С уважением,
Сервис Web-freelance.od.ua
http://web-freelance.od.ua
HERE;

Это и проще и понятнее. Плюс - все переменные автоматически подставляются в текст.
Ответ отправил: Архипов Александр Юрьевич (статус: 1-ый класс)
Ответ отправлен: 27.02.2007, 13:33


Вопрос № 77.023
Здраствуйте. В приложении функция создания уменьш. копий изображений. Но почемуто она их делает нецветными. В чем проблема?
Спасибо.

Приложение:

Отправлен: 27.02.2007, 19:19
Вопрос задал: Маторник Михаил (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Zolton007
Здравствуйте, Маторник Михаил!
Вместо поиска ошибок, дам Вам пучковый код для ресайза.
Юзать его можно, например, вот так:

<img src=resize.php?f=".$filename."&type=2 alt='Результат работы скрипта'>

Вот :)

Приложение:

---------
Если твоя программа выполняет мистические действия, - значит ты сделал что-то невероятно тупое!

Ответ отправил: Zolton007 (статус: 3-ий класс)
Ответ отправлен: 27.02.2007, 20:14

Отвечает: Загиров Рустам
Здравствуйте, Маторник Михаил!
Вместо функции imagecreate используйте imagecreatetruecolor, т.к. imagecreate создаёт изображение без определённой палитры, а imagecreatetruecolor создаёт в режиме True Color
$thumb=imagecreatetruecolor($x,$y);
---------
Этот мир обречён на нас
©Сергей Маврин
Ответ отправил: Загиров Рустам (статус: Специалист)
Ответ отправлен: 27.02.2007, 21:30


Вопрос № 77.092
Дорогие эксперты! Помогите мне с регистрацией. Хочу создать раздел, который закрыт для незарег пользователей. Как сделать регистрацию и такой раздел?
Отправлен: 28.02.2007, 06:05
Вопрос задал: Sergo (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Miklucho
Здравствуйте, Sergo!
Устанавливать зарегистрированным пользователям куки и при обращении пользователя к закрытой странице проверять у него наличие куков, если их нет то доступ к странице запрещаем.
Про куки и сессии почитайте здесь:
cookie
session
Ответ отправил: Miklucho (статус: Студент)
Ответ отправлен: 28.02.2007, 10:11

Отвечает: Nexus
Здравствуйте, Sergo!

В дополнение к ответу Miklucho - лучше все-таки не куки, а сессию, она при нормально настроенном сервере, будет работать и с отключенными кукисами. Плюс в свои кукисы человек может записать все что угодно, а переменные сессии все-таки хранятся на сервере.

Если тебе просто нужно закрыть админку, то, вообщем-то, можно поставить пароль на папку через htaccess, но тогда довольно затруднительно добавление нового пользователя.

Если нужна именно регистрация - создаешь таблицу с пользователями (id, login, pass (лучше его хэш - на случай, если кто-то получит дамп базы - хотя и его можно сломать), etc), скрипт авторизации сверяет логин/хэш пароля и, если они правильные, ставит какой-то флаг в сессии. А потом к опр. разделу допускать только тех, у кого установлен этот флаг. В смысле безопасности можно сверять ip, с которого залогинились и который у пользователя в даный момент, и т.п. Иногда имеет смысл сверять HTTP_REFERER (страница с которой перешли), чтобы с сохраненной на локальную машину страницы с, возможно, измененными полями, не пытались что-то передавать твоему скрипту, но на самом деле подменить http-заголовки довольно просто.

Удачи!
Ответ отправил: Nexus (статус: 5-ый класс)
Ответ отправлен: 28.02.2007, 14:15

Отвечает: Zolton007
Здравствуйте, Sergo!
Есть много способов. Вы, к сожалению, не описали свою ситуацию. Итак:
1) Применить встроенную аутентификацию HTTP 1.0 либо HTTP 1.1 (дайджест-аутентификацию), но они не очень надежные + поддерживаются не всеми браузерами. И та и другая защищают именованные области на хосте.
2) Применить встроенную аутентификацию PHP и Apache, т.е. фактически корректно настроить файлы .htaccess и .htpass как их настроить и динамически изменять подробно описано во многих статьях рунета. Поисковики в помощь :)
3) Напрячься и написать собвственную систему аутентификации :) Т.е., как уже говорили, использовать кукисы и сесси для отслеживания пользователя в системе. Выбрать подходящее место и способ хранения паролей и параметров пользователя (если это надо). Вот. Этот (т.е. 3-тий способ) можно юзать вместе со 2 и 1 :)) Т.е. например, положить в папку со скриптами для логининья и, например, файлом с паролями файл .htaccess, в котором написать строчку "deny from all" И в эту папку извне уже будет намного сложнее проникнуть, т.к. для этого уже придется ломать сервак =)

Бог в помощь :) а ваще надо было тебе подробнее описать свою ситуацию. Я бы тогда подробнее расписал че делать :)) а так... это была бы избыточная информация, если бы я все пункты расписал :)))

BYE
---------
Если твоя программа выполняет мистические действия, - значит ты сделал что-то невероятно тупое!
Ответ отправил: Zolton007 (статус: 3-ий класс)
Ответ отправлен: 28.02.2007, 22:10


Вопрос № 77.133
ЗДратсвуйте подскажите пожалуйста в чем может быть проблемма?

Parse error: parse error, unexpected $end in z:\home\localhost\www\board.php on line 89

но у меня нету 89 строчки...
С чем такое может быть связано?
Отправлен: 28.02.2007, 12:15
Вопрос задал: DarkHacker (статус: Посетитель)
Всего ответов: 4
Мини-форум вопроса >>> (сообщений: 3)

Отвечает: Straight
Здравствуйте, DarkHacker!
Вы не закрыли какую-то синтаксическую конструкцию (например не поставили закрывающую фигурную скобку). Парсер дошел до конца файла, а искомого не обнаружил.
Ответ отправил: Straight (статус: Студент)
Ответ отправлен: 28.02.2007, 12:26

Отвечает: Райкин Сергей Александрович
Здравствуйте, DarkHacker!
У меня такое бывает когда не закрыта скобка }
Например: см. приложение выведет Parse error: parse error, unexpected $end in *.php on line 5

Приложение:

---------
программист должен работать в свое удовольствие

Ответ отправил: Райкин Сергей Александрович (статус: 3-ий класс)
Ответ отправлен: 28.02.2007, 12:34

Отвечает: PVS
Здравствуйте, DarkHacker!
Идеи две:
1)оно посчитало все вместе с include - но такого никогда не было и быть не должно.
2)самый вероятный вариант - windows-ный разрыв строки CR+LF оно считает за два подряд разрыва, соответственно количество строк оно видит вдвое больше. Ищите ошибку в 45й строке в этом случае
Ответ отправил: PVS (статус: Специалист)
Ответ отправлен: 28.02.2007, 12:39

Отвечает: Zolton007
Здравствуйте, DarkHacker!
Например, Вы забыли поставить точку с запятьй перед опрерацией с переменной $end..... или после :) Смотрите последнюю строчку =) Лучше б Вы привели свой код, чтобы мы посмотрели =) Мы ж не телепаты =)
---------
Если твоя программа выполняет мистические действия, - значит ты сделал что-то невероятно тупое!
Ответ отправил: Zolton007 (статус: 3-ий класс)
Ответ отправлен: 28.02.2007, 22:32


Вопрос № 77.137
Уважаемые эксперты,
в PHP-скрипте вызывается функция, которая с "третьего" сайта берет число и возвращает его в качестве результата. Проблема в том, что "третий" сайт не всегда доступен, а результат пользователю на экран нужно вывести полюбому.
Как сделать чтобы при невозможности получить число с "третьего" сайта функция возвращала ноль, а не продолжала ждать ответа до победного таймаута?

Спасибо.
Отправлен: 28.02.2007, 12:53
Вопрос задал: Зяма (статус: 1-ый класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 3)

Отвечает: Ерёмин Андрей
Здравствуйте, Зяма!
Эээ... А зачем тогда нужен таймаут, позвольте спросить? Несостыковка какая-то получается - установить таймаут, а закончить запрос раньше времени. Так нельзя. Если хотите, чтобы работало быстрее, уменьшите таймаут - например поставьте 5 секунд. А лучше не забирать данные с сайта при каждом запуске скрипта, а поставить на Cron небольшой скрипт, который эти данные забирает и записывает куда-нибудь. Например в текстовый файл. А при запуске скрипта данные просто читаются из файла. Плюсы: 1) При запуске скрипт не будет ждать ответа с другого сервера, а моментально загрузит данные из файла. 2) При запуске скрипта через Cron таймаут можно оставить средним, а не делать его слишком маленьким (30 секунд например хватит). 3) Скрипт, стоящий на Cron можно сделать таким, что в файл число 0 не записывается - если получен 0, то значение остаётся старое. В этом случае пользователь всегда увидит число (пусть и немного устаревшее), но зато точно не 0 из-за временной недоступности сайта. Желаю у дачи!
---------
Нет правила без исключений. Правило без исключений - исключение из правил.
Ответ отправил: Ерёмин Андрей (статус: Профессор)
Россия, Тула
WWW: Программирование на Delphi. Всё для программиста. Файловый архив, статьи, помощь, советы, обмен опытом.
ICQ: 286867644
----
Ответ отправлен: 28.02.2007, 15:51
Оценка за ответ: 4
Комментарий оценки:
Я не устанавливал таймаутов. Таймаут прописан на сервере и происходит приблизительно через 10 секунд. При этом приостанавливается работа всего скрипта, а не только "подвисшей" функции. Вариант с cron-ом в моем случае совсем не вариант, но спасибо.


Вопрос № 77.358
Здравствуйте.
Вопрос по поводу $_SERVER['HTTP_REFERER'].
Веду статистику сайта, и очень часто посетители заходят ко мне, не только на главную страничку, с пустым полем REFERER.
Как еще можно узнать откуда пришел пользователь.
ЗЫ: в MYIE при перетягивании ссылкы она открываеться в фоновом режыме, при этом поле REFERER остается пустым.
Но не все же юзеры так делают? И как это миновать?
Отправлен: 01.03.2007, 18:00
Вопрос задал: Райкин Сергей Александрович (статус: 3-ий класс)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Punk_UnDead
Здравствуйте, Райкин Сергей Александрович!
а никак
тем более, что срубив это поле можно
во первых - копеечно сэкономить траффик
во вторых - меньше оставлять следов, поэтому чего бы вы там не хотели, а пользователи оставят информации не больше чем захотят
срубят скрипты, отключат картинки, сменят UA , если захотят конечно и вы с этим ничего не поделаете, разве что ограничите сервис для таких умельцев, но это Вам надо?
---------
всё испытано на себе
Ответ отправил: Punk_UnDead (статус: 4-ый класс)
Ответ отправлен: 01.03.2007, 18:30

Отвечает: Илья Андреевич
Здравствуйте, Райкин Сергей Александрович!
Никак. Реферер - единственный показатель источника пользователя.
Некотрые люди специально отключают их в браузерах.
Ответ отправил: Илья Андреевич (статус: Студент)
Ответ отправлен: 01.03.2007, 20:58


Вопрос № 77.382
здраствуйте. меня интересует один вопрос. однажды бродя по инету :) я увидел такой сайт: http://try2hack.nl/levels/
мне понравилась эта идея, и я хотел бы реализовать её например на моём сайте. но я что-то не понял, по какому принципу можно сделать такую фишку проверки пассворда :) ну например чтобы на пароль она реагировала так, а на остальное по-другому, ну вобщем я думаю вы меня поняли..
на этом сайте данные вроде отправляются методом post, это наверно можно сделать и на php, вобщем, расскажите, если можно как можно подробнее, как с нуля написать такую форму проверки "ну к примеру пароля".. заранее спасибо)
Отправлен: 01.03.2007, 20:24
Вопрос задал: Sinn2 (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Zolton007
Здравствуйте, Sinn2!
А ты внимательно смотрел код страницы? А формы? Там все на js Реализовано. Вот, например:
<input type="reset" value="click here to continue" onclick="Try(pass.txtpasswd.value)">
В этой форме ваще нету action и сабмитов. И никаким методом нифига не отправляется. Просто выполняется ява-скрипт.
Вот. Если ты посмотришь код этой ф-ции (Try), то увидишь, что пароль для перехода на второй уровень - h4x0r
И ваще.... я вот дальше залез и понял, что это специально сделано. Чтобы крутые перцы специально типа "хакали" страничку за страничкой и чувствовали себя кулхацкерами =) вот.

Если хочешь так сделать - изучи код странички, выдерни себе эти js функции. Если хочешь, чтобы что-нить было по-другому - напиши сам то, что хочешь. Например, сделай, чтобы эта форма всетаки отправляла данные на проверку скрипту и т.д. и т.п. =)

BYE
---------
Если твоя программа выполняет мистические действия, - значит ты сделал что-то невероятно тупое!
Ответ отправил: Zolton007 (статус: 3-ий класс)
Ответ отправлен: 01.03.2007, 22:21


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
ООО "Мастер-Эксперт Про", Москва, 2007
Авторские права | Реклама на портале
Версия системы: 4.45 beta от 20.02.2007
Яндекс Rambler's Top100

В избранное