Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Журнал регистрации служебных поездок и местных командировок сотрудников

 PHP.SU

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


 Страниц (2): [1] 2 »   

> Без описания
Downloader
Отправлено: 17 Апреля, 2014 - 02:18:24
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Апр. 2014  


Помог: 0 раз(а)




Дорогие друзья, всех приветствую!
У меня такой вопрос. В организации есть журнал в который сотрудник отъезжающий по делам записывает свой отъезд. Но это порой не совсем удобно, так как журнал лежит в определённом месте, до него нужно сначала дойти, вписаться и уйти. У меня возникла идея сделать это в виде электронного ресурса - сайта. Может есть какие готовые решения или какой нибудь компонент для Joomla.
К сообщению прикрепляю рисунок для более понятного объяснения.
Прикреплено изображение (Нажмите для увеличения)
111 001.jpg

(Отредактировано автором: 17 Апреля, 2014 - 02:26:54)

 
 Top
Ch_chov
Отправлено: 17 Апреля, 2014 - 04:43:15
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2121
Дата рег-ции: Июль 2008  
Откуда: из города


Помог: 90 раз(а)




По сути форма + список с сортировкой. Думаю, можно сделать на любой СМС или вообще без СМС.
 
 Top
Строитель Модератор
Отправлено: 17 Апреля, 2014 - 08:40:05
Post Id



Участник


Покинул форум
Сообщений всего: 1581
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 74 раз(а)




Downloader пишет:
Дорогие друзья, всех приветствую!
У меня такой вопрос. В организации есть журнал в который сотрудник отъезжающий по делам записывает свой отъезд. Но это порой не совсем удобно, так как журнал лежит в определённом месте, до него нужно сначала дойти, вписаться и уйти. У меня возникла идея сделать это в виде электронного ресурса - сайта. Может есть какие готовые решения или какой нибудь компонент для Joomla.
К сообщению прикрепляю рисунок для более понятного объяснения.


Я сегодня напишу такой журнал )
 
 Top
Строитель Модератор
Отправлено: 17 Апреля, 2014 - 14:15:35
Post Id



Участник


Покинул форум
Сообщений всего: 1581
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 74 раз(а)




Вот мой вариант

index.php
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.     session_start();
  3.     echo $_SESSION['err'];
  4.     unset($_SESSION['err']);
  5.     $file='data.txt';
  6.     if (!file_exists($file)){
  7.     file_put_contents($file, NULL);
  8.     }
  9.     $file=array_reverse(file($file));
  10.     $all=sizeof($file);
  11.     for($i=0; $i<$all; $i++){
  12.         $str.=$file[$i].'^^';
  13.     }
  14.     $arr = explode('^^',$str);
  15.     foreach($arr as $val){
  16.         $txt = explode('^',$val);
  17.         if ($txt[0]=='') break;
  18.         echo '<table border="1"><tr>';
  19.         echo '<td width="105">'.$txt[0].'</td>';
  20.         echo '<td width="88">'.$txt[1].'</td>';
  21.         echo '<td width="193">'.$txt[2].'</td>';
  22.         echo '<td width="368">'.$txt[3].'</td>';
  23.         echo '<td width="193">'.$txt[4].'</td>';
  24.         echo '</tr></table>';
  25.     }
  26. ?>
  27. <!DOCTYPE HTML>
  28. <html>
  29. <head>
  30.     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  31.     <title>Журнал регистрации</title>
  32. </head>
  33. <body>
  34.     <form action="sort.php" method="post">
  35.         <table border="1">
  36.             <caption></caption>
  37.             <tr>
  38.                 <th>Выбор отдела</th>
  39.                 <th>Дата</th>
  40.                 <th>Ф.И.О.</th>
  41.                 <th>Цель поездки/Адрес</th>
  42.                 <th>Время отъезда/Приезда</th>
  43.             </tr>
  44.             <tr>
  45.                 <td>
  46.                     <select name="group">
  47.                         <option value="Отдел кадров">Отдел кадров</option>
  48.                         <option value="Отдел-1">Отдел-1</option>
  49.                         <option value="Отдел-2">Отдел-2</option>
  50.                     </select>
  51.                 </td>
  52.                 <td>
  53.                     <input type="text" name="date" value="<?=date('d.m.Y')?>" size="10" maxlength="10" />
  54.                 </td>
  55.                 <td>
  56.                     <input type="text" name="user" size="25" maxlength="30" />
  57.                 </td>
  58.                 <td>
  59.                     <input type="text" name="mission" size="50" maxlength="50" />
  60.                 </td>
  61.                 <td>
  62.                     <input type="text" name="time" value="<?=date('H:i')?>" size="25" maxlength="25" />
  63.                 </td>
  64.             </tr>
  65.         </table>
  66.         <input type="submit" value="Внести запись" />
  67.     </form>
  68. </body>
  69. </html>


sort.php
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.     session_start();
  3.     if (isset($_POST)){
  4.         $group = $_POST['group'];
  5.         $date = trim(htmlspecialchars($_POST['date']));
  6.         $user = trim(htmlspecialchars($_POST['user']));
  7.         $mission = trim(htmlspecialchars($_POST['mission']));
  8.         $time = trim(htmlspecialchars($_POST['time']));
  9.         $date = str_replace(array("\n",'^'),'',$date);
  10.         $user = str_replace(array("\n",'^'),'',$user);
  11.         $mission = str_replace(array("\n",'^'),'',$mission);
  12.         $time = str_replace(array("\n",'^'),'',$time);
  13.         $string = $group.'^'.$date.'^'.$user.'^'.$mission.'^'.$time."\n";
  14.             if (!empty($date) && !empty($user) && !empty($mission) && !empty($time)){
  15.                 file_put_contents('data.txt', $string, FILE_APPEND);
  16.             } else {
  17.                 $_SESSION['err']='<h2>Заполните все поля!</h2>';
  18.             }
  19.     }
  20.     header('Location: index.php');
  21. ?>

Прикреплено изображение (Нажмите для увеличения)
Журнал.png
 
 Top
esterio
Отправлено: 17 Апреля, 2014 - 14:19:25
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




Вопрос то в чем?
Если чесно то реализация хромая мягко говоря
 
 Top
Строитель Модератор
Отправлено: 17 Апреля, 2014 - 14:23:35
Post Id



Участник


Покинул форум
Сообщений всего: 1581
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 74 раз(а)




esterio пишет:
Вопрос то в чем?
Если чесно то реализация хромая мягко говоря


А можно по-подробней? Это мой всего третий скрипт ))
 
 Top
LIME
Отправлено: 17 Апреля, 2014 - 14:28:40
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




Строитель пишет:
Это мой всего третий скрипт ))
для 3го ожидаемо
но вообще код кошмар
для начала что за таблица выводится перед доктайпом?
почему не накапливается в переменную которую потом можно вставить в разметку ниже?
и почему на каждую строку новая таблица?
почему не вынести <table> за цикл?
(Добавление)
PHP:
скопировать код в буфер обмена
  1. $table='<table>';
  2.  foreach($arr as $val){
  3.         $txt = explode('^',$val);
  4.         if ($txt[0]=='') break;
  5.         $table .='<tr><td width="105">'.$txt[0].'</td>';
  6.         //....
  7.     }
  8. $table.='</table>';

это для начала

(Отредактировано автором: 17 Апреля, 2014 - 14:32:14)

 
 Top
Строитель Модератор
Отправлено: 17 Апреля, 2014 - 14:35:59
Post Id



Участник


Покинул форум
Сообщений всего: 1581
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 74 раз(а)




LIME пишет:
Строитель пишет:
Это мой всего третий скрипт ))
для 3го ожидаемо
но вообще код кошмар
для начала что за таблица выводится перед доктайпом?
почему не накапливается в переменную которую потом можно вставить в разметку ниже?
и почему на каждую строку новая таблица?
почему не вынести <table> за цикл?


Таблица перед доктайпом - протупил. Как накопить в переменную? Через точку "." ? Если да, то для вывода потом использовать ещё один цикл?
 
 Top
LIME
Отправлено: 17 Апреля, 2014 - 14:37:25
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




см выше
(Добавление)
для вывода <?=$table?>
 
 Top
Строитель Модератор
Отправлено: 17 Апреля, 2014 - 14:42:41
Post Id



Участник


Покинул форум
Сообщений всего: 1581
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 74 раз(а)




LIME пишет:
см выше
(Добавление)
для вывода <?=$table?>



Спасибо, перепишу.
 
 Top
LIME
Отправлено: 17 Апреля, 2014 - 14:46:47
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




все выводы в php убери
формируй переменные и их выводи в шаблоне
а вообще даже неплохо для такого незначительно опыта
очень даже
экранирование и редирект
вполне толково для 3го раза
(Добавление)
и проверки есть
точно 3ий раз?))
 
 Top
Строитель Модератор
Отправлено: 17 Апреля, 2014 - 14:58:45
Post Id



Участник


Покинул форум
Сообщений всего: 1581
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 74 раз(а)




LIME пишет:
все выводы в php убери
формируй переменные и их выводи в шаблоне
а вообще даже неплохо для такого незначительно опыта
очень даже
экранирование и редирект
вполне толково для 3го раза
(Добавление)
и проверки есть
точно 3ий раз?))


Да, скрипт действительно третий. Первый был калькулятор на 4-е основных действия (+,-,*,/), второй - гостевая на файлах, ну и собственно третий - этот журнал. Спасибо за помощь. А про вывод в шаблоне можно подробнее на примере?
(Добавление)
Переписал index.php

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.     session_start();
  3. ?>
  4. <!DOCTYPE HTML>
  5. <html>
  6. <head>
  7.     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  8.     <title>Журнал регистрации</title>
  9. </head>
  10. <body>
  11.     <?PHP
  12.         echo $_SESSION['err'];
  13.         unset($_SESSION['err']);
  14.         $file='data.txt';
  15.         if (!file_exists($file)){
  16.         file_put_contents($file, NULL);
  17.         }
  18.         $file=array_reverse(file($file));
  19.         $all=sizeof($file);
  20.         for($i=0; $i<$all; $i++){
  21.             $str.=$file[$i].'^^';
  22.         }
  23.         $arr = explode('^^',$str);
  24.         $table='<table border="1">';
  25.         foreach($arr as $val){
  26.             $txt = explode('^',$val);
  27.             if ($txt[0]=='') break;
  28.             $table.='<tr><td width="105">'.$txt[0].'</td>';
  29.             $table.='<td width="88">'.$txt[1].'</td>';
  30.             $table.='<td width="193">'.$txt[2].'</td>';
  31.             $table.='<td width="368">'.$txt[3].'</td>';
  32.             $table.='<td width="193">'.$txt[4].'</td></tr>';
  33.         }
  34.         $table.='</table>';
  35.         echo $table;
  36.     ?>
  37.  
  38.     <form action="sort.php" method="post">
  39.         <table border="1">
  40.             <caption></caption>
  41.             <tr>
  42.                 <th>Выбор отдела</th>
  43.                 <th>Дата</th>
  44.                 <th>Ф.И.О.</th>
  45.                 <th>Цель поездки/Адрес</th>
  46.                 <th>Время отъезда/Приезда</th>
  47.             </tr>
  48.             <tr>
  49.                 <td>
  50.                     <select name="group">
  51.                         <option value="Отдел кадров">Отдел кадров</option>
  52.                         <option value="Отдел-1">Отдел-1</option>
  53.                         <option value="Отдел-2">Отдел-2</option>
  54.                     </select>
  55.                 </td>
  56.                 <td>
  57.                     <input type="text" name="date" value="<?=date('d.m.Y')?>" size="10" maxlength="10" />
  58.                 </td>
  59.                 <td>
  60.                     <input type="text" name="user" size="25" maxlength="30" />
  61.                 </td>
  62.                 <td>
  63.                     <input type="text" name="mission" size="50" maxlength="50" />
  64.                 </td>
  65.                 <td>
  66.                     <input type="text" name="time" value="<?=date('H:i')?>" size="25" maxlength="25" />
  67.                 </td>
  68.             </tr>
  69.         </table>
  70.         <input type="submit" value="Внести запись" />
  71.     </form>
  72. </body>
  73. </html>


Я так понимаю, что каждый вызов echo; замедляет выполнение скрипта?
 
 Top
LIME
Отправлено: 17 Апреля, 2014 - 15:04:22
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




шаблон это та разметка которая у тебя ниже php
обычно это подключается отдельным файлом(это очень упрощенно)
как минимум include
чтоб разделить логику и представление
подробнее объяснит гугл
MVC
(Добавление)
я же писал
убери все выводы из PHP
формируй переменные и выводи их в шаблоне
не мешай логику с отображением(представлением)
при дальнейшем росте проекта в твоем подходе возникнет нечитаемая каша из php и html
 
 Top
Строитель Модератор
Отправлено: 17 Апреля, 2014 - 15:07:43
Post Id



Участник


Покинул форум
Сообщений всего: 1581
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 74 раз(а)




LIME пишет:
шаблон это та разметка которая у тебя ниже php
обычно это подключается отдельным файлом(это очень упрощенно)
как минимум include
чтоб разделить логику и представление
подробнее объяснит гугл
MVC
(Добавление)
я же писал
убери все выводы из PHP
формируй переменные и выводи их в шаблоне
не мешай логику с отображением(представлением)
при дальнейшем росте проекта в твоем подходе возникнет нечитаемая каша из php и html


Я понял, благодарю Улыбка
(Добавление)
[quote=Строитель]
LIME пишет:
шаблон это та разметка которая у тебя ниже php
обычно это подключается отдельным файлом(это очень упрощенно)
как минимум include
чтоб разделить логику и представление
подробнее объяснит гугл
MVC
(Добавление)
я же писал
убери все выводы из PHP
формируй переменные и выводи их в шаблоне
не мешай логику с отображением(представлением)
при дальнейшем росте проекта в твоем подходе возникнет нечитаемая каша из php и html




А можете на примере этого кода показать, где надо сделать вывод? Тут два echo; их оба надо перенести в тело html ?

(Отредактировано автором: 17 Апреля, 2014 - 15:16:08)

 
 Top
LIME
Отправлено: 17 Апреля, 2014 - 15:15:22
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




ну да
вместо вывода присвой значение в переменную
например
echo $_SESSION['err'];
unset($_SESSION['err']);
делаем
PHP:
скопировать код в буфер обмена
  1.        if (isset($_SESSION['err'])){
  2.         $err = $_SESSION['err'];
  3. }else{
  4.         $err = 'no errors';
  5. }
  6.         unset($_SESSION['err']);

далее думаю понятно
(Добавление)
<?=$err?> в шаблоне где надо
таким образом получаем возможность выводить где хотим
менять место вывода
выводить более одного раза(например пагинация выше контента и ниже)
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB