Лістинг 6. 25. Сценарій stories.php - інтерфейс авторів для управління своїми статтями

<?php

include "include_fns.php";

session_register("auth_user");

if (!check_auth_user()) {

?>

<FORM ACTION="login.php" METHOD=POST><TABLE BORDER=0>

<TR><TD>Username</TD><TD><INPUT SIZE=16 NAME="username"></TD></TR>

<TR><TD>Password</TD><TD><INPUT SIZE=16 TYPE="PASSWORD"

NAME="password"></TD></TR></TABLE>

<INPUT TYPE=SUBMIT VALUE="Log in"></FORM>

<?php

}

else {

$conn = db_connect();

$w = get_writer_record($auth_user);

print "Welcome ".$w[full_name];

print " (<A HREF=\"logout.php\">Logout</A>)<p>";

$sql = "select * from stories where writer = '$auth_user'

order by created desc";

$result = mysql_query($sql, $conn);

print "Your stories: ";

print mysql_num_rows($result);

print " (<A HREF=\"story.php\">Add new</A>)<br><br>";

if (mysql_num_rows($result)) {

print "<TABLE><TR><TH>Headline</TH><TH>Page</TH>";

print "<TH>Created</TH><TH>Last modified</TH></TR>";

while ($qry = mysql_fetch_array($result)) {

print "<TR><TD>";

print $qry[headline];

print "</TD><TD>";

print $qry[page];

print "</TD><TD>";

print date("M d, H:i" $qry[created]);

print "</TD><TD>";

print date("M d, H:i" $qry[modified]);

print "</TD><TD>";

if ($qry[published])

print "[Published ".date("M d, H:i" $qry[published])."]";

else {

print "[<A HREF=\"story.php?story=".$qry[id]."\">edit</A>] ";

print"[<A HREF=\"delete_story.php?story=".$qry[id]."\">delete</A>]";

print"[<A HREF=\"keywords.php?story=".$qry[id]."\">keywords</A>]";

}

print "</TD></TR>";

}

print "</TABLE>";

}

}

?>

На першому етапі перевіряється, чи виконана аутентифікація користувача. Якщо немає, відображується лише форма вхідної реєстрації. Після входу автора в систему змінної сеансу $auth_user привласнюється значення. Використовувана тут аутентифікація не дуже надійна. У реальній ситуації необхідно забезпечити, аби аутентифікація користувачів виконувалася належним чином.

Форма вхідної реєстрації передає дані сценарію login.php, який порівнює ім'я користувача і пароль з відповідними значеннями бази даних. В разі успішності вхідної реєстрації користувачеві повертається попередня сторінка за допомогою значення $HTTP_REFERER. Це означає, що сценарій реєстрації може викликатися з будь-якої сторінки системи. Потім автор вітається по імені і надається можливість виходу з системи. Це посилання завжди відображується у верхній частині сторінки stories.php, що дозволяє легко вийти з системи у будь-який момент.

$w = get_writer_record($auth_user);

echo "Welcome ".$w[full_name];

echo " (<A HREF=\"logout.php\">Logout</A>)";

Функція get_writer_record() описана в бібліотеці db_fns.php і повертає масив полий таблиці автора на основі переданого імені користувача. Сценарій logout.php просто скидає значення змінної $auth_user.

SQL-запит вибирає всі статті автора, починаючи з доданих останнім часом:

select * from stories where writer = '$auth_user'

order by created desc

Для кожного запису, пов'язаного із статтею, зберігаються мітки часу додавання, модифікації і публікації. Коли додається нова стаття, міткам створення і модифікації привласнюється поточний системний час. Кожне подальша зміна статті викликатиме оновлення лише мітки модифікації.

Вся ця інформація виводиться у вікні статей спочатку за допомогою коду:

echo date("M d, H:i" $qry[created]);

потім:

echo date("M d, H:i" $qry[modified]);

і, нарешті:

if ($qry[published])

echo "[Published ".date("M d, H:i" $qry[published])."]";

else {

echo "[<A HREF=\"story.php?story=".$qry[id]."\">edit</A>]";

echo"[<A HREF=\"delete_story.php?story=".$qry[id]."\"> delete</A> ]";

echo "[<A HREF=\"keywords.php?story=".$qry[id]."\">keywords</A>]";}

Останній фрагмент відображує лише дату публікації, якщо вона має сенс. Інакше виводяться посилання для редагування або видалення статті, а також установки ключових слів пошукового механізму.

Сценарій введення або редагування статті міститься у файлі story.php.








Дата добавления: 2016-04-02; просмотров: 827;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.008 сек.