За последние 24 часа нас посетили 19320 программистов и 1605 роботов. Сейчас ищут 875 программистов ...

Связать два php файла между собой.

Тема в разделе "PHP для новичков", создана пользователем Колбася, 6 июл 2012.

  1. Колбася

    Колбася Активный пользователь

    С нами с:
    12 дек 2011
    Сообщения:
    722
    Симпатии:
    0
    Привет ребята! Это я Колбася! Помогите связать 2 файла, чтобы они работали...вобщем суть такая
    есть два стула....шучу...есть один сайт - это анонимная имиджборда
    код

    imgboard.php
    и
    capcha.php
    вобщем сейчас пытаюсь обьеденить эти два файла чтобы капча работала ...
    помогите это сделать

    Вот код имейджборды(помимо его ещё есть несколкьо файлов но они не играют роли тут)

    вот смотрите -

    Код (Text):
    1. <?php
    2. error_reporting(E_ALL);
    3. ini_set("display_errors", 0);
    4. session_start();
    5.  
    6. if (get_magic_quotes_gpc()) {
    7.     foreach ($_GET as $key => $val) { $_GET[$key] = stripslashes($val); }
    8.     foreach ($_POST as $key => $val) { $_POST[$key] = stripslashes($val); }
    9. }
    10. if (get_magic_quotes_runtime()) { set_magic_quotes_runtime(0); }
    11.  
    12. $tinyib = array();
    13. $tinyib['dir'] = "/"; // URL prefix (with trailing slash)
    14. $tinyib['board'] = ""; // Identifier for this board using only letters and numbers
    15. $tinyib['boarddescription'] = ""; // Displayed in the logo area
    16. $tinyib['maxthreads'] = 100; // Set this to limit the number of threads allowed before discarding older threads.  0 to disable
    17. $tinyib['logo'] = ""; // Logo HTML
    18. $tinyib['tripseed'] = "1"; // Text to use when generating secure tripcodes
    19. $tinyib['adminpassword'] = ""; // Text entered at the manage prompt to gain administrator access
    20. $tinyib['modpassword'] = ""; // Same as above, but only has access to delete posts. Blank ("") to disable
    21. $tinyib['databasemode'] = ""; // flatfile or mysql
    22.  
    23. // mysql settings
    24. $mysql_host = "localhost";
    25. $mysql_username = "";
    26. $mysql_password = "";
    27. $mysql_database = "";
    28. $mysql_posts_table = $tinyib['board'] . "_posts";
    29. $mysql_bans_table = "bans";
    30.  
    31. function fancyDie($message) {
    32.     die('<b><span style="color: black;font-size: 1.5em;font-family: Tahoma;">' . $message . '</span></b>');
    33. }
    34. // Check directories are writable by the script
    35. $writedirs = array("res", "src", "thumb");
    36. if ($tinyib['databasemode'] == 'flatfile') { $writedirs[] = "inc/flatfile"; }
    37. foreach ($writedirs as $dir) {
    38.     if (!is_writable($dir)) {
    39.         fancyDie("Невозможно записать в директорию '" . $dir . "'. Проверьте, установлено ли право на запись.");
    40.     }
    41. }
    42.  
    43. $includes = array("inc/functions.php", "inc/html.php");
    44. if ($tinyib['databasemode'] == 'flatfile') {
    45.     $includes[] = 'inc/database_flatfile.php';
    46. } elseif ($tinyib['databasemode'] == 'mysql') {
    47.     $includes[] = 'inc/database_mysql.php';
    48. } else {
    49.     fancyDie("Указан неизвестный тип БД.");
    50. }
    51.  
    52. foreach ($includes as $include) {
    53.     include $include;
    54. }
    55.  
    56. if ($tinyib['tripseed'] == '' || $tinyib['adminpassword'] == '') {
    57.     fancyDie('Пожалуйста, установите значения $tinyib[\'tripseed\'] и $tinyib[\'adminpassword\']');
    58. }
    59.  
    60. $redirect = true;
    61. // Check if the request is to make a post
    62. if (isset($_POST["message"]) || isset($_POST["file"])) {
    63.     $ban = banByIP($_SERVER['REMOTE_ADDR']);
    64.     if ($ban) {
    65.         if ($ban['expire'] == 0 || $ban['expire'] > time()) {
    66.             $expire = ($ban['expire'] > 0) ? ('Ваш бан истекает ' . date('y/m/d(D)H:i:s', $ban['expire'])) : 'Ваш IP забанен навечно. Прощайте.';
    67.             $reason = ($ban['reason'] == '') ? '' : ('<br>Указанная причина: ' . $ban['reason']);
    68.             fancyDie('Вы забанены и не можете постить.  ' . $expire . $reason);
    69.         } else {
    70.             clearExpiredBans();
    71.         }
    72.     }
    73.  
    74.     $parent = "0";
    75.     if (isset($_POST["parent"])) {
    76.         if ($_POST["parent"] != "0") {
    77.             if (!threadExistsByID($_POST['parent'])) {
    78.                 fancyDie("Треда с указанным ID не существует. Невозможно создать пост.");
    79.             }
    80.            
    81.             $parent = $_POST["parent"];
    82.         }
    83.     }
    84.    
    85.     $lastpost = lastPostByIP();
    86.     if ($lastpost) {
    87.         $delay=30;
    88.         if ((time() - $lastpost['timestamp']) < $delay) {
    89.             fancyDie("Подожди уж перед тем как постить снова. Сообщение можно будет отправить через " . ($delay - (time() - $lastpost['timestamp'])) ." ".rus_plural($delay - (time() - $lastpost['timestamp']), "секунду", "секунды", "секунд").".");
    90.         }
    91.     }
    92.     $length=strlen($_POST["message"]);
    93.     $maxlength=8000;
    94.     if ($length > $maxlength) {
    95.         fancyDie("Твоё сообщение длиной " . $length . " ".rus_plural($length, "символ", "символа", "символов").", а максимальная длина $maxlength ".rus_plural($maxlength, "символ", "символа", "символов").".");
    96.     }
    97.    
    98.     $post = newPost();
    99.     $post['parent'] = $parent;
    100.     $post['ip'] = $_SERVER['REMOTE_ADDR'];
    101.    
    102.     $nt = nameAndTripcode($_POST["name"]);
    103.     $post['name']     = $nt[0];
    104.     $post['tripcode'] = $nt[1];
    105.    
    106.     $post['name'] = cleanString(substr($post['name'], 0, 75));
    107.     $post['email'] = cleanString(str_replace('"', '&quot;', substr($_POST["email"], 0, 75)));
    108.     $post['subject'] = cleanString(substr($_POST["subject"], 0, 100));
    109.     $post['message'] = colorQuote($_POST["message"]);
    110.     if ($_POST['password'] != '') { $post['password'] = md5(md5($_POST['password'])); } else { $post['password'] = ''; }
    111.     $post['nameblock'] = nameBlock($post['name'], $post['tripcode'], $post['email'], time());
    112.    
    113.     if (isset($_FILES['file'])) {
    114.         if ($_FILES['file']['name'] != "") {
    115.             switch ($_FILES['file']['error']) {
    116.                 case UPLOAD_ERR_OK:
    117.                     break;
    118.                 case UPLOAD_ERR_FORM_SIZE:
    119.                     fancyDie("Этот файл же больше 2 Мб!");
    120.                     break;
    121.                 case UPLOAD_ERR_INI_SIZE:
    122.                     fancyDie("Размер файла превышает максимально допустимый, установленный директивой upload_max_filesize (" . ini_get('upload_max_filesize') . ") из php.ini.");
    123.                     break;
    124.                 case UPLOAD_ERR_PARTIAL:
    125.                     fancyDie("Файл слишком толст и был загружен лишь частично.");
    126.                     break;
    127.                 case UPLOAD_ERR_NO_FILE:
    128.                     fancyDie("Файл не был загружен.");
    129.                     break;
    130.                 case UPLOAD_ERR_NO_TMP_DIR:
    131.                     fancyDie("Временная директория отсутствует.");
    132.                     break;
    133.                 case UPLOAD_ERR_CANT_WRITE:
    134.                     fancyDie("Не удалось записать файл на диск.");
    135.                     break;
    136.                 default:
    137.                     fancyDie("Невозможно сохранить загруженный файл.");
    138.             }
    139.            
    140.             if (!is_file($_FILES['file']['tmp_name']) || !is_readable($_FILES['file']['tmp_name'])) {
    141.                 fancyDie("Возникла ошибка во время передачи файла. Возможно из-за плохой погоды. Пожалуйста, повторите.");
    142.             }
    143.            
    144.            $post['file_original'] = substr(htmlentities($_FILES['file']['name'], ENT_QUOTES), 0, 50);
    145.            $post['file_hex'] = md5_file($_FILES['file']['tmp_name']);
    146.            $post['file_size'] = $_FILES['file']['size'];
    147.            $post['file_size_formatted'] = convertBytes($post['file_size']);
    148.            $file_type = strtolower(preg_replace('/.*(\..+)/', '\1', $_FILES['file']['name'])); if ($file_type == '.jpeg') { $file_type = '.jpg'; }
    149.            $file_name = time() . mt_rand(1, 99);
    150.            $post['thumb'] = $file_name . "s" . $file_type;
    151.            $post['file'] = $file_name . $file_type;
    152.            
    153.            //добавил
    154.            $post['myurl'] = $file_name . $file_type;
    155.            // добавил конец
    156.            $thumb_location = "thumb/" . $post['thumb'];
    157.            $file_location = "src/" . $post['file'];
    158.            
    159.             if (!($file_type == '.jpg' || $file_type == '.gif' || $file_type == '.png')) {
    160.                 fancyDie("Допустимые типы файлов: GIF, JPEG, PNG.");
    161.             }            
    162.             if (!@getimagesize($_FILES['file']['tmp_name'])) {
    163.                 fancyDie("Не удалось получить разрешение картинки. Пожалуйста, повторите попытку.");
    164.             }
    165.             $file_info = getimagesize($_FILES['file']['tmp_name']);
    166.  
    167.             $file_mime = $file_info['mime'];
    168.             if (!($file_mime == "image/jpeg" || $file_mime == "image/gif" || $file_mime == "image/png")) {
    169.                 fancyDie("Допустимые типы файлов: GIF, JPEG, PNG.");
    170.             }
    171.             $hexmatches = postsByHex($post['file_hex']);
    172.             if (count($hexmatches) > 0) {
    173.                 foreach ($hexmatches as $hexmatch) {
    174.                     if ($hexmatch["parent"] == "0") {
    175.                         $goto = $hexmatch["id"];
    176.                     } else {
    177.                         $goto = $hexmatch["parent"];
    178.                     }
    179.                     fancyDie("Такой файл уже размещен <a href=\"res/" . $goto . ".html#" . $hexmatch["id"] . "\">здесь</a>.");
    180.                 }
    181.             }
    182.            
    183.             if (!move_uploaded_file($_FILES['file']['tmp_name'], $file_location)) {
    184.                 fancyDie("Невозможно переместить загружаемый файл.");
    185.             }
    186.            
    187.             if ($_FILES['file']['size'] != filesize($file_location)) {
    188.                 fancyDie("Сбой при передаче файла. Попробуйте снова.");
    189.             }
    190.            
    191.             $post['image_width'] = $file_info[0];
    192.             $post['image_height'] = $file_info[1];
    193.            
    194.             if ($post['image_width'] > 250 || $post['image_height'] > 250) {
    195.                 $width = 250;
    196.                 $height = 250;
    197.             } else {
    198.                 $width = $post['image_width'];
    199.                 $height = $post['image_height'];
    200.             }
    201.             if (!createThumbnail($file_location, $thumb_location, $width, $height)) {
    202.                 fancyDie("Не удалось создать эскиз.");
    203.             }
    204.  
    205.             $thumb_info = getimagesize($thumb_location);
    206.             $post['thumb_width'] = $thumb_info[0];
    207.             $post['thumb_height'] = $thumb_info[1];
    208.         }
    209.     }
    210.    
    211.     if ($post['file'] == '') { // No file uploaded
    212.         if ($post['parent'] == '0') {
    213.             fancyDie("Для создания треда требуется изображение.");
    214.         }
    215.         if (str_replace('<br>', '', $post['message']) == "") {
    216.             fancyDie("Пожалуйста, введите сообщение и/или загрузите изображение для ответа.");
    217.         }
    218.     }
    219.     ignore_user_abort(true);
    220.     $post['id'] = insertPost($post);
    221.     trimThreads();
    222.     echo 'Обновляем доску...<br>';
    223.     if ($post['parent'] != '0') {
    224.         rebuildThread($post['parent']);
    225.        
    226.         if (strtolower($post['email']) != "sage") {
    227.             bumpThreadByID($post['parent']);
    228.         }
    229.     } else {
    230.         rebuildThread($post['id']);
    231.     }
    232.    
    233.     echo 'Обновляем тред...<br>';
    234.     rebuildIndexes();
    235. // Check if the request is to delete a post and/or its associated image
    236. } elseif (isset($_GET['delete']) && !isset($_GET['manage'])) {
    237.     if (isset($_POST['delete'])) {
    238.         $post = postByID($_POST['delete']);
    239.         if ($post) {
    240.             if ($post['password'] != '' && md5(md5($_POST['password'])) == $post['password']) {
    241.                 deletePostByID($post['id']);
    242.                 if ($post['parent'] == 0) { threadUpdated($post['id']); } else { threadUpdated($post['parent']); }
    243.                 echo 'Пост успешно удален и выкинут в помойку.';
    244.             } else {
    245.                 fancyDie('Неверный пароль.');
    246.             }
    247.         } else {
    248.             fancyDie('Отправлен некорректный ID поста. Вернитесь назад, обновите страницу и попробуйте снова.');
    249.         }
    250.     } else {
    251.         fancyDie('Установите флажок рядом с постом и нажмите "Удалить", чтобы удалить пост.');
    252.     }
    253.     $redirect = false;
    254. // Check if the request is to access the management area
    255. } elseif (isset($_GET["manage"])) {
    256.     $text = ""; $onload = ""; $navbar = "&nbsp;";
    257.     $redirect = false; $loggedin = false; $isadmin = false;
    258.     $returnlink = basename($_SERVER['PHP_SELF']);
    259.    
    260.     list($loggedin, $isadmin) = manageCheckLogIn();
    261.    
    262.     if ($loggedin) {
    263.         if ($isadmin) {
    264.             if (isset($_GET["rebuildall"])) {
    265.                                 ignore_user_abort(true);
    266.                 $allthreads = allThreads();
    267.                 foreach ($allthreads as $thread) {
    268.                     rebuildThread($thread["id"]);
    269.                 }
    270.                 rebuildIndexes();
    271.                 $text .= "Доска обновлена.";
    272.             } elseif (isset($_GET["bans"])) {
    273.                 clearExpiredBans();
    274.                
    275.                 if (isset($_POST['ip'])) {
    276.                     if ($_POST['ip'] != '') {
    277.                         $banexists = banByIP($_POST['ip']);
    278.                         if ($banexists) {
    279.                             fancyDie('Этот IP уже забанен.');
    280.                         }
    281.                        
    282.                         $ban = array();
    283.                         $ban['ip'] = $_POST['ip'];
    284.                         $ban['expire'] = ($_POST['expire'] > 0) ? (time() + $_POST['expire']) : 0;
    285.                         $ban['reason'] = $_POST['reason'];
    286.                        
    287.                         insertBan($ban);
    288.                         $text .= '<b>' . $ban['ip'] . ' успешно забанен.</b><br>';
    289.                     }
    290.                 } elseif (isset($_GET['lift'])) {
    291.                     $ban = banByID($_GET['lift']);
    292.                     if ($ban) {
    293.                         deleteBanByID($_GET['lift']);
    294.                         $text .= '<b>Бан ' . $ban['ip'] . ' успешно снят.</b><br>';
    295.                     }
    296.                 }
    297.                
    298.                 $onload = manageOnLoad('bans');
    299.                 $text .= manageBanForm();
    300.                 $text .= manageBansTable();
    301.             }
    302.         }
    303.        
    304.         if (isset($_GET["delete"])) {
    305.             $post = postByID($_GET['delete']);
    306.             if ($post) {
    307.                 deletePostByID($post['id']);
    308.                 rebuildIndexes();
    309.                 if ($post['parent'] > 0) {
    310.                     rebuildThread($post['parent']);
    311.                 }
    312.                 $text .= '<b>Пост No.' . $post['id'] . ' успешно удалён.</b>';
    313.             } else {
    314.                 fancyDie("Поста с таким ID не существует.");
    315.             }
    316.         } elseif (isset($_GET["moderate"])) {
    317.             if ($_GET['moderate'] > 0) {
    318.                 $post = postByID($_GET['moderate']);
    319.                 if ($post) {
    320.                     $text .= manageModeratePost($post);
    321.                 } else {
    322.                     fancyDie("Поста с таким ID не существует.");
    323.                 }
    324.             } else {
    325.                 $onload = manageOnLoad('moderate');
    326.                 $text .= manageModeratePostForm();
    327.             }
    328.         } elseif (isset($_GET["logout"])) {
    329.             $_SESSION['tinyib'] = '';
    330.             session_destroy();
    331.             die('--&gt; --&gt; --&gt;<meta http-equiv="refresh" content="0;url=' . $returnlink . '?manage">');
    332.         }
    333.         if ($text == '') {
    334.             $text = 'Thread count: ' . countThreads() . ' &middot; Ban count: ' . count(allBans());
    335.         }
    336.     } else {
    337.         $onload = manageOnLoad('login');
    338.         $text .= manageLogInForm();
    339.     }
    340.  
    341.     echo managePage($text, $onload);
    342. } elseif (!file_exists('index.html') || count(allThreads()) == 0) {
    343.     rebuildIndexes();
    344. }
    345.  
    346. if ($redirect) {
    347.     echo "Загрузка...<br><img src='load/",rand(1,2),".gif'><meta http-equiv='refresh' content='0;url=index.html'>";
    348. }
    349.  
    350. ?>
    и сама капча -


    Код (Text):
    1.  
    2. <?PHP
    3. //Массив с парами вопрос/ответ. Может быть любой длины.
    4. $questions = array ();
    5.         $questions["<img src='/snchan/capcha/1.gif'><br>Имя данного персонажа?"] = "лиза";
    6.         $questions["<img src='/snchan/capcha/2.gif'><br>Имя данного персонажа?"] = "барт";
    7.         $questions["<img src='/snchan/capcha/3.gif'><br>Имя данного персонажа?"] = "гомер";
    8.         $questions["<img src='/snchan/capcha/4.gif'><br>Как называют такого человека?"] = "тролль";
    9.         $questions["<img src='/snchan/capcha/4.gif'><br>Сколько свечей изображено на рисунке <small>(цифра)</small> ?"] = "1";
    10.         $questions["<img src='/snchan/capcha/5.gif'><br>Название мифологического существа в татарских легендах и сказках, имеющее облик дракона или змея?"] = "зилант";
    11.         $questions["<img src='/snchan/capcha/6.gif'><br>Название мифологического существа в татарских легендах и сказках, имеющее облик духа леса?"] = "шурале";
    12.         $questions["<img src='/snchan/capcha/6.gif'><br>Что торчит из пня на рисунке?"] = "топор";
    13.         $questions["<img src='/snchan/capcha/7.gif'><br>Название центральной улицы города Казани?"] = "баумана";
    14.         $questions["<img src='/snchan/capcha/8.gif'><br>Что изображено на рисунке?"] = "троллфейс";
    15.         $questions["<img src='/snchan/capcha/9.gif'><br>Название существа из серии игр, манги и аниме «Покемон» <small>(кирилица)</small> ?"] = "слоупок";
    16.         $questions["<img src='/snchan/capcha/10.gif'><br>Решите пример<small> (цифра)</small> ?"] = "6";
    17.         $questions["<img src='/snchan/capcha/11.gif'><br>Что изображено на рисунке?"] = "яблоко";
    18.         $questions["<img src='/snchan/capcha/12.gif'><br>Что изображено на рисунке?"] = "арбуз";
    19.         $questions["<img src='/snchan/capcha/13.gif'><br>Имя данного персонажа?"] = "питер";
    20.         $questions["<img src='/snchan/capcha/14.gif'><br>Имя данного персонажа?"] = "стьюи";
    21.         $questions["<img src='/snchan/capcha/15.gif'><br>Что изображено на рисунке?"] = "сигарета";
    22.         $questions["<img src='/snchan/capcha/16.gif'><br>Что изображено на рисунке?"] = "кот";
    23. //Если браузеру не передается ответ, то выводится вопрос.
    24. if ($_POST['Question'] == "")
    25.         {echo html_question();}
    26.         else
    27.         {echo html_answer($_POST['Question'], $_POST['Answer']);}
    28.  
    29.  
    30.  
    31. function html_question() {
    32. global $questions;
    33.  
    34. //Генерирует случайный номер $num, по которому из
    35. //массива берется пара вопрос/ответ.
    36. //Вопрос присваивается переменной $question,
    37. //который далее ставится в форму.
    38. $quest = rand (0, count ($questions)-1);
    39. foreach ($questions as $k=>$v){
    40.         if ($num == $quest)
    41.                 {$question = $k;}
    42.         $num++;
    43.         }
    44.  
    45. //форма задавания вопроса
    46. //Вопрос и ответ передаются через $_POST
    47. $a = "  $question
    48. <html>
    49. <head>
    50. <meta http-equiv='Content-Type' content='text/html; charset=windows-1251'>
    51. <title>Подтверждение</title>
    52. <style type='text/css'>
    53. body, div, p, td {
    54.   background-color: #E6E6FA;
    55.   font-family:Tahoma;font-size:12px;
    56. }
    57. </style>
    58. </head>
    59. <body bgcolor='#E6E6FA' text='#000000' link='#000000' vlink='#000000' alink='#000000' style='font-family:Tahoma;font-size:12px'>
    60.         <form name=\"question\" method=POST>
    61.         <input type=text style='text-transform: lowercase;' name=\"Answer\">
    62.         <input type=hidden name=\"Question\" value=\"$question\">
    63.         <input type=submit value=\"Ответить\">
    64.         </form>
    65.         </body>
    66. </html>";
    67.  
    68. return $a;
    69. }
    70.  
    71. function html_answer($question, $answer){
    72. global $questions;
    73.  
    74. //Ответ сравнивается с вопросом.
    75. $array = array ('Все верно братец', 'ты гений', 'нууу все ПРАВИЛЬНО');
    76.  
    77. if ($questions[$question] == $answer)
    78.         {$a = "".$array[array_rand ($array)]."";}
    79.         else
    80.         {$a = "Неверно!";}
    81.  
    82. return $a;
    83. }
    84.  
    85. ?>
    Вот нужно обьеденить чтобы она работала :}

    Добавлено спустя 32 секунды:
    imageboard.php и capcha.php

    Вобщем пытаюсь сейчас обьеденить эти 2 файла чтобы капча работала при отправке сообщения с рисунком или без помогите мб советы какие как лучше сделать.
     
  2. Колбася

    Колбася Активный пользователь

    С нами с:
    12 дек 2011
    Сообщения:
    722
    Симпатии:
    0
    Посоветуйте как связать капчу вот с этим :/
     
  3. Колбася

    Колбася Активный пользователь

    С нами с:
    12 дек 2011
    Сообщения:
    722
    Симпатии:
    0
    сейчас тупо эксперементирую вставил include capcha.php :/