|
|
|
| Ответ 008 на задачу N 3.
С условиями задачи можно ознакомится по ссылке.
<?php
// скрипт index.php к задаче #3
$filename = "date.txt";
$date = '';
if (file_exists($filename)) {
// дата из файла
$date = file_get_contents($filename);
}
if (empty($date)) {
// файла нет или он поврежден
// берем текущую дату
$date = time();
}
// Функция подставляет значение selected
// для выбранного элемента.
function selectFiled($value, $label, $selected) {
$select = ($value == $selected) ? "selected" : "";
echo "<option $select value="$value">$label</option> ";
}
$hour = date("H", $date);
$min = date("i", $date);
$day = date("d", $date);
$month = date("m", $date);
$year = date("Y", $date);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Task#3</title>
<style type="text/css">
BOBY, HTML {
margin: 20px;
padding: 20px;
}
INPUT[type=text] {
text-align: right;
}
</style>
</head>
<body>
<form action="handler.php" method="post">
Когда подать чай?<br />
В <input type="text" name="hour" value="<?=$hour?>" size="2" /> :
<input type="text" name="min" value="<?=$min?>" size="2" />
<input type="text" name="day" value="<?=$day?>" size="2" />
<select name="month">
<?php selectFiled(1, "Января", $month)?>
<?php selectFiled(2, "Февраля", $month)?>
<?php selectFiled(3, "Марта", $month)?>
<?php selectFiled(4, "Апреля", $month)?>
<?php selectFiled(5, "Мая", $month)?>
<?php selectFiled(6, "Июня", $month)?>
<?php selectFiled(7, "Июля", $month)?>
<?php selectFiled(8, "Августа", $month)?>
<?php selectFiled(9, "Сентебря", $month)?>
<?php selectFiled(10, "Октября", $month)?>
<?php selectFiled(11, "Ноября", $month)?>
<?php selectFiled(12, "Декабря", $month)?>
</select>
<input type="text" name="year" value="<?=$year?>" size="4" />го года.
<input type="submit" name="submit" value="Подать" />
</form>
</body>
</html>
<!-- end -->
|
<?php
// скрипт handler.php
$filename = "date.txt";
// форма была отправленна
if (isset($_POST['submit'])) {
$hour = (int)$_POST['hour'];
$min = (int)$_POST['min'];
$day = (int)$_POST['day'];
$month = (int)$_POST['month'];
$year = (int)$_POST['year'];
// созаем метку времини из полученных данных
$date = mktime($hour, $min, 0, $month, $day, $year);
// сохраняем в файл
$fp = fopen($filename, "w");
fwrite($fp, $date);
fclose($fp);
header("Location: index.php");
}
?>
|
http://www.softtime.ru/info/task.php?id_article=73 | |
|
|
|
|
|
|
|
для: SoftTime
(04.02.2006 в 23:18)
| | Очень компактный скрипт, храние осущетсвляется храние в UNIXSTAMP, даже имеется один выпадающий список :), однако при проверки скрипта выдаёт
Parse error: syntax error, unexpected T_VARIABLE, expecting ',' or ';' in d:\main\test2\index.php on line 19
|
это очень плохо, например, если бы я брал вас на работу, я после этого как бы не захотел бы вас получить не смог бы нанять. | |
|
|
|
|
|
|
|
для: cheops
(06.02.2006 в 00:25)
| | Это провокация =)
Код был такой
echo "<option $select value=\"$value\">$label</option>\n";
|
Может глюк форума? Видел что не я один такой. | |
|
|
|
|
|
|
|
для: Artem S.
(06.02.2006 в 00:45)
| | Хм... да пожалуй я знаю где эта провокация зараты - к следующей задаче исправим. | |
|
|
|
|
|
|
|
для: SoftTime
(04.02.2006 в 23:18)
| | Минусы:
- не выдается никакого придупреждения, сам догадывайся добавилась дата правильно или нет.
- вся корректировка сводиться к приведению к int, чуть что сразу "0", не есть хорошо.
- можно ввести 31 февраля, ошибки не будет, но и пользователь ничего не заподозрит :)
- по внутреним причинам запись в файл может оказаться не удачной о чем будет сообщено пользователю через Warning и перенаправление не состоиться. | |
|
|
|
|
|
|
|
для: Artem S.
(06.02.2006 в 00:51)
| | Ответ 008
Parse error: syntax error, unexpected T_VARIABLE, expecting ',' or ';' in x:\home\uch.ru\www\index.php on line 19
Вот ошибка - echo "<option $select value="$value">$label</option>";
Надо так - echo "<option $select value=\"$value\">$label</option>";
Кавычки не забэкслешены .
|
Исправил - работает нормально | |
|
|
|
|
|
|
|
для: PantiL
(06.02.2006 в 22:14)
| | Кавычики в исходниках были - это мой ляп при автоматическом размещении задач - они съелись :((( | |
|
|
|