Skip to content
La2Base
Home
DownloadsWikiForumFAQ
Search
ruen
Sign up Login
HomeFilesWikiLogin
  • Home
  • Downloads
  • Wiki
  • FAQ
  • Contact Us
  • About
  • Rules
  • Privacy
  • Terms of Service

© 2026 la2base.com · All rights reserved

ruen
Forum/Web обвязка/ЧерезвЫчайная ситуаЦия! [help-web]
Search

ЧерезвЫчайная ситуаЦия! [help-web]

4 replies123 viewsCurrently viewing: 1
Т
тимс

User

Бывалый

Posts: 199

На форуме с: 07/10/2008

Репутация: +6

Рейтинг: 0

· 08/21/2009, 12:21 AM

У меня возник такой вопроос, как на созданную страницу сайта не на все страницы, а только на одну, дапустим эта страраница в навигации называется "Розыгрыш".
Переходим на эту страничку, и мне надо чтобы на ней можно было коментировать...
Тоесть может кто мне дать целый код чтоб вписать в эту страницу и все работало ?
Помогите, добрые люди, пожалуйста, очень нужно, я так и не могу найти не где как это сделать, давно искал нашел, а там не то.....
Он вроде ставился, но не комментировал, а теперь я вообще не какой найти не могу!
Буду очень благодарен за помощь и милосердие! Спасибо!

0
?
????

User

Участник

Posts: 90

На форуме с: 02/27/2007

Репутация: +92

Рейтинг: 0

· 08/21/2009, 01:09 PM

Вот, пробуй, разбирайся, можть поможет!
Я сам не пробовал и не разбирался, так что работает или нет, а если работает, то насколько хорошо - ответить немогу!

Раскрывающийся текст

Скрипт комментариев [TXT].
Источник: coding.dyn.ee


Вот захотелось написать свою статейку, про что нибудь связанное с PHP. Думаю, вам будет очень интересно узнать, как сделать самую простую систему комментариев с использованием под базу данных всего лишь одного текстового файла.

И так, начнём с самого простого, а если точнее сказать с самой идеи. Идея очень проста, как и все идеи. База данных будет иметь следующий вид:

id date name e-mail web ip
comments

Надеюсь здесь всё понятно, для не понятливых объясняю, что в файле будет шесть колонок, разделяются они клавишей "tab" и каждый новый комментарий будет писаться выше предыдущего.

Всегда нужно помнить – чем безопасней скрипт и чем больше в скрипте с умом продуманных "фитчей", тем ценнее скрипт!

Например, нам нужно будет сделать так, если у человека нет сайта, то мы выводим на экран пустую строку, а если есть то выводим адрес. Ещё пример, если человек написал в строке сайта www.my_site.com, то нужно дописать в начале http:// что бы ссылка работала. Если её не будет, то ссылка будет плохой, и выскачет ошиПка. Надеюсь, вы это тоже поняли.

Теперь приступим к самому главному – написанию скрипта.

Если вы впервой столкнулись с PHP, то вы, скорее всего, не поймёте в чём дело, но тут я постараюсь вам объяснить что к чему. Перед моими комментариями будут стоять вот такие вот слеши «//». И так поехали.

Первая часть это будет запись, проверка на всякие недоброжелательные знаки, кукисы и т.д., а вот и сам код:

<?
// файл который будем использовать под базу данных
$comfile = "file.txt";

// Запись куки имя и e-mail, хранить до 1.01.2003
if($name != "") {
setcookie("name", "$name", mktime(0,0,0,1,1,2003));
}
if($email != "") {
setcookie("email", "$email", mktime(0,0,0,1,1,2003));
}
if($web != "") {
setcookie("web", "$web", mktime(0,0,0,1,1,2003));
}

if(id != "") {
// Проверка на "отправить" и выведение ошибок, если таковые есть
if($submit == 'отправить') {
if($name == "") {
$error1 = "Пожалуйста впишите имя.<hr>";
}
if($comments == "") {
$error2 = "Пожалуйста впишите коментарии.<hr>";
}
}

// проверка указанны ли комментарии и имя
if ($name != "" and $comments != "" and $id != "") {

// Замена недоброжелательных знаков в имени, емайле, комментариях и номере комемментариев
$name = ereg_replace("\n", "", $name);
$name = ereg_replace("\t", "", $name);
$name = ereg_replace("<", "<", $name);
$name = ereg_replace(">", ">", $name);
$email = ereg_replace("\n", "", $email);
$email = ereg_replace("\t", "", $email);
$email = ereg_replace("<", "<", $email);
$email = ereg_replace(">", ">", $email);
$id = ereg_replace("\n", "", $id);
$id = ereg_replace("\t", "", $id);
$id = ereg_replace("<", "<", $id);
$id = ereg_replace(">", ">", $id);
$web = ereg_replace("<", "<", $web);
$web = ereg_replace(">", ">", $web);
$web = ereg_replace("\t", " ", $web);
$web = ereg_replace("\n", "", $web);
$comments = ereg_replace("<", "<", $comments);
$comments = ereg_replace(">", ">", $comments);
$comments = ereg_replace("\n", "<br>", $comments);
$comments = ereg_replace("\t", " ", $comments);

// Чтение из файла старых записей, если нету файла, то создаём и считываем пустую строку
if(file_exists($comfile)) {
$read_old = fopen($comfile, "r");
$old = fread($read_old, filesize($comfile));
fclose($read_old);
} else {
$read_old = fopen($comfile, "w");
$old = "";
fclose($read_old);
}

// Настройка даты
$date = date("j.m.Y");

// Вычисление есть ли ип проходимый через cache, если нет, то просто ип
if($HTTP_X_FORWARDED_FOR=="") {
$ip = $REMOTE_ADDR;
} else {
$ip = $HTTP_X_FORWARDED_FOR;
}

// Устанавливаем вид записи в базу данных
$text = "$id\t$name\t$date\t$email\t$web\t$ip\t$comments\n";
$text .= "$old";

// Проверка максимального колличества слов
// напротив $no_of_words вставте максимальное колличество слов
$no_of_words = 100;
$words_array = split(" ", $comments, $no_of_words++);
if(count($words_array) <= $no_of_words) {
$fp = fopen($comfile, "w");
fputs($fp, $text);
fclose($fp);
} else {
$error3 = "<b>>> Напишите чуть меньше, слишком много слов.</b><hr>";
}

} // отправить
} else {
$error4 = "Комментарии для пустого значения id нельзя слать.";
} // Если id это пустое значение.
?>

Зетем делаем форму, откуда будут отправляться данные:

<table border='0' cellspacing='4' cellpadding='0' width='100%'>
<tr><form method='post' action='demo.php?id=<? echo $id; ?>'><td>
имя : <input type='text' name='name' value='<? echo $HTTP_COOKIE_VARS["name"]; ?>' style="width=70">
: мыло : <input type='text' name='email' value='<? echo $HTTP_COOKIE_VARS["email"]; ?>' style="width=100">
: сайт : <input type='text' name='web' value='<? echo $HTTP_COOKIE_VARS["web"]; ?>' style="width=169"><br>
<textarea name="comments" style="height=60; width=480"></textarea><br>
<input style="cursor:hand" type="submit" name="submit" value="отправить">
<hr size=1 color=#1d2f49>

А теперь делаем вывод комментариев:

<?

// Вывод ошибок
echo "$error1$error2$error3$error4</td></tr>";

//открываем файл и считываем его
$file = @file($comfile);

for ($i=0; $i<count($file); $i++) {

// Разделяем строку на столбцы
$row = explode("\t",$file[$i]);
list($ida, $namea, $datea, $emaila, $weba, $ipa, $commentsa) = $row;
// Определям, принадлежит ли эта комментса к этой серии комментариев
if($ida == $id) {

// Если в строке email нету @, то не выводим емайл
if(eregi("@", $emaila)) {
$emaila = "<a href='mailto:$emaila'>$namea</a>";
} else {
$emaila = $namea;
}

// Всякие примочки с коментариями
$commentsa = eregi_replace("([ \t]|^)www\.", " http://www.", $commentsa);
$commentsa = eregi_replace("([ \t]|^)ftp\.", " ftp://ftp.", $commentsa);
$commentsa = eregi_replace("(http://[^ )\r\n\"\'>]+)", "<a href=\"\\1\" target=\"_blank\">\\1</a>", $commentsa);
$commentsa = eregi_replace("(ftp://[^ )\r\n\"\'>]+)", "<a href=\"\\1\" target=\"_blank\">\\1</a>", $commentsa);
$commentsa = eregi_replace("([-a-z0-9_]+(\.[_a-z0-9-]+)*@([a-z0-9-]+(\.[a-z0-9-]+)+))", "<a href=\"mailto:\\1\">\\1</a>", $commentsa);
$commentsa = str_replace("\\\"", "\"", $commentsa);
// Разделяем большие слова пробелом, макс длинна слова 20 симолов
$commentsa = wordwrap($commentsa, 20, "\n", 1);
// Работаем с "сайтом"
if(substr(trim(strtolower($weba)), 0, 7) != "http://" and $weba != "") {
$weba = " - <small><i>(<a href='http://$weba'>http://$weba</a>)</i></small>";
}
else if(substr(trim(strtolower($weba)), 0, 7) == "http://") {
$weba = " - <small><i>(<a href='$weba'>$weba</a>)</i></small>";
}

echo "<tr><td bgcolor='#ffe7ce'><small>[$datea]</small> $emaila $weba</td></tr><tr><td>$commentsa</td></tr>";
}
}
?>

Ну вот собсвенно и всё о чём я вам хотел рассказать. Ах да, чуть не забыл, закройте всё это тэгом </table>.

0
Т
тимс

User

Бывалый

Posts: 199

На форуме с: 07/10/2008

Репутация: +6

Рейтинг: 0

· 08/22/2009, 02:22 AM

Вообщем мне надо не то что ты дал, такое я сам могу сделать, ну все равно спасибо, мне надо как на базе тут со смаилами всякой фитчей) вот куда ты все это писал и спойлер делал, вот мне тоже такое надо...... У меня есть ну это для форума(... Может быть у кого есть готовый скрипт, типо как опрос ставить, я давно качал, и удалил( сечас найти не могу где качал

0
Т
тимс

User

Бывалый

Posts: 199

На форуме с: 07/10/2008

Репутация: +6

Рейтинг: 0

· 08/22/2009, 03:08 AM

Всем еще разок спасибо я сделал)

0
Topic is closed for replies