Лістинг 6. 26. Сценарій story.php служить для створення або редагування статті
<?
include "include_fns.php";
if (isset($story))
$s = get_story_record($story);
?>
<FORM ACTION="story_submit.php" METHOD=POST
ENCTYPE="multipart/form-data">
<INPUT TYPE=HIDDEN NAME="story" VALUE="<?php print $story;?>">
<INPUT TYPE=HIDDEN NAME="destination" VALUE="<? print $HTTP_REFERER;?>">
<TABLE><TR><TD ALIGN=CENTER>Headline<TD></TR>
<TR><TD><INPUT SIZE=80 NAME="headline"
VALUE="<? print $s[headline];?>"></TD>
</TR><TR><TD ALIGN=CENTER>Page<TD></TR><TR>
<TD ALIGN=CENTER><? print query_select("page", "select p.code,
p.description from pages p
writer_permissions w where p.code=w.page
and w.writer = '$auth_user'" $s[page]); ?>
</TD></TR><TR><TD ALIGN=CENTER>Story text (can contain HTML) </TD>
</TR><TR><TD><TEXTAREA COLS=80 ROWS=7 NAME="story_text"
WRAP=VIRTUAL><?php print $s[story_text];?></TEXTAREA>
</TD></TR><TR><TD ALIGN=CENTER>Or upload HTML file</TD></TR>
<TR><TD ALIGN=CENTER><INPUT TYPE=FILE NAME="html" SIZE=40></TD>
</TR><TR><TD ALIGN=CENTER>Picture</TD></TR>
<TR><TD ALIGN=CENTER><INPUT TYPE=FILE NAME="picture" SIZE=40></TD></TR>
<?php
if ($s[picture]) {
$size = getImageSize($s[picture]);
$width = $size[0];
$height = $size[1];
?>
<TR><TD ALIGN=CENTER><IMG SRC="<?php print $s[picture];?>"
WIDTH=<? print $width;?> HEIGHT=<?php print $height;?>>
</TD></TR>
<?php } ?>
<TR><TD ALIGN=CENTER><INPUT TYPE=SUBMIT VALUE="Submit"></TD></TR>
</TABLE></FORM>
Для додавання статей і їх редагування може використовуватися один і той же сценарій. Виконувана дія залежить від того, чи встановлено значення зміною $story при виклику сценарію.
if (isset($story))
$s = get_story_record($story);
Функція get_story_record() описана в db_fns.php. Вона повертає масив всіх полів таблиці статей для вказаного ідентифікатора статті. Якщо ідентифікатор не переданий, змінна $story має значення NULL, а змінна $s не містить елементів масиву.
<INPUT SIZE=80 NAME="headline" VALUE="<? echo $s[headline];?>">
Якщо значення змінної $story не встановлено, попередній фрагмент коду не створить значення з оператора РНР, тому поле введення заголовка буде порожнім. Коли значення змінної $story встановлено, вона містить текст заголовка для редагованої статті.
echo query_select("page", "select p.code, p.description
from pages p, writer_permissions w
where p.code = w.page and w.writer = ' $auth_user'", $s[page]); "
Функція query_select() описана в select_fns.php. Вона повертає HTML-код виведення списку SELECT на основі даного SQL-запроса. Перший параметр є атрибутом NAME для оператора SELECT. SQL-запит з другого параметра вибирає два стовпці, де перший є такою, що становить VALUE кожної опції, а другою слідує після дескриптора OPTION і є текстом, що відображується в списку. Третій параметр необов'язковий. Він додає атрибут SELECTED до опції, значення якої збігається з вказаним.
<INPUT TYPE=HIDDEN NAME="story" VALUE="<?echo $story;?>">
Тут створюється змінна-заповнювач шляхом установки нового значення для статті з переданого в змінній $story. Після передачі форми сценарій story_submit.php перевіряє, чи існує значення змінної $story, і генерує відповідно до цього SQL-оператор UPDATE або INSERT.
Код сценарію story_submit.php показаний в лістингу 6. 27.
Дата добавления: 2016-04-02; просмотров: 592;