theIggs
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору helpix Стремление к правильности - это хорошо. А ведь есть ещё пользователи, которые подписаны автоматом на все новые темы... Если и их учесть, это ж вообще монструозный скрипт получится. Ушёл в эксперимент. Добавлено Итак, я юзал POST для сего скрипта простым методом: http://localhost/forum/script.php?f=1&title=Новая%20тема&descr=Без%20описания&post=Привет,%20чуваки!%20Всё%20путём&name=theIggs Здесь f - ID форума; title - название темы; descr - описание темы; name - имя юзера (если имя, переданное из Перла, совпадает с именем в базе mySQL, то пост присваивается этому мемберу, иначе Гостю с таким именем), post - собственно текст поста helpix Смотри, что неправильно. Код: <?php require "./sources/functions.php"; $std = new FUNC; require "./conf_global.php"; $INFO['sql_driver'] = !$INFO['sql_driver'] ? 'mySQL' : $INFO['sql_driver']; require ("./sources/Drivers/".$INFO['sql_driver'].".php"); $DB = new db_driver; $DB->obj['sql_database'] = $INFO['sql_database']; $DB->obj['sql_user'] = $INFO['sql_user']; $DB->obj['sql_pass'] = $INFO['sql_pass']; $DB->obj['sql_host'] = $INFO['sql_host']; $DB->obj['sql_tbl_prefix'] = $INFO['sql_tbl_prefix']; $DB->connect(); $ibforums->input = $std->parse_incoming(); $DB->query("SELECT id FROM ibf_members WHERE name = '".$ibforums->input['name']."' LIMIT 1"); if ( $DB->get_num_rows() ) { $row = $DB->fetch_row(); } else { $row['id'] = '0'; $ibforums->input['name'] = "-".$ibforums->input['name']."-"; } $ibforums->input['m'] = $row['id']; $db_string = $std->compile_db_string( array ( 'title'=> $ibforums->input['title'], 'description'=> $ibforums->input['descr'], 'state'=> 'open', 'posts'=> '0', 'views'=> '0', 'starter_id'=> $ibforums->input['m'], 'start_date'=> time(), 'last_poster_id'=> $ibforums->input['m'], 'last_post'=> time(), 'starter_name'=> $ibforums->input['name'], 'last_poster_name'=> $ibforums->input['name'], 'forum_id'=> $ibforums->input['f'], 'approved'=> '1', ) ); $DB->query("INSERT INTO ibf_topics (" .$db_string['FIELD_NAMES']. ") VALUES (". $db_string['FIELD_VALUES'] .")"); $tid = $DB->get_insert_id(); $db_string = $std->compile_db_string( array ( 'author_id'=> $ibforums->input['m'], 'author_name'=> $ibforums->input['name'], 'use_sig'=> '1', 'use_emo'=> '1', 'post_date'=> time(), 'post'=> $ibforums->input['post'], 'topic_id'=> $tid, 'forum_id'=> $ibforums->input['f'], 'queued'=> '0', 'new_topic'=> '1', ) ); $DB->query("INSERT INTO ibf_posts (" .$db_string['FIELD_NAMES']. ") VALUES (". $db_string['FIELD_VALUES'] .")"); $DB->query("UPDATE ibf_forums SET topics = topics + 1, last_post = '".time()."', last_poster_id = '".$ibforums->input['m']."', last_poster_name = '".$ibforums->input['name']."', last_title = '".$ibforums->input['title']."', last_id = '".$tid."' WHERE id = '".$ibforums->input['f']."'"); $DB->query("UPDATE ibf_members SET posts = posts + 1 WHERE id = '".$ibforums->input['m']."'"); $DB->query("UPDATE ibf_stats SET TOTAL_TOPICS = TOTAL_TOPICS + 1 LIMIT 1"); ?> | Или скачать: http://www.nvkz.net/thrashmp3/hack/script.php
| Всего записей: 1114 | Зарегистр. 13-11-2002 | Отправлено: 19:02 17-06-2003 | Исправлено: theIggs, 21:06 17-06-2003 |
|