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

  Все выпуски  

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


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

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

Выпуск № 319
от 22.04.2006, 04:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 269, Экспертов: 32
В номере:Вопросов: 5, Ответов: 12


Вопрос № 40451: Здравствуйте! Нужна ваша помощь. Подскажите, пожалуйста, как вывод из базы MySQL разбивать на страницы, например, по 10 записей на каждой. Заранее благодарен....
Вопрос № 40477: Доброго времени суток. Подскажите, пожалуйста, как средствами ПХП создать безрефрешевый чат?(который бы подгружал сообщения по мере поступления, а не рефрешил бы всю страницу)...
Вопрос № 40480: Здравствуйте, эксперты. Я столкнулся со странной проблемой: у меня есть две строковые переменные и файл (к примеру с одной строчкой информации). Как мне дописать первую переменную на вторую строчку, а вторую переменную на третью строчку? Зара...
Вопрос № 40481: Здравствуйте, уважаемый эксперты! 1) Как скопировать все картинки (*.jpg, *.gif, *.bmp) из одной папки, которая находится на клиенте, в такую же другую на сервер? Сначала я создаю папку на сервере: mkdir("$dir"); Затем надо коп...
Вопрос № 40488: Здравствуйте уважаемые эксперты! У меня такой вопрос: у меня есть поле ввода в форме, в котором должны быть только цифры. как в php проверить это? Я написал вот так(приложение), только это не работает. Подскажите, может неправильный синтаксис...

Вопрос № 40.451
Здравствуйте! Нужна ваша помощь. Подскажите, пожалуйста, как вывод из базы MySQL разбивать на страницы, например, по 10 записей на каждой. Заранее благодарен.

Приложение:

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

Отвечает: Stamm
Здравствуйте, Андрющенко Вячеслав Васильевич
Есть в MySQL такой параметр LIMIT a,b. Он берет строки начиная с a до b.
Сначала смотрим есть ли номер страницы, если нет, то подставляем первую страницу. Переменная $ch содержит кол-во новостей на странице. Далее узнаем кол-во новостей. Узнаем положение начала и конца. Делаем запрос, сортируя по дате. Выводим все. А в конце ставим номера страниц, текущая выделяется []
Смотрите код в приложении

Приложение:

---------
В день - один, ну два подвига, не больше...

Ответ отправил: Stamm (статус: Студент)
Ответ отправлен: 16.04.2006, 16:13

Отвечает: XMF
Здравствуйте, Андрющенко Вячеслав Васильевич!
--
Вам тут посоветовали такой код:

$nach=($page-1)*$ch;//Начало
$kon=$page*$ch;//Конец
$sql="SELECT * FROM news ORDER BY date DESC LIMIT $nach , $kon ";
--
Он правильный по синтаксису, но не правильный по логике.
при ?page=1 показано будет 7 новостей с 0
?page=2 - 14 новостей начиная с 7
?page=3 - 21 новостей начиная с 14
...
LIMIT откуда, сколько!!!
а не: откуда, до скольки
Ответ отправил: XMF (статус: 6-ой класс)
Ответ отправлен: 16.04.2006, 18:24


Вопрос № 40.477
Доброго времени суток. Подскажите, пожалуйста, как средствами ПХП создать безрефрешевый чат?(который бы подгружал сообщения по мере поступления, а не рефрешил бы всю страницу)
Отправлен: 16.04.2006, 21:37
Вопрос задал: Warkot (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Асташов Андрей Александрович
Здравствуйте, Warkot!

Средствами ПХП никак. А вот запускать по времени JavaScript и запрашивать последние строки - это можно.

Удачи.
---------
Бросил курить сам - Брось курить другому!!!
Ответ отправил: Асташов Андрей Александрович (статус: Студент)
Ответ отправлен: 17.04.2006, 05:56


Вопрос № 40.480
Здравствуйте, эксперты.
Я столкнулся со странной проблемой: у меня есть две строковые переменные и файл (к примеру с одной строчкой информации). Как мне дописать первую переменную на вторую строчку, а вторую переменную на третью строчку?
Заранее спасибо!
Отправлен: 16.04.2006, 22:10
Вопрос задал: Tossha (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Stamm
Здравствуйте, Tossha!
Есть функция file_put_contents, кот. записывает в файл все данные.
Считываем файл ф-цией file, кот. возвращает список со строками.
Далее просто добавляем в массив необходимые строки. А затем целиком записываем данные ф-цией file_put_contents

Приложение:

---------
В день - один, ну два подвига, не больше...

Ответ отправил: Stamm (статус: Студент)
Ответ отправлен: 16.04.2006, 22:28
Оценка за ответ: 5

Отвечает: XMF
Здравствуйте, Tossha!
--
Хм..
$line1 = "ssdsf";
$line2 = "sdfsdf";
$file = join("", file("%path2file%"));

$new = $file." $line1 $line2";
fwrite(fopen("%path2file%"), "w"), $new);
Ответ отправил: XMF (статус: 6-ой класс)
Ответ отправлен: 16.04.2006, 23:04
Оценка за ответ: 4

Отвечает: Константин
Здравствуйте, Tossha!
Не вижу проблемы!
открываем файл:
$fl - fopen('file.txt', 'a+');
в формате "дозаписи"
и дописываем:
fwrite($fl, $var1." ");
fwrite($fl, $var2." ");
Твои переменные будут соответственно на 2 и третьей строчке.

Другой способ - считать из файла все через
$temp = file_get_contents($file);
Потом сформировать новое содержимое файла:
$temp .= $var1." ".$var2." ";
и через file_put_contents($file);
записать обратно. Хотя зачем делать вторым вариантом я не знаю....
Ответ отправил: Константин (статус: 3-ий класс)
Ответ отправлен: 17.04.2006, 19:52
Оценка за ответ: 5


Вопрос № 40.481
Здравствуйте, уважаемый эксперты!
1) Как скопировать все картинки (*.jpg, *.gif, *.bmp) из одной папки, которая находится на клиенте, в такую же другую на сервер?
Сначала я создаю папку на сервере: mkdir("$dir");
Затем надо копировать все картинки с папки $dir_v в папку $dir.
2) Если можно, то конкретный ответ хотелось бы, потому что я уже задавал вопрос, но ничего не помогло. У меня есть форма:
<form action="test_create.php" method="post" enctype="multipart/form-data">
...
<input type="file" name="v_f">
...
В скрипт test_create.php передаю файл как:
// @$v_f=$HTTP_POST_FILES['v_f']['name'];
Если я в input type указываю путь к файлу, а затем делаю
//echo $v_f; В итоге получаю только имя файла.расширение, а
сам путь обрезается, а мне нужен и путь. Как решить данную
прпоблему?
Спасибо за ответы!

Приложение:

Отправлен: 16.04.2006, 22:26
Вопрос задал: Bullet-Proof (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Straight
Здравствуйте, Bullet-Proof!
1) Никак. На сервер с клиента можно передать только те файлы, которые пользователь явно указал. Иначе - это страшная дыра.
2) Непонятно зачем Вам путь. Но напишите так (приложене). При изменении поля v_f путь кладется в hidden-поле v_dir.

Приложение:

Ответ отправил: Straight (статус: Студент)
Ответ отправлен: 17.04.2006, 10:33

Отвечает: Zysoftik
Здравствуйте, Bullet-Proof!

Дополню предыдущий ответ:

Чтобы положить файл в нужную Вам папку, воспользуйтесь таким кодом:

...
move_uploaded_file ($_FILES['v_f']['tmp_name'],$dir."/".$_FILES['v_f']['name']);
...
$_FILES['v_f']['tmp_name'] содержит относительный путь и имя закачаного на сервер файла, а функция move_uploaded_file перенесет его в нужное место. В примере файл будет записан под оригинальным именем. А вообще лучше использовать уникальные генерируемые имена, т.к. возможны совпадения имен файлов.
Ответ отправил: Zysoftik (статус: 3-ий класс)
Ответ отправлен: 17.04.2006, 13:09


Вопрос № 40.488
Здравствуйте уважаемые эксперты!
У меня такой вопрос: у меня есть поле ввода в форме, в котором должны быть только цифры. как в php проверить это?
Я написал вот так(приложение), только это не работает. Подскажите, может неправильный синтаксис функции? Или есть другая функция?

Приложение:

Отправлен: 17.04.2006, 00:30
Вопрос задал: Tossha (статус: Посетитель)
Всего ответов: 4
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Андрей_26rus
Здравствуйте, Tossha!
используйте is_numeric($var)
---------
- = Tertium non datur = -
Ответ отправил: Андрей_26rus (статус: 3-ий класс)
Ответ отправлен: 17.04.2006, 08:48
Оценка за ответ: 5

Отвечает: Stamm
Здравствуйте, Tossha!
Вы указали только один символ [0-9]. Чтобы ф-ция срабатывала на несколько цифр нужно добавить + - это значит одни или более символов, существует альтернативный вариант
preg_match("/(d)+/i",$var);

Приложение:

---------
В день - один, ну два подвига, не больше...

Ответ отправил: Stamm (статус: Студент)
Ответ отправлен: 17.04.2006, 09:34
Оценка за ответ: 4

Отвечает: Straight
Здравствуйте, Tossha!
Андрей_26rus сказал не всю правду. Если надо чтобы кроме цифр других символов вообще не было, то напишите так: preg_match("/^[0-9]+$/i", $var)
Ответ отправил: Straight (статус: Студент)
Ответ отправлен: 17.04.2006, 10:22
Оценка за ответ: 5

Отвечает: Константин
Здравствуйте, Tossha!
Делаем по принципу KISS (Keep It Simple, Stupid):
if ((integer)$var == $var)
{
//делай что хочешь
}
Т.е. проосто превращаем в число и если совпадает, значит ввели число.
Аналогично если ожидается double пишем не (integer), а (double)

Кстати, точно так же можно и проверить на некорректные символы в логине, пароле и где там еще надо. Т.е. Сначала приводим к нужному виду, а потом сравниваем - а то ли нам дали?
Ответ отправил: Константин (статус: 3-ий класс)
Ответ отправлен: 17.04.2006, 19:46


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

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

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

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

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала 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.30 (beta) от 09.04.2006
Яндекс Rambler's Top100

В избранное