Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Ответ 009 на задачу N 3
 
 автор: SoftTime   (04.02.2006 в 22:56)   письмо автору
 
 

Ответ 009 на задачу N 3.
С условиями задачи можно ознакомится по ссылке.
<?
// скрипт index.php к задаче N3 
// Ник Коляка

// пытаемся открыть файл data.txt
$file file("data.txt");
 if(!
$file)    // если файла data.txt нет или он есть, но пустой, выводим текущее дату и время
  
{
    
$year=date("Y");
    
$moth=date("m");
    
$day=date("d");
    
$hour=date("H");
    
$min=date("i");
  }
else           
//Если файл data.txt есть, то делаем из его данных массив
{
  foreach(
$file as $qk)
  { 
// разделяем ::
  
list($paah1,$paah2,$paah3,$paah4,$paah5) = explode("::"$qk); 
//присваеваем переменным значение
    
$year=$paah1;
    
$moth=$paah2;
    
$day=$paah3;
    
$hour=$paah4;
    
$min=$paah5;
  }
}

// выводим данные

?>
<form action=handler.php method=post>
 <table>
   <tr>
     <td>
  <input type=text name=year value=<? echo nl2br(htmlspecialchars(StripSlashes($year))) ?>><br> 
  <input type=text name=moth value=<? echo nl2br(htmlspecialchars(StripSlashes($moth))) ?>><br>
  <input type=text name=day value=<?  echo nl2br(htmlspecialchars(StripSlashes($day))) ?>><br>
  <input type=text name=hour value=<? echo nl2br(htmlspecialchars(StripSlashes($hour))) ?>><br>
  <input type=text name=min value=<?  echo nl2br(htmlspecialchars(StripSlashes($min))) ?>><br>
    </td>
    <td>
  Год     <br>
  Месяц   <br>
  День    <br>
  Час(ов) <br>
  Минут(а)<br>
   </td>
  </tr>
 <tr><td>
  <input type=submit value="Записать"> 
 </td></tr>
 </table>

=====================================================
<?php 

//скрипт handler.php ( обработчик ) к задаче N3
// Ник Коляка

// считываем переданные данные 
$pah1 substr($_POST['year'],0,4); 
$pah2 substr($_POST['moth'],0,2); 
$pah3 substr($_POST['day'],0,2); 
$pah4 substr($_POST['hour'],0,2); 
$pah5 substr($_POST['min'],0,2); 
// проверяем на наличие данных, и на правельность ввода (частичную)
if(!empty($pah1) & !empty($pah2) & !empty($pah3) & !empty($pah4) & !empty($pah5)
    & !
preg_match("/[a-zA-Zа-яА-Я]/",$pah1) & !preg_match("/[a-zA-Zа-яА-Я]/",$pah2)
    & !
preg_match("/[a-zA-Zа-яА-Я]/",$pah3) & !preg_match("/[a-zA-Zа-яА-Я]/",$pah4)
    & !
preg_match("/[a-zA-Zа-яА-Я]/",$pah5))
//если все в наличии и правельно то открываем файл для записи если его нет то создаем
{
$file fopen("data.txt""w");  
// записываем данные в начало файла 
fwrite($file"$pah1::$pah2::$pah3::$pah4::$pah5"); 
// переходим на index.php 
header("location: index.php"); 
}
//если пользователь не ввел данные или ввел не правельно то выводим сообщение об ошибке
else
{
echo 
"Вы не ввели данные или ввели их неправельно";
exit();
}
?>


http://www.softtime.ru/info/task.php?id_article=73

   
 
 автор: cheops   (05.02.2006 в 23:46)   письмо автору
 
   для: SoftTime   (04.02.2006 в 22:56)
 

Очень компактный код, однако при не осущетсвляется проверка существования файла - мне выдал предупреждение
Warning: file(data.txt) [function.file]: failed to open stream: No such file or directory in d:\main\test2\index.php on line 6

Недостатки заключаются в том, что не используются выпадающие списки, дата хранится в оригинальном формате, вместо промышленного стандарта UNIXSTAMP - числа секунд прошедших с 1 января 1970 года.

   
 
 автор: Artem S.   (06.02.2006 в 09:37)   письмо автору
 
   для: SoftTime   (04.02.2006 в 22:56)
 

Ничего личного, это только мое скромное мнение. Вы вправе не согласится с ним, и я тоже могу ошибаться.

1.
// разделяем ::
list($paah1,$paah2,$paah3,$paah4,$paah5) = explode("::", $qk);
//присваеваем переменным значение
$year=$paah1;
$moth=$paah2;
$day=$paah3;
$hour=$paah4;
$min=$paah5;
Не понятно использование "левых" переменных.
2. nl2br(htmlspecialchars(StripSlashes($year)))
Мда... а ведь это просто число, и оно пришло не от пользователя а из файла.
3. !preg_match("/[a-zA-Zа-яА-Я]/"
Не очень понял, у нас же число? Кроме букв можно и другую гадость повводить.
4. & - это битовая операция, && логическая
5. И снова, файл не закрывается, это не обязательно но рекомендуется.

   
 
 автор: PantiL   (06.02.2006 в 22:13)   письмо автору
 
   для: Artem S.   (06.02.2006 в 09:37)
 

Ответ 009
Работает с ошибками - нет проверки существования файла
Если при вводе в начале каждой строки поставить пробелы то получим файл
    ::  ::  ::  ::  
вот такого вида

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования