Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Подраздел PHP. Спец-выпуск. ФОРУМ


Информационный Канал Subscribe.Ru


Как сделать сайт
 
 

Как создать сайт. Рассылка для чайников

 

Как сделать сайт

Как раскрутить

Где разместить

Как заработать

Способ гиперраскрутки

Редактор  рассылки  Aleksander Jaros

Сайт поддержки

 

Подраздел PHP

Спец-выпуск

Ведущий раздела: P@shOK

В этом номере:

 

ФОРУМ.

 
 

Здравствуйте, уважаемые.
Сегодняшний выпуск - Спец-выпуск. Отныне в рассылке моего подраздела будут выходить спец-выпуски. В них я буду публиковать большие, в смысле значения, скрипты, присланные читателя или требуемые Вами (только по многочисленным просьбам!). Публиковаться они будут без особых пояснений.
Сегодняшний скрипт прислал Александр, за что ему Большое Спасибо. Надейсь что остальные последуют его примеру.

И так простейший форум, который может обеспечить интерактивное общение между посетителями небольшого сайта. Форум не требует БД, работает на текстовых файлах, прост в установке и администрировании.
Пример использования подобного скрипта Вы можете увидеть на сайте автора: http://minifantasy.net/

Данный скрипт состоит изи пяти файлов: add_to_tema.php, html.php, index.php, look_tema.php, add_tems.php сохранять их нужно с такими же именами!

  • файл index.php
    <html>
    <head>
    <style>
    input, textarea, select
    {
     background-color: Aqua;
     font-family : Verdana, Geneva, Arial, Helvetica, sans-serif;
     font-weight : bold;
     color : #0000ff;
     }
    </style>
     <title>Темы обсуждения</title>
    <?php
    if(file_exists("tems")){ // если true, то папка существует, можно с ней работать
    if(file_exists("tems/t.txt")) //то же о файле
    {
    $fp=@fopen("tems/t.txt","r+");//читаем тему
    if (!$fp) {      //проверка загрузки файла
    echo "<center>Не могу открыть файл <b>tems/t.txt</b><br><br>
    <a href='index.html'><H4>Назад</h4></a>";
    exit;
    }
    //flock($fp,LOCK_EX); // заблокируем файл
    $t=@file("tems/t.txt"); //заносим темы в массив
    if(!$t)$t[0] = "Нет тем";
    //flock($fp,LOCK_UN); // разблокируем файл
    fclose($fp);
    }
    }else{
    $t[0] = "Нет тем";
    }
    ?>
    </head>
    <body>
    <?
    include "html.php";
    show_html();
    ?>
    <H3><font face="verdana" color="#0000ff">
    <?php if($t[0]!="Нет тем") echo "Темы обсуждения, их ".count($t)."<H4>
    <font face='verdana' color='#0000ff'>Для просмотра темы, кликните по ней, или начните новую
    </h4>";else echo "Тем обсуждения нет"; ?></h3>
    </td></tr><tr><td align=center><br>
    <form>
    <select name="tems" size=<?php if(count($t)>5){ echo "5";}else{echo count($t);} ?> 
    onClick="top.location.href = this.options[this.selectedIndex].value">
    <?php
    for ($i=0; $i<count($t); $i++){
    $t1[$i]=$i."&m=$t[$i]'>".$t[$i]; //две переменных передаем номер темы и название темы
    }
    arsort($t1); // делаем обратный порядок для массива
    foreach ($t1 as $line)
    echo "<option value='look_tema.php?n=$line";
    ?>
        </select>
    </form>
    </td></tr>
    <tr><td align=center><br>
    <h3><font face="verdana" color="#0000ff">Новая тема - давайте обсудим следующее:</h3>
    </td></tr>
    <tr><td align=center>
    <form action="add_tems.php">
    <b><font face="verdana" color="#0000ff">Тема (до 50 зн.) <input name="tema" type="text" 
    SIZE=80 MAXLENGTH=55>
    </td></tr></table>
    <table BGCOLOR="cccccc" width="100%" border="1"><tr><td align=right>
    <b><font face="verdana" color="#0000ff">Имя (до 30 зн.) <input name="nam" type="text" 
    SIZE=35 MAXLENGTH=35></td>
    <td align=left><b><font face="verdana" color="#0000ff">Email <input name="mail" 
    size=35 type="text"></td>
    </tr></table>
    <table BGCOLOR="cccccc" width="100%" border="1"><tr><td align=center>
    <b><font face="verdana" color="#0000ff">Текст базового сообщения (до 900 зн.)<br>
    <textarea name="mes" rows=10 cols=60 ></textarea>
    </td><tr><td align=center><br>
    <input name="N" type="hidden" value="<?php echo count($t);?>">
    <input type="reset" value="Очистить">
    <input type="submit" value="Отправить в форум">
    </form>
    </td></tr></table>
    </body>
    </html>
  • файл add_to_tema.php
    <html>
    <head>
      <title>Добавление к теме</title>
    </head>
    <body>
    <?php
    if ((isset($_GET['nam']))&&($_GET['nam']!=""))$tn=($_GET['nam']);else $tn='Mister X';
    if ((isset($_GET['mail']))&&($_GET['mail']!=""))$te=($_GET['mail']);else $te='не введен';
    if ((isset($_GET['N']))&&($_GET['N']!=""))$N=($_GET['N']);else{
    echo "<center>Неопознанная ошибка!Попробуйте ещё раз!<br><br><a href='index.php'>
    <H4>Назад</h4></a>";//номер должен быть
     exit;
    }
    if ((isset($_GET['mes']))&&($_GET['mes']!=""))$t2=($_GET['mes']);else{
    echo "<table cellspacing='5' cellpadding='5' width='100%' height='100%'><tr><td><center>";
    echo "<H3>Вы не ввели сообщение.</h3>";
    echo "<br><INPUT TYPE='button' VALUE='НАЗАД' onClick='history.go(-1)'></td></tr></table>";
    exit;
    }
    $dat = date("d m y H:i");
    $folder = "tema".$N;
    if(file_exists("$folder/mn.txt"))
    {
    $fp=@fopen("$folder/mn.txt","r+");//читаем счеичик сообщений в теме и увеличиваем его на 1
    if (!$fp) {      //проверка загрузки файла
    echo "<center>Не могу открыть файл <b>$folder/mn.txt</b><br><br><a href='index.php'>
    <H4>Назад</h4></a>";exit;
    }
    //flock($fp,LOCK_EX); // заблокируем файл
    $mn=file("$folder/mn.txt");
    $mn[0]++;
    fputs($fp,$mn[0]);
    //flock($fp,LOCK_UN); // разблокируем файл
    fclose($fp);
    
    $fp = @fopen ("$folder/m.txt", "a+"); //записываем добавление в текущую тему
    if (!$fp) {      //проверка загрузки файла
    echo "<center>Не могу открыть файл <b>$folder/m.txt</b><br><br><a href='index.php'>
    <H4>Назад</h4></a>";exit;
    }
    //flock($fp,LOCK_EX); // заблокируем файл
    fwrite ($fp, $mn[0].". ".$dat." пишет ".$tn." его Email ".$te."\n".$t2."\n\n");
    //flock($fp,LOCK_UN); // разблокируем файл
    fclose ($fp);
    echo "<table cellspacing='5' cellpadding='5' width='100%' height='100%'><tr><td><center>";
    echo "<H3>Ваше сообщение успешно загружено.</h3>";
    echo "<br><a href='index.php'><H4>НА ФОРУМ</h4></a></td></tr></table>";
    }else{
    echo "<center>Неопознанная ошибка!Попробуйте ещё раз!<br><br><a href='index.php'>
    <H4>Назад</h4></a>";//этот файл должен существовать, если есть папка
    }
    ?>
    </body>
    </html>
    
  • файл add_tems.php
    <html>
    <head>
      <title>Новая тема</title>
    </head>
    <body>
    <?php
    if ((isset($_GET['tema']))&&($_GET['tema']!=""))$tema=$_GET['tema'];else{
    echo "<table cellspacing='5' cellpadding='5' width='100%' height='100%'><tr><td><center>";
    echo "<H3>Не введена тема!</h3>";
    echo "<br><INPUT TYPE='button' VALUE='НАЗАД' onClick='history.go(-1)'></td></tr></table>";
    exit;
    }
    if ((isset($_GET['nam']))&&($_GET['nam']!=""))$tn=$_GET['nam'];else $tn='MisterX';
    if ((isset($_GET['mail']))&&($_GET['mail']!=""))$te=($_GET['mail']);else $te='не введён';
    if ((isset($_GET['mes']))&&($_GET['mes']!=""))$t2=($_GET['mes']);else {
    echo "<table cellspacing='5' cellpadding='5' width='100%' height='100%'><tr><td><center>";
    echo "<H3>Не введено сообщение!</h3>";
    echo "<br><INPUT TYPE='button' VALUE='НАЗАД' onClick='history.go(-1)'></td></tr></table>";
    exit;
    }
    if ((isset($_GET['N']))&&($_GET['N']!=""))$N=($_GET['N']);else{
    echo "<center>Неопознанная ошибка!Попробуйте ещё раз!<br><br><a href='index.php'>
    <H4>Назад</h4></a>";//номер должен быть
    exit;
    }
    $dat = date("d m y H:i");
    if(file_exists("tems"))
    { // если true, то папка существует, можно с ней работать
    $fp = @fopen ("tems/t.txt", "a+");// записываем название текущей темы
    if (!$fp) {      //проверка загрузки файла
    echo "<center>Не могу открыть файл <b>tems/t.txt</b><br><br><a href='index.php'>
    <H4>Назад</h4></a>";exit;
    }
    //flock($fp,LOCK_EX); // заблокируем файл
    fwrite ($fp, $tema."\n");
    //flock($fp,LOCK_UN); // разблокируем файл
    fclose ($fp);
    
    $N++; //увеличиваем количество тем
    $folder = "tema".$N;//формируем папку текущей темы
    if (!file_exists($folder)){ //если нет папки создаем ее
    mkdir($folder,0777);
    }
    $fp = @fopen("$folder/mn.txt","w+");//формируем счетчик текущей темы
    if (!$fp) {      //проверка загрузки файла
    echo "<center>Не могу открыть файл <b>$folder/mn.txt</b><br><br><a href='index.php'>
    <H4>Назад</h4></a>";exit;
    }
    //flock($fp,LOCK_EX); // заблокируем файл
    fputs($fp, "1");
    //flock($fp,LOCK_UN); // разблокируем файл
    fclose($fp);
    
    $fp = @fopen ("$folder/m.txt", "w+"); //записываем текст текущей темы
    if (!$fp) {      //проверка загрузки файла
    echo "<center>Не могу открыть файл <b>$folder/1.as</b><br><br><a href='index.php'>
    <H4>Назад</h4></a>";exit;
    }
    //flock($fp,LOCK_EX); // заблокируем файл
    fwrite ($fp, "1. ".$dat." пишет ".$tn." его Email ".$te."\n".$t2."\n\n");
    //flock($fp,LOCK_UN); // разблокируем файл
    fclose ($fp);
    
    echo "<table cellspacing='5' cellpadding='5' width='100%' height='100%'><tr><td><center>";
    echo "<H3>Ваше сообщение успешно загружено.</h3>";
    echo "<br><br><a href='index.php'><H4>НА ФОРУМ</h4></a></td></tr></table>";
    }// а если папки еще нет сождаем все сначала
    else{
    if (!file_exists("tems")){ //если нет папки создаем ее
    mkdir("tems",0777);
    }
    $fp = @fopen ("tems/t.txt", "w+"); // записываем название темы в папку
    
    if (!$fp) {      //проверка загрузки файла
    echo "<center>Не могу открыть файл <b>tems/t.txt</b><br><br><a href='index.php'>
    <H4>Назад</h4></a>";exit;
    }
    //flock($fp,LOCK_EX); // заблокируем файл
    fwrite ($fp, $tema."\n");
    //flock($fp,LOCK_UN); // разблокируем файл
    fclose ($fp);
    if (!file_exists("tema1")){ //если нет папки создаем ее
    mkdir("tema1",0777);
    }
    $fp = @fopen("tema1/mn.txt","w+");//формируем счетчик количества сообщений 1-ой темы
    if (!$fp) {      //проверка загрузки файла
    echo "<center>Не могу открыть файл <b>tema1/mn.txt</b><br><br><a href='index.php'>
    <H4>Назад</h4></a>";exit;
    }
    //flock($fp,LOCK_EX); // заблокируем файл
    fputs($fp, "1");
    //flock($fp,LOCK_UN); // разблокируем файл
    fclose($fp);
    
    $fp = @fopen ("tema1/m.txt", "w+");// записываем текст 1-ой темы
    if (!$fp) {      //проверка загрузки файла
    echo "<center>Не могу открыть файл <b>tema1/m.txt</b><br><br><a href='index.php'>
    <H4>Назад</h4></a>";exit;
    }
    //flock($fp,LOCK_EX); // заблокируем файл
    fwrite ($fp, "1. ".$dat." пишет ".$tn." его Email ".$te."\n".$t2."\n\n");
    //flock($fp,LOCK_UN); // разблокируем файл
    fclose ($fp);
    
    echo "<table cellspacing='5' cellpadding='5' width='100%' height='100%'><tr><td><center>";
    echo "<H3>Ваше сообщение успешно загружено!</h3>";
    echo "<br><a href='index.php'><H4>НА ФОРУМ</h4></a></td></tr></table>";
    }
    ?>
    </body>
    </html>
    
  • файл look_tema.php
    <html>
    <head>
    <style>
    input, textarea
    {
     background-color: #ffffcc;
     font-family : Verdana, Geneva, Arial, Helvetica, sans-serif;
     font-weight : bold;
     color : #0000ff;
     }
    </style>
     <title>Тема</title>
    </head>
    <body>
    <?php
    if($m!="Нет тем"){
    include "html.php";
    show_html();
    }
    //Вводим номер темы и обрабатываем ошибку
    if ((isset($_GET['n']))&&($_GET['n']!=""))$n=($_GET['n']+1);else {
    echo "<table cellspacing='5' cellpadding='5' width='100%' height='100%'><tr><td><center>";
    echo "<H3>Неопознаная ошибка!Попробуйте еще раз!</h3>";
    echo "<br><a href='index.php'><H4>Назад</h4></a></td></tr></table>";
    exit;
    }
    //Вводим название темы и обрабатываем ошибку
    if (((isset($_GET['m']))&&($_GET['m']!=""))&&($_GET['m']!="Нет тем"))
    $m="<H3><u>Тема:</u> ".$_GET['m']."</h3>";else {
    echo "<table cellspacing='5' cellpadding='5' width='100%' height='100%'><tr><td><center>";
    echo "<H3>Нет тем!</h3>";
    echo "<INPUT TYPE='button' VALUE='НАЗАД' onClick='history.go(-1)'></td></tr></table>";
    exit;
    }
    echo "<font face='verdana' color='#0000ff'>".$m;
    ?>
    </td></tr>
    <tr><td align=center><br>
    <h4><font face="verdana" color="#0000ff">
    <?php
    $fp = @fopen("tema".$n."/mn.txt","r+");//считываем количество сообщений в теме
    if (!$fp) {//проверка загрузки файла
    echo "<center>Пустая тема.Не могу открыть файл <b>tema.$n./mn.txt</b><br><br>
    <a href='index.php'>
    <H4>Назад</h4></a>";exit;
    }
    //flock($fp,LOCK_EX); // заблокируем файл
    $tn = file("tema".$n."/mn.txt"); //количество сообщений
    //flock($fp,LOCK_UN); // разблокируем файл
    fclose($fp);
    echo "Есть такие мнения по этой теме, их ".$tn[0];
    ?></h4></td></tr></table>
    <table BGCOLOR="ffffcc" width="100%" border="3" CELLPADDING=15><tr><td>
    <?php
    $fp = @fopen("tema".$n."/m.txt","r+");
    if (!$fp) {//проверка загрузки файла
    echo "<center>Пустая тема.Не могу открыть файл <b>tema.$n./m.txt</b><br><br>
    <a href='index.php'>
    <H4>Назад</h4></a>";exit;
    }
    //flock($fp,LOCK_EX); // заблокируем файл
    $t = file("tema".$n."/m.txt");
    //flock($fp,LOCK_UN); // разблокируем файл
    fclose($fp);
    foreach ($t as $line)
    echo "<font face='verdana' color='#0000ff'>".$line."<br>";
    ?>
    </td></tr></table>
    <table BGCOLOR="cccccc" width="100%" border="1"><tr><td align=center><br>
    <form action="index.php">
    <H4><input type="submit" value="Вернуться к темам">
    <font face="verdana" color="#0000ff">или ниже добавить к этой теме:</h4>
    </form>
    </td></tr></table>
    <table BGCOLOR="cccccc" width="100%" border="1"><tr><td align=right>
    <form action="add_to_tema.php">
    <b><font face="verdana" color="#0000ff">Имя (до 30 зн.) 
    <input name="nam" type="text" SIZE=35 MAXLENGTH=35></td></tr?
    <tr><td align=left><b><font face="verdana" color="#0000ff">Email 
    <input name="mail" type="text"></td>
    </tr></table>
    <table BGCOLOR="cccccc" width="100%" border="1"><tr><td align=center>
    <b><font face="verdana" color="#0000ff">Добавление к этой теме (до 900 зн.)<br>
    <textarea name="mes" rows=10 cols=60 ></textarea>
    </td><tr><td align=center><br>
    <input name="N" type="hidden" value="<?php echo $n;?>">
    <input type="reset" value="Очистить">
    <input type="submit" value="Отправить в форум">
    </form>
    </td></tr></table>
    </body>
    </html>
    
  • файл html.php
    <?
    function show_html(){
    ?>
    <table BGCOLOR="cccccc" width="100%" border="1"><tr>
    <td width="90%" align=center><b>
    <font face="verdana" color="#ff0000">НАЗВАНИЕ ФОРУМА</td>
    <td align=center>
    <span style="font-size: 13pt; font-weight: 700; font-style: italic; color: red">
    <a href="#">К сайту</a></span>
    </td></tr></table>
    <table BGCOLOR="cccccc" width="100%" border="1"><tr>
    <td align=center><br>
    <?
    }
    ?>
    
ОТ АВТОРА
Установка.
  1. Откройте в любом редакторе (можно в блокноте) файл html.php и вместо слов НАЗВАНИЕ ФОРУМА введите Ваше название ФОРУМА.
  2. В ссылке href замените # на путь к главной странице Вашего сайта из того места, где будет установлен Ваш ФОРУМ.
  3. Сохраните изменения.
  4. Установите папку forum с файлами: index.php, add_tems.php, html.php, add_to_tema.php, look_tema.php на сервер, где поддерживается PHP. В принципе, она может находиться на любом сервере, не обязательно на том же, где Ваш сайт.
  5. С Вашего сайта ссылка на форум должна содержать полный путь к файлу index.php в папке forum
Администрирование.
  1. В бесплатной версии администрирование осуществляется через FTP клиент.
  2. При удалении темы #(порядковый номер темы) следует в папке forum, во-первых, удалить папку tema# вместе с её файлами, и во-вторых, #-ю запись в файле t.txt из папки tems
  3. Для удаления/редактирования записей внутри темы# нужно в FTP-клиенте редактировать файлы m.txt и mn.txt из папки tema#, в файле mn.txt нужно установить количество записей в теме#, оставшееся после редактирования.

В этом формате ФОРУМ бесплатен и работоспособен.
Просьба для использующих написать о своем мнении (! никаких вопросов) о ФОРУМЕ по адресу: acherny@mail.ru
Желаю успехов.
Платный сервис от $3 - консультации, адаптация к версиям PHP, поставка скрипта администрирования через HTTP(браузер), изменение и дополнение дизайна интерфейса и пр.
Адрес: acherny@mail.ru

 Жду ваши предложения, пожелания, замечания на pashok@city-e.ru.

 

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

Рассылки Subscribe.Ru
Как создать сайт. Рассылка для чайников.

Все предыдущие выпуски рассылки находятся в Архиве.

Архив рассылки.

 


Lbn Best


http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное