Создание базового сценария PHP для добавления строк на веб-страницу - PullRequest
1 голос
/ 28 августа 2010

Я в основном парень по Java, поэтому мне нужна помощь в том, что, как я полагаю, довольно просто сделать в PHP (и довольно просто в Java, хотя, возможно, немного ... многословно).

Проще говоря, я хочу создать веб-страницу со списком строковых элементов, которые добавили пользователи. Внизу страницы будет место, в котором пользователь может напечатать, например, «Hello World» в поле и нажать кнопку «Отправить», добавив его в список элементов. Добавление к верху или низу списка не имеет значения - я, вероятно, смогу настроить это позже.

Я из тех парней, которые не просто любят ответы, но в то же время у меня есть нет идеи, где даже начинать поиск. Я не занимался разработкой PHP раньше. Какие виды конструкций или функций я должен смотреть? У меня есть физическая коробка, на которой он будет работать (теперь он буквально рядом со мной), поэтому разрешения не являются ограничением, и ни одна из них не получает ничего другого, что могло бы помочь ситуации (хотя я не понимаю, как это будет нужен для такого простого сценария). Какие виды проверки входных данных мне следует по-настоящему опасаться? Эта услуга будет доступна только людям, которым предоставлен доступ к определенному разделу веб-сайта на основе Apache, поэтому им необходимо войти в систему, чтобы увидеть эту запланированную страницу, но я бы хотел охватить все возможности.

Кроме того, я бы хотел, чтобы вывод был похож на

«Hello World» добавленый пользователем User1

"Это дополнительная строка", добавленная пользователем2

"Goodbye World", добавленный пользователем User1

в будущем. Что я должен смотреть, чтобы сделать это?

Обновление для ответа на вопросы:

Когда дело доходит до хранения фактического контента, я склонялся бы к простому файлу, содержащему каждую запись построчно, как предложил полковник Шрапнель. Думаю, база данных будет излишней, хотя у меня есть все возможности для ее реализации. Если пользователь отправляет "Hello World!" затем добавив в файл строку с именем

"Привет, мир!" опубликовал User1

достаточно.

Что касается аутентификации, это уже настроено в файле конфигурации Apache httpd.conf. В настоящее время это позволяет получить доступ к определенной группе пользователей через запись AuthGroupFile. Это где сценарий будет размещен. Чтобы получить доступ к этому сценарию, пользователи уже будут аутентифицироваться с использованием своих учетных данных. Проверка подлинности в настоящее время работает для этого раздела сайта. На самом деле, это вторичная моя проблема. Достаточно того, что строки просто добавляются без записи того, кто что сказал. Это просто сахар на пироге с PHP, если это можно легко сделать с помощью того, что я уже реализовал.

Ответы [ 2 ]

0 голосов
/ 28 августа 2010

Ну, да, в PHP он довольно короткий.
При условии, что используется авторизация на основе Apache

<?
$file = "messages.txt";
if ($_SERVER["REQUEST_METHOD"]=="POST") {
  $_POST['mess'] = str_replace(array("\r","\n"),"",$_POST['mess']; 
  file_put_contents($file, $_POST['mess']." ".$_SERVER["REMOTE_USER"]);
  header("Location:".$_SERVER["PHP_SELF"]);
  exit;
}
echo nl2br(htmlspecialchars(file_get_contents($file)));
?>
<form method="POST">
<input type="text" name="mess">
<input type="submit">
</form>
0 голосов
/ 28 августа 2010

У вас будет несколько дел:

  • Выберите хранилище данных.MySQL является популярным выбором при работе с PHP.Не похоже, что это будет большой объем, так что большинство постоянных хранилищ будет работать.
  • Принимая ввод, вам нужно очистить его для вставки в БД (опять же, если вы используете MySQL), проверьте документы ), а затем выполните инструкцию INSERT, чтобы поместить ее в базу данных.
  • При отображении страницы вы подключитесь к БД (проверьте документы ), запросите данные из хранилища данных, зациклите их и просмотрите каждую строку после очистки от любых потенциально вредоносных данных.

Краткий пример может выглядеть примерно так:1015 *

<?
// Assuming a database named "my_database" with a table called "chat_lines", which has "username", "line", and "timestamp" fields.
$db = mysql_connect("localhost", "username", "password");
mysql_select_db("my_database", $db);

// If data was posted to the script, scrub it and store it in the database.
if($_POST["username"] && $_POST["line"]) {
  mysql_query(sprintf("INSERT INTO chat_lines (username, line, timestamp) VALUES (\"%s\", \"%s\", NOW())",
    mysql_real_escape_string($_POST["username"]),
    mysql_real_escape_string($_POST["line"])
  ));
}

// Fetch all lines from the database in reverse chronological order
$result = mysql_query("SELECT * FROM chat_lines ORDER BY timestamp DESC");
while($row = mysql_fetch_assoc($result)) {
  echo sprintf("<div>%s said %s</div>", strip_tags($result["username"]), strip_tags($result["line"]));
}
?>

<form method="post">
  <div>Username: <input type="text" name="username" /></div>
  <div>Line: <input type="text" name="line" /></div>
  <input type="submit" />
</form>

В этом примере делаются предположения о том, что пользователям разрешено вводить любое имя пользователя, которое они хотят (то есть он не предполагает реализацию системы аутентификации), хранилище данных и существование таблицы и все такое, но вы должны начать.Документация PHP довольно обширна и может быть очень полезной.В частности, прочитайте Getting Started и Справочник по языку .

...