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

  Все выпуски  

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


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

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

Выпуск № 294
от 26.03.2006, 21:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 243, Экспертов: 34
В номере:Вопросов: 9, Ответов: 18


Вопрос № 38040: Здравствуйте. Меня интересует вот что: Есть запускной файл "index.php" и есть файл "code.php", который содержит в себе 3 варианта кода (вариант запускается в зависимости от условия) Вопрос: Как можно сделать, чтобы фай...
Вопрос № 38055: Здравствуйте, уважаемые! Хотелось бы узнать Ваше мнение - что лучше использовать - стандартные функции PHP для работы с сокетами или функции CURL ?...
Вопрос № 38060: Доброе время суток! Такой вопрос, может не много не в тему, но все-таки.. Есть кодированные строки, не знаю какой алгоритм, может вы подскажете? WcOgC0DeTD0zsWcqWUK.mxwFvI WcekoqCgpgL6QWckacnj20G9FQ Wc7ea6k3hgGlsWcIqdMVEfaHxw ...
Вопрос № 38062: Всем привет! Столкнулся со следующей проблемой: после смены расширения файлов на сайте с .htm на .php перестали работать якорные ссылки, т. е. такие ссылки, которые ссылаются на содержание внутри самой страницы. Я не могу передать ссылку след...
Вопрос № 38063: Привет всем! Я видел на множестве сайтов функцию реализации публичных комментариев для статей, расположенных на сайте, где, буквально, каждый посетитель может оставить комментарий к статье, которую он только что прочитал. Мне показалась эта в...
Вопрос № 38075: Уважаемые эксперты, подскажите, пожалуйста, в чем может быть причина. На сервере скриптом создается папка с правами 777, а когда проверяешь ее права ftp-клиентом, оказывается, что папка имеет права 755....
Вопрос № 38077: Добрый день, эксперты! Есть такая проблема. Необходимо сделать проверку на то, чтобы при регистрации пользователя, в его нике были только латинские буквы, либо только буквы кириллицы. Цифры и прочие символы присутствовать могут. Существует ли гот...
Вопрос № 38080: Уважаемые эксперты! В таблице храниться статья и дата(строка вида: "02.11.2006"). Подскажите, каким образом с помощью запроса MySQL показать все статьи, принадлежащие каждому из месяцев 2006 года. Заранее спасибо за помощь!...
Вопрос № 38134: Уважаемые эксперты! Вот такая проблемка: наступил день когда я решил залить свой сайт в интернет, но дело в том что хостинг не имеет PhpMyAdmin, а база довольно таки велика: 23 таблицы. Если дамп засунуть в mysql_query() - неработает. Мож...

Вопрос № 38.040
Здравствуйте.
Меня интересует вот что:
Есть запускной файл "index.php" и есть файл "code.php", который содержит в себе 3 варианта кода (вариант запускается в зависимости от условия)
Вопрос: Как можно сделать, чтобы файл "index.php" открывал "index.php?yslovie=znachenie" и из файла "code.php" выполнялся лишь тот кусок кода (один из трех), который удовлетворяет условию!

ps: что нибудь вроде функций или класса
Отправлен: 20.03.2006, 20:31
Вопрос задал: Redcap (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Королёв Руслан
Здравствуйте, Redcap!
На сколько я понял, то нужно сделать так:
В файле code.php делаешь три функции
function one()
{
Код функции 1;
}
function two()
{
Код функции 2;
}
function three()
{
Код функции 1;
}

Далее подключаешь этот фаил в index.php
require_once "code.php";
теперь делаешь проверку что было введено в адресной строке
if ($_REQUEST['yslovie']==znachenie1)
{
one();
}
Ответ отправил: Королёв Руслан (статус: 2-ой класс)
Ответ отправлен: 21.03.2006, 00:20

Отвечает: КиберТварь
Здравствуйте, Redcap!
в скрипте "code.php" пишите условие
if ($_GET['yslovie']=='znachenije1'){
//Vypolni Eto
}elseif ($_GET['yslovie']=='znachenije2'){
//Vypolni Drugoje
}else{
//Vypolni Inoje
}

а в индекс файле включите code.php
require "code.php";
Ответ отправил: КиберТварь (статус: Специалист)
Ответ отправлен: 21.03.2006, 14:08


Вопрос № 38.055
Здравствуйте, уважаемые! Хотелось бы узнать Ваше мнение - что лучше использовать - стандартные функции PHP для работы с сокетами или функции CURL ?
Отправлен: 20.03.2006, 23:53
Вопрос задал: Shindzhe (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Straight
Здравствуйте, Shindzhe!
CURL дает хорошие возможности, которые реализовать вручную (через сокеты) будет сложнее, да вот только он есть далеко не на всех хостингах.
Ответ отправил: Straight (статус: Студент)
Ответ отправлен: 21.03.2006, 10:21

Отвечает: КиберТварь
Здравствуйте, Shindzhe!
по моим наблюдениям функции CURL работают быстрее на линуксе а в виндах стандартные
я например привык больше использовать стандартные функуции
Ответ отправил: КиберТварь (статус: Специалист)
Ответ отправлен: 21.03.2006, 14:04


Вопрос № 38.060
Доброе время суток! Такой вопрос, может не много не в тему, но все-таки..
Есть кодированные строки, не знаю какой алгоритм, может вы подскажете?

WcOgC0DeTD0zsWcqWUK.mxwFvI
WcekoqCgpgL6QWckacnj20G9FQ
Wc7ea6k3hgGlsWcIqdMVEfaHxw

Wc - явно какой-то разделитель, стоит на одной и той же позициях во всех строках (из-за HTML тут это может не заметно - скопируйте в блокнот и поймете)

Заранее благодарю )
Отправлен: 21.03.2006, 00:11
Вопрос задал: Shindzhe (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Константин
Здравствуйте, Shindzhe!
Если бы вы сказали, откуда вы такое получили, вам бы может больше помогли. Так просто вам вряд ли кто-то кроме автора скрипта скажет.
Может crypt c salt='Wc', может я ошибаюсь.
Ответ отправил: Константин (статус: 2-ой класс)
Ответ отправлен: 21.03.2006, 18:41


Вопрос № 38.062
Всем привет!
Столкнулся со следующей проблемой: после смены расширения файлов на сайте с .htm на .php перестали работать якорные ссылки, т. е. такие ссылки, которые ссылаются на содержание внутри самой страницы.
Я не могу передать ссылку следующего типа: http://primer.sayta.ru/1.php#1, где 1 -якорная ссылка.
Интерпретатор php считает, что я передаю ему параметр, и выдает сообщение об ошибке.
Теперь, собственно, вопрос: "Каким образом мне организовать внутреннюю (якорную) ссылку в файле с расширением php? "
Заранее благодарен!
Спасибо!
Отправлен: 21.03.2006, 00:40
Вопрос задал: Демьянчук Виталий (статус: Студент)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Zysoftik
Здравствуйте, Демьянчук Виталий!

Никаких проблем при переходе на php с якорями не должно возникать.

Вот пример:
http://www.incomestudio.com/banner.php#logo

Скорее всего, якорь не может быть просто цифрой, а обязан начинаться с символа.
Ответ отправил: Zysoftik (статус: 2-ой класс)
Ответ отправлен: 21.03.2006, 11:34
Оценка за ответ: 5
Комментарий оценки:
Ладно. Попробую задать другой параметр.
А это не может зависеть от настроек интерпретатора PHP или Apache?


Вопрос № 38.063
Привет всем!
Я видел на множестве сайтов функцию реализации публичных комментариев для статей, расположенных на сайте, где, буквально, каждый посетитель может оставить комментарий к статье, которую он только что прочитал.
Мне показалась эта возможность довольно интересной.
Теперь вопрос: "Помогите мне найти бесплатный php-скрипт, который бы позволил реализовать такую возможность".
Только у меня есть к Вам небольшая просьба: указывайте сам скрипт с прямой ссылкой на скачивание. Не надо советовать поискать самому в Интернете и на сайтах: cgi.ru и scripts.woweb.ru.
Мне бы всё-таки хотелось видеть примеры таких скриптов.

Заранее благодарен!
Спасибо!
Отправлен: 21.03.2006, 00:40
Вопрос задал: Демьянчук Виталий (статус: Студент)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: КиберТварь
Здравствуйте, Демьянчук Виталий!
готового скрипта не знаю
но могу посоветовать метод а при желании могу помочь в написании кода.
вам будет нужна поддржка БД (любая)
создаете 2 таблицы
states (ID int not null, title varchar(50) not null, body text not null, dat date, .....)
comments (ID int not null, stateID int not null, comment varchar(255), username varchar(20), ....)
вместо точек доп поля
затем когда выводите статьи под ними ставите линк на файл с коментариями
а там поле где можно оставить свои комменты
а в базу пишите в таблицу comments ID статьи и комментарий
Ответ отправил: КиберТварь (статус: Специалист)
Ответ отправлен: 21.03.2006, 14:17
Оценка за ответ: 5
Комментарий оценки:
Ладно. Попробую задать другой параметр.


Вопрос № 38.075
Уважаемые эксперты, подскажите, пожалуйста, в чем может быть причина. На сервере скриптом создается папка с правами 777, а когда проверяешь ее права ftp-клиентом, оказывается, что папка имеет права 755.

Приложение:

Отправлен: 21.03.2006, 07:45
Вопрос задал: Андрющенко Вячеслав Васильевич (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Straight
Здравствуйте, Андрющенко Вячеслав Васильевич!
Может быть, Вам umask мешает? Попробуйте так:

$oldumask = umask(0);
mkdir($dir_name, 0777);
umask($oldumask);

Если не поможет, попробуйте вызывать chmod для уже созданной папки.
Ответ отправил: Straight (статус: Студент)
Ответ отправлен: 21.03.2006, 10:15

Отвечает: КиберТварь
Здравствуйте, Андрющенко Вячеслав Васильевич!
может быть дело в самом сервере?
попробуййте альтернативу
mkdir($dir_name);
chmod($dir_name, 0777);
Ответ отправил: КиберТварь (статус: Специалист)
Ответ отправлен: 21.03.2006, 13:57


Вопрос № 38.077
Добрый день, эксперты!
Есть такая проблема. Необходимо сделать проверку на то, чтобы при регистрации пользователя, в его нике были только латинские буквы, либо только буквы кириллицы. Цифры и прочие символы присутствовать могут. Существует ли готовый скрипт?
Отправлен: 21.03.2006, 08:37
Вопрос задал: Bulichev (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Королёв Руслан
Здравствуйте, Bulichev!
Можно сделать через регулярные выражения.

Приложение:

Ответ отправил: Королёв Руслан (статус: 2-ой класс)
Ответ отправлен: 21.03.2006, 10:08

Отвечает: КиберТварь
Здравствуйте, Bulichev!
if (eregi("[[:alpha:]]")) echo "правильно";
Ответ отправил: КиберТварь (статус: Специалист)
Ответ отправлен: 21.03.2006, 14:02


Вопрос № 38.080
Уважаемые эксперты!
В таблице храниться статья и дата(строка вида: "02.11.2006").
Подскажите, каким образом с помощью запроса MySQL показать все статьи, принадлежащие каждому из месяцев 2006 года. Заранее спасибо за помощь!
Отправлен: 21.03.2006, 09:36
Вопрос задал: Андрющенко Вячеслав Васильевич (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Straight
Здравствуйте, Андрющенко Вячеслав Васильевич!
Например так:
select * from articles where substring(date,4)='11.2006'
Но вообще-то хранить дату в таком виде, да еще потом делать по ней выборку - это совсем не хорошо.
Ответ отправил: Straight (статус: Студент)
Ответ отправлен: 21.03.2006, 10:04

Отвечает: КиберТварь
Здравствуйте, Андрющенко Вячеслав Васильевич!
если у вас дата хранится в таком формате то практически никак.
хотя есть 2 варианта
1 прочитать всю базу в массив и уж потом в массиве сделать поиск substr() или strpos()
2 сгенерировать все дни в цикле и пришить к where (where dat='01.01.2006' or dat='02.01.2006' ....)
если есть возможность переделайте тип этого поля
потому что так вам труднее будет
Ответ отправил: КиберТварь (статус: Специалист)
Ответ отправлен: 21.03.2006, 13:56

Отвечает: Константин
Здравствуйте, Андрющенко Вячеслав Васильевич!
как уже было сказано, при таком формате поля- невозможно.
Я лично предпочитаю хранить дату/время в timestamp. Можно сделать поле в БД или типа timestamp или int(14) или, например, varchar(14). Туда пишем то что возвращает time(). Потом берешь генерируешь timestamp для 00:00:00 - 01.01.2006 и для 23:59:59 - 31.12.2006. Выбираешь все что между этими двумя значениями элементарным сравнением через ">" и "<".
Минус этого варианта - нужны преобразования времени в timestamp и обратно. Плюс - получешь ВСЕ возможные данные о времени. И очень удобно сравнивать даты. Кстати, не забудь в запросе указать ORDER BY time, чтобы сортировака шла по полу времени и выведены были в хронологическом порядке. Если наоборот, т.е. от послденего, тогда ORDER BY time desc

Другой вариант. 3 поля:
Day int(2)
Month int(2)
Year int(4)
Пишешь туда день, месяц, год. Потом пишешь запрос:
SELECT *
FROM твоя_таблица
WHERE Year=2006

А дальше можно бдувя способами:

Либо через ORDER BY Month, Day, тогда будет отсортировано по месяцам, в хронологическом порядке. При совпадении месяцев будет идти сортировка по дням, тоже в хронологическом порядке (по возрастанию). Если нужно по убыванию - добавлешь desc и все.

Другой вариант, который в данном случае не имеет никаких преимуществ:
GROUP BY Month - бубут выбраны все записи для 2006 года и сгруппированы по месяцам.
GROUP BY не имеет смысла, если нет никаких операция агрегирования данных (не подсчитывается сумма, не считается количество и т.п.)

Если это извлечение нужно только для подсчет кол-ва статей, тогда:
SELECT Month, count(*) AS NumArticles [или count(ID), если ID не пустой]
FROM your_table
WHERE Year=2006
GROUP BY Month
В результате получится запрос из 2 полей:
Month и NumArticles, в строках будут месяцы и кол-во статей в них.
Вот только если месяца, пример, 5 нет, то и строки
+------+------------+
|Month | NumArticles|
+------+------------+
| 5 | 0 |
+------+------------+
Тоже не будет.

Итого:
Первый способ - если нужно извлечь и показать
Второй - если выводить статистику, потому что считать это все через MySQL удобнее, чем через php, если знаь SQL, конечно. А его знать очень советую.
Ответ отправил: Константин (статус: 2-ой класс)
Ответ отправлен: 21.03.2006, 18:39


Вопрос № 38.134
Уважаемые эксперты!
Вот такая проблемка:
наступил день когда я решил залить свой сайт в интернет, но дело в том что хостинг не имеет PhpMyAdmin, а база довольно таки велика: 23 таблицы.
Если дамп засунуть в mysql_query() - неработает. Может есть какая нибудь спец функция. Подскажите...

С уважением Golden Spider.
Отправлен: 21.03.2006, 18:28
Вопрос задал: Golden Spider (статус: 5-ый класс)
Всего ответов: 4
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Doctor013
Здравствуйте, Golden Spider!
2 варианта
1. Самостоятельно поставить себе phpMyAdmin
2. Если доступна командная строка, залить напрямую, для этого загрузить дамп на сервер, в командной строке набрать mysql -uлогин -pпароль нужная_база<дамп

---------
Большинство ответов на вопросы в рассылках находиться через Яндекс за 1 мин.
Ответ отправил: Doctor013 (статус: Студент)
Ответ отправлен: 21.03.2006, 18:36
Оценка за ответ: 5
Комментарий оценки:
thanks

Отвечает: Zysoftik
Здравствуйте, Golden Spider!

Есть еще вариант:

<?

include("mysql_connect.php");

$f=join('',file('myfile.sql'));

$sqls=explode(";",$f);

for ($i=0;$i<count($sqls);$i++)
mysql_query($sqls[$i]);

?>
Ответ отправил: Zysoftik (статус: 2-ой класс)
Ответ отправлен: 22.03.2006, 16:36
Оценка за ответ: 5
Комментарий оценки:
Хммм... Разбить по запросам... А из этого может что-нибудь получится! Спасибо!

Отвечает: PollyRC
Здравствуйте, Golden Spider!
Обычно хостеры говорят тебе название твоей базы данных и создавать базы данных с другими именами ты не можешь. Следовательно у тебя имеется БД, а таблицы ты там можешь создавать сколько хочешь.
А сделай так:
1. Создай текстовый файл и сбрось туда дамп.
2. Напиши скрипт который последовательно будет читать оттуда запросы и выполнять.
mysql_querry() имеет ограничение на длину запроса и полный дамп на 23 таблицы туда уж точно не запихнешь. :) Так что все надо делать последовательно. Удачи!
Ответ отправил: PollyRC (статус: 1-ый класс)
Ответ отправлен: 23.03.2006, 05:35

Отвечает: КиберТварь
Здравствуйте, Golden Spider!
есть два выхода
1 самому установить PhpMyAdmin
2 я всегда так делаю
запишите дамп в файл (dump.txt)
прочтите его в переменную
$fin = join('',file('dump.txt'))
затем делите его на queries
$arr_q = explode(';',$fin);
а дальше вот так
foreach($arr_q as $qr) mysql_query($qr);
Ответ отправил: КиберТварь (статус: Специалист)
Ответ отправлен: 23.03.2006, 23:06


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

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

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

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

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


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


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

В избранное