PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (19): « 1 2 3 [4] 5 6 7 8 9 ... » В конец

> Найдено сообщений: 271
dXdYdZ Отправлено: 05 Ноября, 2014 - 22:26:37 • Тема: Свои функции • Форум: Вопросы новичков

Ответов: 21
Просмотров: 790
Функцию надо не только объявить, но и вызвать

Кроме этого, параметр, передаваемый в функцию (в данном случае это $a) обычно не переопределяют внутри функции (если он передан не по ссылке). То есть внутри функции

Лучше не выполнять. Использовать функции в данном примере можно, например, так:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. function fu($a){
  3.   if ($a>5)
  4.     {
  5.     echo 'NU CHO';
  6.     }
  7.   else
  8.     {
  9.     echo 'NICHo';
  10.     }
  11.   }
  12. fu($_POST['as']);
  13. ?>
dXdYdZ Отправлено: 03 Ноября, 2014 - 22:48:36 • Тема: запрос SQL • Форум: Вопросы новичков

Ответов: 3
Просмотров: 168
Не совсем понятна задача. Думаю, не мне одному. Можете пояснить подробнее?
dXdYdZ Отправлено: 03 Ноября, 2014 - 22:17:29 • Тема: Код в jQuery странно работает • Форум: JavaScript & VBScript

Ответов: 5
Просмотров: 1259
Почитайте описание функции animate (http://jquery-docs[dot]ru/effects/animate/ )
У неё есть четвёртый параметр - функция, которая вызывается по окончании анимации.
Вот в качестве этой функции и надо указывать функцию left, а не вызывать её сразу же за функцией right().
То есть получается так:
CODE (javascript):
скопировать код в буфер обмена
  1. $('#fly').animate({left: $("body").width()},3000,"linear",left);

И вызывать надо только функцию right(), функция left будет вызвана автоматически по окончании анимации в функции right().
Могу, конечно, ошибаться, так как мало работал с jquery, но по идее это делается именно так.
dXdYdZ Отправлено: 03 Ноября, 2014 - 20:52:19 • Тема: выражение работает немножно не так, как ожидалось • Форум: Регулярные выражения

Ответов: 6
Просмотров: 372
Я ж говорю, почитайте про жадность. Вот так работает:
CODE (htmlphp):
скопировать код в буфер обмена
  1. (<img)[ ]{1,9}(src)([ ]{1,9}|)(=)([ ]|)([",']|)(http://|/)(.*?)([",', ])(.*)>

Достаточно убрать жадность при поиске подстроки адреса картинки.
dXdYdZ Отправлено: 31 Октября, 2014 - 20:57:30 • Тема: выражение работает немножно не так, как ожидалось • Форум: Регулярные выражения

Ответов: 6
Просмотров: 372
Почитайте про жадность в регулярных выражениях.
dXdYdZ Отправлено: 30 Октября, 2014 - 18:19:45 • Тема: Alt или Title.... • Форум: HTML, Дизайн & CSS

Ответов: 6
Просмотров: 1128
http://htmlbook[dot]ru/html/img/alt
http://htmlbook[dot]ru/html/attr/title
dXdYdZ Отправлено: 29 Октября, 2014 - 21:32:55 • Тема: Не передается значение из формы через $_POST • Форум: Вопросы новичков

Ответов: 2
Просмотров: 177
Ошибка кроется в том, что при попытке разделения

в конце строк $buffer попадается символ перевода строки. В итоге, в $pieces['status'] попадает не просто строка с цифрой, а, опять таки, строка с цифрой и с переводом строки.
В итоге, равеноство не выполняется
PHP:
скопировать код в буфер обмена
  1. if($pieces['status']==$st){
  2.                                 $global[] = $pieces;
  3.                         }

Когда равенство не выполняется ни разу, массив $global не создаётся, следовательно, его нельзя перебрать с помощью foreach в строке 26.
Для исправления, необходимо
PHP:
скопировать код в буфер обмена
  1. $pieces['status']=$pieces[3];unset($pieces[3]);

Заменить на
PHP:
скопировать код в буфер обмена
  1. $pieces['status']=trim($pieces[3]);unset($pieces[3]);

А также желательно предварительно создавать пустой массив $global перед его наполнением.
В итоге, получается следующее:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3. function myfunc($st){
  4.         $handle = fopen('file.txt', 'r');
  5.         if ($handle) {
  6.                                 $global=array();
  7.                 while (($buffer = fgets($handle, 4096)) !== false) {
  8.                         $pieces = explode('|', $buffer);
  9.                        
  10.                         $pieces['title']=$pieces[0];unset($pieces[0]);
  11.                         $pieces['author']=$pieces[1];unset($pieces[1]);
  12.                         $pieces['print']=$pieces[2];unset($pieces[2]);
  13.                         $pieces['status']=trim($pieces[3]);unset($pieces[3]);
  14.                         if($pieces['status']==$st){
  15.                                 $global[] = $pieces;
  16.                         }              
  17.                 }
  18.         }
  19.         fclose($handle);
  20.         echo'<table>
  21.                        <tr>
  22.                                <th>Название</th>
  23.                                <th>Автор</th>
  24.                                <th>Издательство</th>
  25.                                <th>Состояние</th>
  26.                        </tr>';
  27.         foreach($global as $pieces){
  28.                 echo'<tr>
  29.                                <td>'.$pieces['title'].'</td>
  30.                                <td>'.$pieces['author'].'</td>
  31.                                <td>'.$pieces['print'].'</td>
  32.                                <td>'.$pieces['status'].'</td>
  33.                        </tr>';
  34.         }
  35.         echo'</table>';
  36.         /*echo'<pre>';
  37.         print_r($global);
  38.         echo'</pre>';*/
  39. }
  40.  
  41. echo"<p>Выберите значение</p>
  42. <form method='post' action='raschet.php'>
  43.        <select name='status'>
  44.                <option value='0'>0</option>
  45.                <option value='1'>1</option>
  46.        </select>
  47.        <input type='submit' value='Отправить запрос'>
  48. </form>
  49. ";
  50.  
  51. if(isset($_POST['status'])){
  52.         $post=$_POST['status'];
  53.         myfunc($post);
  54. }
dXdYdZ Отправлено: 28 Октября, 2014 - 18:55:40 • Тема: Алгоритм рассчета релевантности поста по количеству просмотров и времени публикации • Форум: Программирование на PHP

Ответов: 15
Просмотров: 1178
Zuldek пишет:
Разумеется.
Вы считаете это не верно?
Формула учитывает и общее количество просмотров и дату публикации.
Если пост сохранит динамику просмотров, то через 10 дней он получит такой же рейтинг 11.
Если же количество просмотров за 10 дней у него в итоге получится 200 ( кпримеру привязанную к дате акцию читали только 2 дня), то рейтинг станет = 2.2

А, ну, я не знал, что так и задумано. Я думал, что более новые посты должны отображаться выше, чем более старые. А если приоритет отдаётся старым постам, то это другое дело. Просто, для чего Вы это делаете, мне точно не известно, поэтому Вам виднее, как правильнее будет.

Получается, что максимальный приоритет при прочих равных условиях Вы отдаёте постам с возрастом от 1 месяца. Это при условии, что количество просмотров будет стабильным.
dXdYdZ Отправлено: 28 Октября, 2014 - 18:41:14 • Тема: Алгоритм рассчета релевантности поста по количеству просмотров и времени публикации • Форум: Программирование на PHP

Ответов: 15
Просмотров: 1178
Zuldek пишет:
(100/10 + 100)/100 > 2 по вашему?
1.1 коэфициент получится.
Потому что количество просмотров за последний месяц у него 100, раз он опубликован 10 дней назад. Поэтому формула отработала правильно.

Ну ведь 100 просмотров в день-это 1000 просмотров за 10 дней. Итого получаем (1000/10+1000)/100=11. Это если пост имеет 100 просмотров в день и опубликован 10 дней назад. А если пост имеет тех же 100 просмотров в день, но опубликован 1 день назад, то получается (100/1+100)/100=2. То есть пост со 100 просмотров в день, размещённый 10 дней назад, будет выше, чем тот же пост, размещённый 1 день назад.
(Добавление)
или я что-то не так понял?
dXdYdZ Отправлено: 28 Октября, 2014 - 17:57:02 • Тема: Алгоритм рассчета релевантности поста по количеству просмотров и времени публикации • Форум: Программирование на PHP

Ответов: 15
Просмотров: 1178
Tyoma5891 пишет:
наоборот

В таком случае, чем меньше число просмотров за день, тем k будет больше?
(Добавление)
Хотя нет, не так получается.
(Добавление)
Всё-таки не наоборот
(Добавление)
Zuldek пишет:
В итоге пришёл к такой формуле пока:


где
x - общее число просмотров поста
d - количество дней с публикации
c - количество просмотров за последний месяц
m - коэфициент важности учета просмотров за месяц в расчётах.

По умолчанию m = 1, если учитывать просмотры за последний месяц нужно ещё больше - увеличиваем этот коэфициент, если меньше - уменьшаем.

Для поста имеющего 500 000 просмотров за 5 лет, но 5 просмотров за текущий месяц, искомый коэфициент будет равен по формуле 2.8.
Для поста имеющего 1000 просмотров и опубликованного 10 дней назад, он будет равен 11

А если пост имеет 100 просмотров и опубликован всего 1 день назад, то результат будет равен всего 2. То есть получается, что пост, опубликованный 10 дней назад будет иметь более высокое значение, чем пост, опубликованный 1 день назад, хотя количество просмотров в день у них одинаковое?
dXdYdZ Отправлено: 28 Октября, 2014 - 17:46:12 • Тема: Алгоритм рассчета релевантности поста по количеству просмотров и времени публикации • Форум: Программирование на PHP

Ответов: 15
Просмотров: 1178
Не совсем понятно, что такое x и d, если в формуле присутствуют a и b. Наверное, x-это a, а d-это b? В таком случае Вы делите на количество дней с публикации. А если опубликовано сегодня, то количество дней к публикации будет равно 0, и тогда по формуле получится бесконечность.
dXdYdZ Отправлено: 28 Октября, 2014 - 17:22:20 • Тема: Алгоритм рассчета релевантности поста по количеству просмотров и времени публикации • Форум: Программирование на PHP

Ответов: 15
Просмотров: 1178
Да, я ошибся. Я имею в виду количество просмотров в единицу времени.
(Добавление)
Хотя, конечно, всё равно более старые посты будут более посещаемыми в том числе и по количеству просмотров в единицу времени.
dXdYdZ Отправлено: 28 Октября, 2014 - 17:12:47 • Тема: Алгоритм рассчета релевантности поста по количеству просмотров и времени публикации • Форум: Программирование на PHP

Ответов: 15
Просмотров: 1178
Получается, чем старше пост, тем он должен быть ниже. Это с одной стороны. С другой стороны, чем больше количество просмотров в месяц, тем пост должен быть выше.
Возраст поста=текущая дата-дата рубликации. В таком случае первый множитель должен быть пропорционален 1/возраст поста=1/текущая_дата-дата_публикации+1. Второй множитель должен быть пропорционален количеству просмотров в месяц. В таком случае
CODE (htmlphp):
скопировать код в буфер обмена
  1. релевантность=количество_просмотров_в_единицу_Времени/(текущая_дата-дата_публикации+1)

Например, если пост опубликован сегодня, то его релевантность будет равно количество просмотров_в_единицу_времени/1. Если пост опубликован вчера, то количество просмотров должно быть в 2 раза выше для той же позиции.
Это в простейшем случае. В более сложном случае можно использовать и логарифмы, либо корень квадратный. Например, можно взять логарифм десятичный от количества просмотров для того, чтобы оно так сильно не влияло.
dXdYdZ Отправлено: 27 Октября, 2014 - 23:23:19 • Тема: Соотношение с массивом • Форум: Напишите за меня, пожалуйста

Ответов: 2
Просмотров: 35
PHP:
скопировать код в буфер обмена
  1. // переменная $asses будет входить в функцию вида 1|2|3|4 и т.п.
  2. function administration($access) {
  3. // Массив который будем соотносить с $access
  4.             $administration = Array(
  5.                 1 => 'чат',
  6.                 2 => 'форум',
  7.                 3 => 'обменник'
  8.             );
  9. // Вырезаем | чтобы получить цифры
  10.             $exp = explode("|", $access);
  11. // цикл с полученным значением
  12.             $res='';
  13.             foreach($exp as $value) {
  14. // тут блин тупик ((
  15.                         $res.=$administration[$value].',';
  16.             }
  17.             if(strlen($res)>0)
  18.                         $res=substr($res,0,-1);
  19.             return $res;
  20.     }
dXdYdZ Отправлено: 27 Октября, 2014 - 21:43:36 • Тема: Проблема (Шаблон. превью новостей --> проблема) • Форум: Вопросы новичков

Ответов: 38
Просмотров: 1200
ой, я не то отправил. Сейчас должно появиться. Уже и в лс, и, возможно, на ящике есть.
(Добавление)
Буду описывать Ваши ошибки по мере их нахождения
admin/index.php:
Тег Form не должен находиться внутри тега head. Перенёс его в тег body.
(Добавление)
Не задана кодировка сайта. Добавил тег meta charset
(Добавление)
Кроме этого, похоже, что у Вас на сервере отключены сообщения об ошибках. Так как там явная parse error. Рекомендую включить на сервере либо с помощью функции error_reporting
(Добавление)
В template_full.html у Вас был пропущен символ "." в
PHP:
скопировать код в буфер обмена
  1. mysql_query ("INSERT INTO comments(article_id,author,mail,text) VALUES(1,'$author','$mail','$comment')")
  2.         or die('Failed to connect to database server!<br>'.mysql_error());

(Добавление)
Кроме этого, всю обработку добавленияв комментария я перенёс из template_full.php в full.php, где ей и место
(Добавление)
Кроме этого, к action формы добавления комментария я добавил id. Для того, чтобы full.php не ругался на то, что он не задан и чтобы отображалась требуемая статья.
(Добавление)
Кстати, расширение mysql, которое Вы используете, уже устарело. Рекомендуется использовать расширение mysqli. http://www.php.su/articles/?cat=...pdb&page=010
(Добавление)
Проблему с добавлением комментария исправил. Есть и другие проблемы, например, проблемы с фильтрацией входных данных, но это уже другой вопрос. Архив выслал. Смотрите последнее письмо. В предпоследнем не доделано.
(Добавление)
Кстати, рекомендую почитать про sql-инъекции и XSS. Прежде всего про инъекции. Так как у Вас входные данные, полученные из формы, не фильтруются. Рекомендуется перед вставкой в запрос фильтровать их хотя бы с помощью mysql_real_escape_string.
(Добавление)
Например, вот статья про способы фильтрации:
http://habrahabr[dot]ru/post/143035/
Если этого не достаточно либо не понятно, то можете поискать в google с ключом "фильтрация входных данных php"

Страниц (19): « 1 2 3 [4] 5 6 7 8 9 ... » В конец
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB