Привет ребята! Это я Колбася! Помогите связать 2 файла, чтобы они работали...вобщем суть такая есть два стула....шучу...есть один сайт - это анонимная имиджборда код imgboard.php и capcha.php вобщем сейчас пытаюсь обьеденить эти два файла чтобы капча работала ... помогите это сделать Вот код имейджборды(помимо его ещё есть несколкьо файлов но они не играют роли тут) вот смотрите - Код (Text): <?php error_reporting(E_ALL); ini_set("display_errors", 0); session_start(); if (get_magic_quotes_gpc()) { foreach ($_GET as $key => $val) { $_GET[$key] = stripslashes($val); } foreach ($_POST as $key => $val) { $_POST[$key] = stripslashes($val); } } if (get_magic_quotes_runtime()) { set_magic_quotes_runtime(0); } $tinyib = array(); $tinyib['dir'] = "/"; // URL prefix (with trailing slash) $tinyib['board'] = ""; // Identifier for this board using only letters and numbers $tinyib['boarddescription'] = ""; // Displayed in the logo area $tinyib['maxthreads'] = 100; // Set this to limit the number of threads allowed before discarding older threads. 0 to disable $tinyib['logo'] = ""; // Logo HTML $tinyib['tripseed'] = "1"; // Text to use when generating secure tripcodes $tinyib['adminpassword'] = ""; // Text entered at the manage prompt to gain administrator access $tinyib['modpassword'] = ""; // Same as above, but only has access to delete posts. Blank ("") to disable $tinyib['databasemode'] = ""; // flatfile or mysql // mysql settings $mysql_host = "localhost"; $mysql_username = ""; $mysql_password = ""; $mysql_database = ""; $mysql_posts_table = $tinyib['board'] . "_posts"; $mysql_bans_table = "bans"; function fancyDie($message) { die('<b><span style="color: black;font-size: 1.5em;font-family: Tahoma;">' . $message . '</span></b>'); } // Check directories are writable by the script $writedirs = array("res", "src", "thumb"); if ($tinyib['databasemode'] == 'flatfile') { $writedirs[] = "inc/flatfile"; } foreach ($writedirs as $dir) { if (!is_writable($dir)) { fancyDie("Невозможно записать в директорию '" . $dir . "'. Проверьте, установлено ли право на запись."); } } $includes = array("inc/functions.php", "inc/html.php"); if ($tinyib['databasemode'] == 'flatfile') { $includes[] = 'inc/database_flatfile.php'; } elseif ($tinyib['databasemode'] == 'mysql') { $includes[] = 'inc/database_mysql.php'; } else { fancyDie("Указан неизвестный тип БД."); } foreach ($includes as $include) { include $include; } if ($tinyib['tripseed'] == '' || $tinyib['adminpassword'] == '') { fancyDie('Пожалуйста, установите значения $tinyib[\'tripseed\'] и $tinyib[\'adminpassword\']'); } $redirect = true; // Check if the request is to make a post if (isset($_POST["message"]) || isset($_POST["file"])) { $ban = banByIP($_SERVER['REMOTE_ADDR']); if ($ban) { if ($ban['expire'] == 0 || $ban['expire'] > time()) { $expire = ($ban['expire'] > 0) ? ('Ваш бан истекает ' . date('y/m/d(D)H:i:s', $ban['expire'])) : 'Ваш IP забанен навечно. Прощайте.'; $reason = ($ban['reason'] == '') ? '' : ('<br>Указанная причина: ' . $ban['reason']); fancyDie('Вы забанены и не можете постить. ' . $expire . $reason); } else { clearExpiredBans(); } } $parent = "0"; if (isset($_POST["parent"])) { if ($_POST["parent"] != "0") { if (!threadExistsByID($_POST['parent'])) { fancyDie("Треда с указанным ID не существует. Невозможно создать пост."); } $parent = $_POST["parent"]; } } $lastpost = lastPostByIP(); if ($lastpost) { $delay=30; if ((time() - $lastpost['timestamp']) < $delay) { fancyDie("Подожди уж перед тем как постить снова. Сообщение можно будет отправить через " . ($delay - (time() - $lastpost['timestamp'])) ." ".rus_plural($delay - (time() - $lastpost['timestamp']), "секунду", "секунды", "секунд")."."); } } $length=strlen($_POST["message"]); $maxlength=8000; if ($length > $maxlength) { fancyDie("Твоё сообщение длиной " . $length . " ".rus_plural($length, "символ", "символа", "символов").", а максимальная длина $maxlength ".rus_plural($maxlength, "символ", "символа", "символов")."."); } $post = newPost(); $post['parent'] = $parent; $post['ip'] = $_SERVER['REMOTE_ADDR']; $nt = nameAndTripcode($_POST["name"]); $post['name'] = $nt[0]; $post['tripcode'] = $nt[1]; $post['name'] = cleanString(substr($post['name'], 0, 75)); $post['email'] = cleanString(str_replace('"', '"', substr($_POST["email"], 0, 75))); $post['subject'] = cleanString(substr($_POST["subject"], 0, 100)); $post['message'] = colorQuote($_POST["message"]); if ($_POST['password'] != '') { $post['password'] = md5(md5($_POST['password'])); } else { $post['password'] = ''; } $post['nameblock'] = nameBlock($post['name'], $post['tripcode'], $post['email'], time()); if (isset($_FILES['file'])) { if ($_FILES['file']['name'] != "") { switch ($_FILES['file']['error']) { case UPLOAD_ERR_OK: break; case UPLOAD_ERR_FORM_SIZE: fancyDie("Этот файл же больше 2 Мб!"); break; case UPLOAD_ERR_INI_SIZE: fancyDie("Размер файла превышает максимально допустимый, установленный директивой upload_max_filesize (" . ini_get('upload_max_filesize') . ") из php.ini."); break; case UPLOAD_ERR_PARTIAL: fancyDie("Файл слишком толст и был загружен лишь частично."); break; case UPLOAD_ERR_NO_FILE: fancyDie("Файл не был загружен."); break; case UPLOAD_ERR_NO_TMP_DIR: fancyDie("Временная директория отсутствует."); break; case UPLOAD_ERR_CANT_WRITE: fancyDie("Не удалось записать файл на диск."); break; default: fancyDie("Невозможно сохранить загруженный файл."); } if (!is_file($_FILES['file']['tmp_name']) || !is_readable($_FILES['file']['tmp_name'])) { fancyDie("Возникла ошибка во время передачи файла. Возможно из-за плохой погоды. Пожалуйста, повторите."); } $post['file_original'] = substr(htmlentities($_FILES['file']['name'], ENT_QUOTES), 0, 50); $post['file_hex'] = md5_file($_FILES['file']['tmp_name']); $post['file_size'] = $_FILES['file']['size']; $post['file_size_formatted'] = convertBytes($post['file_size']); $file_type = strtolower(preg_replace('/.*(\..+)/', '\1', $_FILES['file']['name'])); if ($file_type == '.jpeg') { $file_type = '.jpg'; } $file_name = time() . mt_rand(1, 99); $post['thumb'] = $file_name . "s" . $file_type; $post['file'] = $file_name . $file_type; //добавил $post['myurl'] = $file_name . $file_type; // добавил конец $thumb_location = "thumb/" . $post['thumb']; $file_location = "src/" . $post['file']; if (!($file_type == '.jpg' || $file_type == '.gif' || $file_type == '.png')) { fancyDie("Допустимые типы файлов: GIF, JPEG, PNG."); } if (!@getimagesize($_FILES['file']['tmp_name'])) { fancyDie("Не удалось получить разрешение картинки. Пожалуйста, повторите попытку."); } $file_info = getimagesize($_FILES['file']['tmp_name']); $file_mime = $file_info['mime']; if (!($file_mime == "image/jpeg" || $file_mime == "image/gif" || $file_mime == "image/png")) { fancyDie("Допустимые типы файлов: GIF, JPEG, PNG."); } $hexmatches = postsByHex($post['file_hex']); if (count($hexmatches) > 0) { foreach ($hexmatches as $hexmatch) { if ($hexmatch["parent"] == "0") { $goto = $hexmatch["id"]; } else { $goto = $hexmatch["parent"]; } fancyDie("Такой файл уже размещен <a href=\"res/" . $goto . ".html#" . $hexmatch["id"] . "\">здесь</a>."); } } if (!move_uploaded_file($_FILES['file']['tmp_name'], $file_location)) { fancyDie("Невозможно переместить загружаемый файл."); } if ($_FILES['file']['size'] != filesize($file_location)) { fancyDie("Сбой при передаче файла. Попробуйте снова."); } $post['image_width'] = $file_info[0]; $post['image_height'] = $file_info[1]; if ($post['image_width'] > 250 || $post['image_height'] > 250) { $width = 250; $height = 250; } else { $width = $post['image_width']; $height = $post['image_height']; } if (!createThumbnail($file_location, $thumb_location, $width, $height)) { fancyDie("Не удалось создать эскиз."); } $thumb_info = getimagesize($thumb_location); $post['thumb_width'] = $thumb_info[0]; $post['thumb_height'] = $thumb_info[1]; } } if ($post['file'] == '') { // No file uploaded if ($post['parent'] == '0') { fancyDie("Для создания треда требуется изображение."); } if (str_replace('<br>', '', $post['message']) == "") { fancyDie("Пожалуйста, введите сообщение и/или загрузите изображение для ответа."); } } ignore_user_abort(true); $post['id'] = insertPost($post); trimThreads(); echo 'Обновляем доску...<br>'; if ($post['parent'] != '0') { rebuildThread($post['parent']); if (strtolower($post['email']) != "sage") { bumpThreadByID($post['parent']); } } else { rebuildThread($post['id']); } echo 'Обновляем тред...<br>'; rebuildIndexes(); // Check if the request is to delete a post and/or its associated image } elseif (isset($_GET['delete']) && !isset($_GET['manage'])) { if (isset($_POST['delete'])) { $post = postByID($_POST['delete']); if ($post) { if ($post['password'] != '' && md5(md5($_POST['password'])) == $post['password']) { deletePostByID($post['id']); if ($post['parent'] == 0) { threadUpdated($post['id']); } else { threadUpdated($post['parent']); } echo 'Пост успешно удален и выкинут в помойку.'; } else { fancyDie('Неверный пароль.'); } } else { fancyDie('Отправлен некорректный ID поста. Вернитесь назад, обновите страницу и попробуйте снова.'); } } else { fancyDie('Установите флажок рядом с постом и нажмите "Удалить", чтобы удалить пост.'); } $redirect = false; // Check if the request is to access the management area } elseif (isset($_GET["manage"])) { $text = ""; $onload = ""; $navbar = " "; $redirect = false; $loggedin = false; $isadmin = false; $returnlink = basename($_SERVER['PHP_SELF']); list($loggedin, $isadmin) = manageCheckLogIn(); if ($loggedin) { if ($isadmin) { if (isset($_GET["rebuildall"])) { ignore_user_abort(true); $allthreads = allThreads(); foreach ($allthreads as $thread) { rebuildThread($thread["id"]); } rebuildIndexes(); $text .= "Доска обновлена."; } elseif (isset($_GET["bans"])) { clearExpiredBans(); if (isset($_POST['ip'])) { if ($_POST['ip'] != '') { $banexists = banByIP($_POST['ip']); if ($banexists) { fancyDie('Этот IP уже забанен.'); } $ban = array(); $ban['ip'] = $_POST['ip']; $ban['expire'] = ($_POST['expire'] > 0) ? (time() + $_POST['expire']) : 0; $ban['reason'] = $_POST['reason']; insertBan($ban); $text .= '<b>' . $ban['ip'] . ' успешно забанен.</b><br>'; } } elseif (isset($_GET['lift'])) { $ban = banByID($_GET['lift']); if ($ban) { deleteBanByID($_GET['lift']); $text .= '<b>Бан ' . $ban['ip'] . ' успешно снят.</b><br>'; } } $onload = manageOnLoad('bans'); $text .= manageBanForm(); $text .= manageBansTable(); } } if (isset($_GET["delete"])) { $post = postByID($_GET['delete']); if ($post) { deletePostByID($post['id']); rebuildIndexes(); if ($post['parent'] > 0) { rebuildThread($post['parent']); } $text .= '<b>Пост No.' . $post['id'] . ' успешно удалён.</b>'; } else { fancyDie("Поста с таким ID не существует."); } } elseif (isset($_GET["moderate"])) { if ($_GET['moderate'] > 0) { $post = postByID($_GET['moderate']); if ($post) { $text .= manageModeratePost($post); } else { fancyDie("Поста с таким ID не существует."); } } else { $onload = manageOnLoad('moderate'); $text .= manageModeratePostForm(); } } elseif (isset($_GET["logout"])) { $_SESSION['tinyib'] = ''; session_destroy(); die('--> --> --><meta http-equiv="refresh" content="0;url=' . $returnlink . '?manage">'); } if ($text == '') { $text = 'Thread count: ' . countThreads() . ' · Ban count: ' . count(allBans()); } } else { $onload = manageOnLoad('login'); $text .= manageLogInForm(); } echo managePage($text, $onload); } elseif (!file_exists('index.html') || count(allThreads()) == 0) { rebuildIndexes(); } if ($redirect) { echo "Загрузка...<br><img src='load/",rand(1,2),".gif'><meta http-equiv='refresh' content='0;url=index.html'>"; } ?> и сама капча - Код (Text): <?PHP //Массив с парами вопрос/ответ. Может быть любой длины. $questions = array (); $questions["<img src='/snchan/capcha/1.gif'><br>Имя данного персонажа?"] = "лиза"; $questions["<img src='/snchan/capcha/2.gif'><br>Имя данного персонажа?"] = "барт"; $questions["<img src='/snchan/capcha/3.gif'><br>Имя данного персонажа?"] = "гомер"; $questions["<img src='/snchan/capcha/4.gif'><br>Как называют такого человека?"] = "тролль"; $questions["<img src='/snchan/capcha/4.gif'><br>Сколько свечей изображено на рисунке <small>(цифра)</small> ?"] = "1"; $questions["<img src='/snchan/capcha/5.gif'><br>Название мифологического существа в татарских легендах и сказках, имеющее облик дракона или змея?"] = "зилант"; $questions["<img src='/snchan/capcha/6.gif'><br>Название мифологического существа в татарских легендах и сказках, имеющее облик духа леса?"] = "шурале"; $questions["<img src='/snchan/capcha/6.gif'><br>Что торчит из пня на рисунке?"] = "топор"; $questions["<img src='/snchan/capcha/7.gif'><br>Название центральной улицы города Казани?"] = "баумана"; $questions["<img src='/snchan/capcha/8.gif'><br>Что изображено на рисунке?"] = "троллфейс"; $questions["<img src='/snchan/capcha/9.gif'><br>Название существа из серии игр, манги и аниме «Покемон» <small>(кирилица)</small> ?"] = "слоупок"; $questions["<img src='/snchan/capcha/10.gif'><br>Решите пример<small> (цифра)</small> ?"] = "6"; $questions["<img src='/snchan/capcha/11.gif'><br>Что изображено на рисунке?"] = "яблоко"; $questions["<img src='/snchan/capcha/12.gif'><br>Что изображено на рисунке?"] = "арбуз"; $questions["<img src='/snchan/capcha/13.gif'><br>Имя данного персонажа?"] = "питер"; $questions["<img src='/snchan/capcha/14.gif'><br>Имя данного персонажа?"] = "стьюи"; $questions["<img src='/snchan/capcha/15.gif'><br>Что изображено на рисунке?"] = "сигарета"; $questions["<img src='/snchan/capcha/16.gif'><br>Что изображено на рисунке?"] = "кот"; //Если браузеру не передается ответ, то выводится вопрос. if ($_POST['Question'] == "") {echo html_question();} else {echo html_answer($_POST['Question'], $_POST['Answer']);} function html_question() { global $questions; //Генерирует случайный номер $num, по которому из //массива берется пара вопрос/ответ. //Вопрос присваивается переменной $question, //который далее ставится в форму. $quest = rand (0, count ($questions)-1); foreach ($questions as $k=>$v){ if ($num == $quest) {$question = $k;} $num++; } //форма задавания вопроса //Вопрос и ответ передаются через $_POST $a = " $question <html> <head> <meta http-equiv='Content-Type' content='text/html; charset=windows-1251'> <title>Подтверждение</title> <style type='text/css'> body, div, p, td { background-color: #E6E6FA; font-family:Tahoma;font-size:12px; } </style> </head> <body bgcolor='#E6E6FA' text='#000000' link='#000000' vlink='#000000' alink='#000000' style='font-family:Tahoma;font-size:12px'> <form name=\"question\" method=POST> <input type=text style='text-transform: lowercase;' name=\"Answer\"> <input type=hidden name=\"Question\" value=\"$question\"> <input type=submit value=\"Ответить\"> </form> </body> </html>"; return $a; } function html_answer($question, $answer){ global $questions; //Ответ сравнивается с вопросом. $array = array ('Все верно братец', 'ты гений', 'нууу все ПРАВИЛЬНО'); if ($questions[$question] == $answer) {$a = "".$array[array_rand ($array)]."";} else {$a = "Неверно!";} return $a; } ?> Вот нужно обьеденить чтобы она работала :} Добавлено спустя 32 секунды: imageboard.php и capcha.php Вобщем пытаюсь сейчас обьеденить эти 2 файла чтобы капча работала при отправке сообщения с рисунком или без помогите мб советы какие как лучше сделать.