PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (1): [1]

> Найдено сообщений: 4
IntegraL Отправлено: 24 Октября, 2009 - 14:03:07 • Тема: Помогите переделать скрипт! • Форум: Программирование на PHP

Ответов: 1
Просмотров: 209
Вобщим имеется скрипт, состоящий из 3х файлов:
1. Непосредственно сам скрипт:
CODE (text):
скопировать код в буфер обмена
  1.  
  2. <?
  3.                
  4.                 if ($_POST["submit"])
  5.                 {
  6.                         $a = answer();
  7.                         $out =  "<h3><font color=black><b>Таррон:</b></font></h3><h5>$a</h5><br><h3><font color=black><b>".$stat['user'].":</b></font></h3><h5>".$ask;
  8.                         $tile = ($cfg["scrolling"]) ? $tile : "";
  9.                         echo "$out<br>$tile";
  10.                         echo "<input name='tile' type='hidden' id='tile' value='$out<br>$tile'>";
  11.                 }
  12.          
  13.        
  14.                 function answer()
  15.                 {
  16.                         global $cfg, $ask;
  17.                         $ask = (empty($ask)) ? "<empty>" : $ask;
  18.                         $kick = array("?","\n");
  19.                         $ask = str_replace($kick,"",$ask);
  20.                         $f = file($cfg["answersfile"]);
  21.                         for ($i=0; $i<=count($f); $i++)
  22.                         {
  23.                                 $an = split(";", $f[$i]);
  24.                                 $a = $an[0];
  25.                                 if (strstr($a,trim($ask)))
  26.                                 {
  27.                                         if ($wasone)
  28.                                         {
  29.                                                 return("Скажи конкретнее!");
  30.                                         }
  31.                                         array_shift($an);
  32.                                         array_pop($an);
  33.                                         $ai = rand(0, count($an)-1);
  34.                                         $wasone = true;
  35.                                         $retval = $an[$ai];
  36.                                 }
  37.                         }
  38.                         $retval = (empty($retval)) ? "Я не врубаюсь ,что ты хочешь?" : $retval;
  39.                         return $retval;
  40.                 }
  41.          
  42.  
  43. <table border="0" cellspacing="0" cellpadding="0">
  44. <form method="POST" action="main.php?set=edit&do=compl" name="reg">
  45. <tr>
  46. <td>
  47. <table border="0" cellspacing="0" cellpadding="0">
  48. <tr>
  49. <td>
  50. <table border="0" cellspacing="0" cellpadding="0">
  51. <tr>
  52. <td><img src="../img/game/main/in_l.gif" width="20" height="35" alt="" border="0" /></td>
  53. <td class="in_f"><input name="ask" type="text" class="tint" id="ask" style="width:250px;" value="" onFocus="if (this.value == 'Ололо') { this.value = '' }" onBlur="if (this.value == '') { this.value = 'Ололо }" ></td>
  54. <td><img src="../img/game/main/in_r.gif" width="20" height="35" alt="" border="0" /></td>
  55. </tr>
  56. </table>
  57. </td>
  58. </tr>
  59. </table>
  60.  
  61.  
  62.  
  63.  
  64.  ?>
  65.  


2. конфигурация config.php
CODE (text):
скопировать код в буфер обмена
  1.  
  2. <?
  3. $cfg["answersfile"] = "anatole.php";
  4. $cfg["scrolling"] = false;
  5. $cfg["encoding"] = "windows-1251";
  6. ini_set("register_globals", true);
  7. ?>


3. Файл с базой вопросов и ответов на них (anatole.php):
CODE (text):
скопировать код в буфер обмена
  1.  
  2. <?
  3. <empty>;Ололо что я должен на такое ответить? О.о;   \\ если в поле вода ничего не введено (пусто)
  4.  
  5. привет;Ответ ответ!!;   \\ ответ на вопрос Вопрос разделяется ";" и ответ также заканчивается ";", после этого действует следующая строка.
  6.  
  7. ха;LOИКС;
  8.  
  9. Ты кто?; Анатоле!;
  10. ?>
  11.  


Выглядит приблизительно все это вот так:



Помогите
В том виде что я выложил код, бот реагирует на все 3 вопроса сразу, т.е. Если в строку написать "ха" или "Ты кто"? то он даст ответ для каждого вопроса. "ха" - LOИКС, "Ты кто?" - Анатоле!

Но мне нужно чтоб в файл anatole.php можно было встроить проверки, например если боту было написано "ха" и он ответил, то стает возможным и вопрос "Ты кто?" А если "ха" небыло написано, то вопрос "ты кто?" становится недоступным и если к примеру сразу написать "Ты кто?", то чтоб бот выводил к примеру "Сначала напиши, "Ха", а затем спрашивай "кто ты"?"..

Попробывал сделать что-то типа такого, но бот игнорирует то что между <? ?>
CODE (text):
скопировать код в буфер обмена
  1.  
  2. <?
  3. include("../bot.php");
  4. if ($ask="ха")
  5. {
  6. echo "текст текст";
  7. }
  8. ?>
  9.  
  10. <empty>;Ололо что я должен на такое ответить? О.о;
  11.  
  12.  
  13. ха;LOИКС;
  14.  
  15. Ты кто?; Анатоле!;
  16.  
  17.  
  18.  
  19.  


Помогите пожалуста.
IntegraL Отправлено: 28 Сентября, 2009 - 19:30:30 • Тема: Проблема с Функциями в скрипте! • Форум: Программирование на PHP

Ответов: 5
Просмотров: 314
RomAndry пишет:
странно, а покажите как это делаете?
именно простой скрипт с этой функцией создайте заново и код в студию.



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

CODE (languagq):
скопировать код в буфер обмена
  1.  
  2. if ($do)
  3. {
  4. $rand_navik = rand('0','1');
  5. $rand_ylov = rand('0','2');
  6. $kol_ylov = rand ('0','1');
  7. $r_r=$rand_ylov;
  8. if ($rand_ylov == 0)
  9. {
  10. echo "Вы ничего не поймали!";
  11. }
  12. if ($rand_ylov == 1)
  13. {
  14. mysql_query("UPDATE person set riba_okyn=riba_okyn+1 where id=$stat[id]");
  15. echo "Вы поймали <b>Окунь</b>";
  16. }
  17. if ($rand_ylov == 2)
  18. {
  19. mysql_query("UPDATE person set riba_kambala=riba_kambala+1 where id=$stat[id]");
  20. echo "Вы поймали <b>Камбала</b>";
  21. }
  22. }
  23. else
  24. {
  25. //Функция вывода сообщений поймал\непоймал
  26. vivod_mess ();
  27. function vivod_mess(){
  28. $mess = array (
  29.          $rand_ylov==0 => "Ничего не поймал",
  30.          $rand_ylov==1 => "+1 Okyn",
  31.          $rand_ylov==2 => "+1 Kambala");
  32.  
  33.      // if($rand_ylov=0) { echo"Ничего не поймали!" };
  34.      // elseif($rand_ylov=1) { echo"Поймал Окуня"};
  35.       //elseif($rand_ylov=2) { echo"Поймал Камбала"});
  36. }
  37. //Конец функции
  38. echo "<form action='http://localhost/main.php?set=bots' method=post>";
  39. echo "<input type=hidden name=id value=do>";
  40. //Вывод рыбы с базы
  41. $ribalka = mysql_query("SELECT * FROM person where `room` = '".$stat[room]."' and `rank` = '10' order by level");
  42. if (empty($user_offer['time'])) {
  43. if (mysql_num_rows($ribalka)) {
  44.         for($i=0; $i<mysql_num_rows($ribalka); $i++) {
  45.                 $rib=mysql_fetch_array($ribalka);
  46. echo"<SCRIPT language=JavaScript>";
  47. echo" ShowRibalka('".$rib[user]."','".$rib[id]."','".$rib[level]."');";
  48. echo"</SCRIPT>";
  49. }
  50. }
  51. }
  52. echo "<input class=input type=submit name=do value='Ловить!'></form>";
  53. }
  54. echo "</td></tr></table></div>";
  55.  
  56.  
  57. //ЗАКРЫВАЕТ ТАБЛИЦУ!!!
  58. echo "</td><td width='50%' valign='top'>";
  59.  



Проблемный участок кода с: 26-36

П.с. Кодирую в ПХПкодер_про, незнаю почему текст символами идет.
IntegraL Отправлено: 28 Сентября, 2009 - 13:46:57 • Тема: Проблема с Функциями в скрипте! • Форум: Программирование на PHP

Ответов: 5
Просмотров: 314
Viper пишет:
а функция доступна глобально ? или она находится в каком-то файле?

сделайте include файла в котором функция и вызывайте её в bots.php


Функцйия создана в самом ботс.пхп и тамже используется, инклудить ненужно. Всеравно ее нехочет идентифицировать.
IntegraL Отправлено: 27 Сентября, 2009 - 21:38:37 • Тема: Проблема с Функциями в скрипте! • Форум: Программирование на PHP

Ответов: 5
Просмотров: 314
Ребята помогите пожалуйста.

Вобщем написал скрипт, и создал в нем функцию, содержание ее значения неимеет но общий вид всего мною проделанного выглядит так:

Сначала создал функцию (просто хочу показать структуру, вроди все правильно делаю):
CODE (language):
скопировать код в буфер обмена
  1.  
  2. function vivod () {
  3. blalala....
  4. }


затем далее в теле скрипта обращаюсь к єтой функции:

причем данное обращение пробовал ставить и ДО и ПОСЛЕ самоого описания функции..

САМА ОШИБКА, при выполнении данного скрипта, а именно чтения обращения к этой функции выводит такую ошибку:

CODE (text):
скопировать код в буфер обмена
  1. Fatal error: Call to undefined function: vivod() in C:\AppServ\www\city\bots.php on line 320
  2.  


В чем может быть ошибка? Однако

Страниц (1): [1]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB