В основном, как и в других вопросах, которые я задал в связи с моим приложением php chat, я пытаюсь получить его так, что есть текстовое поле, в котором через msg.txt отображается msg.txt. Таким образом, два пользователя могут общаться друг с другом. Это было бы легко, если бы я хотел использовать простую функцию include. Но я не хочу брать на себя все усилия, чтобы сделать и загрузить все эти страницы на свой сервер. Итак, как я могу его найти, когда пользователь, например, названный Aaron, нажимает кнопку «Бенджамин» и нажимает на файл под названием aaronbenjamin.txt, и если Аарон хочет поговорить с другим пользователем, он может нажать на кнопку под названием Chris , и введите в файл с именем aaronchris.txt? И все из того же поля и текстового поля? Спасибо, я ценю это.
EDIT: Это мой код-
http://key-mail.zxq.net/msg.txt
Ну, вы должны узнать об использовании форм с PHP в отношении вашего комментария. Если вы полностью прочитали этот учебник, он должен ответить на все ваши вопросы о формах и php.
Что бы заставить его писать в другой текстовый файл, так как вы, похоже, беспокоитесь о «загрузке всех этих страниц», вы с удовольствием узнаете, что есть простое решение!
Существует функция, называемая file_put_contents
, которая будет создавать или записывать в файл.
Поскольку вы новый (ish) для PHP, вот пример:
<?php $file = 'hello.txt'; $text = 'Hello World!'; file_put_contents($file, $text); ?>
Это помещает содержимое переменной $text
в файл с именем, хранящимся в $file
.
Чтение из файла аналогично легко, с file_get_contents
.
Предполагая, что файл hello.txt
существует раньше и имеет одно и то же содержимое, вы можете использовать следующий код для чтения из файла и вывода его содержимого:
<?php $file = 'hello.txt'; echo(file_get_contents($file)); ?>
Это покажет содержимое файла $ file.
Теперь, перейдя к специфике вашего вопроса, если ваша форма устанавливает переменную «to» и «from» GET, где «to» уже является вашим именем пользователя, тогда следующий код будет записывать значение в переменной «message» GET в файл на основе шаблона, который вы дали:
<?php $to = addslashes($_GET['to']); $from = addslashes($_GET['from']); $msg = addslashes($_GET['message']); //addslashes is used as a small security measure $file = $to . $from . '.txt'; file_put_contents($file, $msg); ?>
Это извлекает наши переменные из массива GET, в какой-то степени дезактивирует их, устанавливает имя файла и записывает сообщение в файл.
Если у вас есть какие-либо вопросы об определенных частях этого или вы хотите, чтобы я углубился в более подробные сведения, пожалуйста, не стесняйтесь спрашивать!
Вот как писать в файл: http://php.net/manual/en/function.fopen.php
Вам лучше использовать базу данных точно.
Чтобы разные ссылки делали разные вещи, вы можете использовать AJAX, как вы предложили, или вы можете использовать переменные GET для маршрутизации функций на стороне PHP. Последнее проще, но означает, что вам нужно будет перезагрузить страницу после нажатия пользователем кнопки.
вот небольшая демонстрация:
<a href="thispage.php?clicked=1">click here</a>
затем в верхней части страницы в php:
if($_GET['clicked']==1){--write to file1---} else if($_GET['clicked']==2){--write to file2---}
Надеюсь, поможет