Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите пожалуйста с php/html кодом

Пользователь удален Профи (688), закрыт 5 лет назад
Вот я хочу написать мини-бота. Но у меня не получается вывести на кнопках текст переменных и сам бот ничего не отвечает. Помогите пожалуйста!
Кусочек кода с исполняемого файла:
<?php
require_once 'function.php';
$otvet = Program1();//
$message = Program1();//
?>//
Вот кусочек html-кода с исполняемого файла: //

form class="form1" method="post">//
Бот-программист: //
<?php echo $message;?> //
//
Вы: //
<input class="button1" type="submit" name="but1" value="<?php echo $otvet;?>">//
<input class="button2" type="submit" name="but2" value="<?php echo $otvet2;?>">//
//

А вот код с файла функций:

<?php//
require_once 'ProgramBot.php';//
function Program1()//
{//
$otvet = "Привет";//
$otvet2 = "Не хочу с тобой общаться";//
$message = "Привет";//
if (isset($_POST['but1'])) //
{//
$otvet = "Хорошо, у тебя как?";//
$message = "Как дела?";//
} //
else if (isset($_POST['but2']))//
{//
$message = "Ладно, пока!";//
echo $otvet3 = "";//
$otvet = "";//
$otvet2 = "";//
}//
}//
Program1();//
?>//

Бот работает на localhost'е, никаких серверов и тп. Я уже ВСЁ перепробовал, что нашёл в интернете, но ничего не получается (не надо писать пожалуйста: что это за г ()вно-код? что это такое? я просто реально уже устал). ПОМОГИТЕ, ПОЖАЛУЙСТА!
Дополнен 5 лет назад
Эти "//" на всякий случай, мало ли, может мейл удаляет код.
Лучший ответ
Тимур Рахмеев Мастер (1525) 5 лет назад
<?php
$otvet = "Привет";
$otvet2 = "Не хочу с тобой общаться";
$message = "Привет";
if(isset($_POST['but1'])){
$otvet = "Хорошо, у тебя как?";
$message = "Как дела?";
}
elseif(isset($_POST['but2'])){
$message = "Ладно, пока!";
echo $otvet3 = "";
$otvet = "";
$otvet2 = "";
}
?>
<h1><?php echo $message;?><h1>
<form action="1.php" class="form1" method="post">
<input class="button1" type="submit" name="but1" value="<?php echo $otvet;?>">
<input class="button2" type="submit" name="but2" value="<?php echo $otvet2;?>">
</form>

Создай файл 1.php с таким содержимым. и запусти его
Пользователь удаленПрофи (688) 5 лет назад
Ахах, спасибо конечно, но если бы это было так легко, я бы не обращался. Смотрите, я хочу, чтобы после выполнения:
$message = "Привет";
if(isset($_POST['but1'])){
$otvet = "Хорошо, у тебя как?";
$message = "Как дела?";
}
Переменная $otvet переопределилась на:
$otvet = "Вот за компом сижу";
и $message = "Нормально. Что делаешь?";
Ну то есть при нажатии кнопки с именем but1 (привет), бот ответил (как дела?). И вот здесь трудности: переменная $otvet переопределилась на "Хорошо, как у тебя", но дальше код не работает, если создать elseif(){
$otvet = "Вот за компом сижу";
и $message = "Нормально. Что делаешь?";
},
так как кнопка одна и та же-с именем but1
Есть какой-нибудь способ решения, кроме создания тысячи кнопок для "диалога"?
Пользователь удаленПрофи (688) 5 лет назад
Я в функцию запихнул просто опробовать, а потом уже забил и спросил здесь. Я пробовал через if'ы, но мне нужен функционал более обширный, то есть дальнейшие переопределения переменных $otvet и $message были при нажатии кнопки but1 и так до конца диалога!
Тимур Рахмеев Мастер (1525) блин я тебе наводку дал, там логически все понятно, и elseif можно бесконечно повторять. это конечно колхоз, но работать будет.
Остальные ответы
Imobilazer Искусственный Интеллект (222379) 5 лет назад
А локальный сервер PHP установлен? Без него от PHP толку ноль)
Да и почему текст кнопок в функции? Переменные ж видны только внутри неё
Андрей Высший разум (422110) 5 лет назад
А нормальный учебник PHP читать не пробовал? В PHP внутри функции ВСЕ переменные по умолчанию ЛОКАЛЬНЫ. Т. е. они существуют ТОЛЬКО в этой функции и никакое их изменение НЕ МОЖЕТ повлиять на значения одноимённых переменных ВНЕ этой функции.

Хочешь работать внутри функции с глобальными переменными - читай http://php.net/manual/ru/language.variables.scope.php
Пользователь удаленПрофи (688) 5 лет назад
Я вот и написал, чтобы вы не писали "Что это за г0вно-код". Я в функцию запихнул просто опробовать, а потом уже забил и спросил здесь. Я пробовал через if'ы, но мне нужен функционал более обширный, то есть дальнейшие переопределения переменных $otvet и $message были при нажатии кнопки but1 и так до конца диалога!
Похожие вопросы