Jump to content
  • 0

Нужен совет


maitan
 Share

Question

Задача такая, многим покажется элементарной, но не мне, ничего хитрого для профи: Есть сайт, в нем есть различные формы ввода, пользователь заполняет формы информацией, нажимает кнопку "отправить", и эти данные уносятся на сервер, где обрабатываются по заданным алгоритмам, вместе с обращением к базе данных, а затем результат выводятся на экран, тоже в виде странички.

Вопрос у меня такой, как удобнее и проще всего реализовать такую задачу? Правильно ли я понимаю, что php для этого лучший вариант?

И как программа, если это будет Php, возвращает результаты на страничку? Нужен код генерации html кода?

Link to comment
Share on other sites

5 answers to this question

Recommended Posts

  • 0

Задача такая, многим покажется элементарной, но не мне, ничего хитрого для профи: Есть сайт, в нем есть различные формы ввода, пользователь заполняет формы информацией, нажимает кнопку "отправить", и эти данные уносятся на сервер, где обрабатываются по заданным алгоритмам, вместе с обращением к базе данных, а затем результат выводятся на экран, тоже в виде странички.

Вопрос у меня такой, как удобнее и проще всего реализовать такую задачу? Правильно ли я понимаю, что php для этого лучший вариант?

И как программа, если это будет Php, возвращает результаты на страничку? Нужен код генерации html кода?

Да, php полностью подходит для этой задачи.

Все очень просто. Главное понять принцип работы. Покажу на примере формы обратной связи.

У вас есть в сайте форма, например:


<form action="feedback.php" method="post">
<p><label>ФИО:</label> <input type="text" name="user_name" /></p>
<p><label>Эл. почта:</label> <input type="text" name="user_email" /></p>
<p><label>Сообщение:</label> <textarea name="message"></textarea></p>
<p><input type="submit" value="Отправить сообщение" /></p>
</form>

Поле action в теге form содержит название файла скрипта, которому будут отправлены данные из формы для обработки.

После того, как юзер заполнил форму и нажал "Отпрваить сообщение", скрипт feedback.php получает следующие данные, которые в PHP скрипте можно получить через следующие переменные:

Начальный код feedback.php:


<?php
echo $_POST['user_name']; // Имя пользователя
echo '<br />';
echo $_POST['user_email']; // Электронная почта
echo '<br />';
echo $_POST['message']; // Сообщение
?>

После чего можно усложнить код и сделать отправку письма.

Усложненный feedback.php:


<?php

if( empty($_POST['user_name']) || empty($_POST['user_email']) || empty($_POST['message']) )
{
echo 'Вы не ввели обязательные данные!';
}
else
{
$mail_body = 'Имя: ' . $_POST['user_name'] . "\n"
.'Эл. почта: ' . $_POST['user_email'] . "\n"
.'Сообщение: ' . "\n" . $_POST['message'];

if( mail( 'youremail@gmail.com', 'Форма отправлена с сайта!', $mail_body, 'From: ' . $_POST['user_name'] . '<' . $_POST['user_email'] . '>' ) )
{
echo 'Сообщение успешно отправлено!';
}
else
{
echo 'Проблемы при отправке сообщение функцией PHP mail()';
}
}

?>

Это очень упрощенный код для понимания смысла. Для хорошего необходимы дополнительные проверки на правильность введенного email и других данных.

Опишите проблему более шире.

Edited by alanvanduke
Link to comment
Share on other sites

  • 0

Огромное спасибо, да, да я это все понимаю, уже изучил на примерах, только я опишу проблему более конкретно:

У меня есть красивый сайт index.html с CSS и так далее, на сайте есть, к примеру, для простоты, калькулятор - 2 формы для 2-х чисел и выбор операций.

Так же у меня есть файл calculator.php на сервере, который получает описанным Вами выше методом, значения, введенные на страничке index.html и выдает результат. Так вот я не понимаю, как сделать так, чтобы результат этот, как только я нажал на кнопку "посчитать" появлялся на точно такой же страничке html "с CSS и так далее", а введенные в форму числа оставались введенными в своих полях?

Link to comment
Share on other sites

  • 0

Огромное спасибо, да, да я это все понимаю, уже изучил на примерах, только я опишу проблему более конкретно:

У меня есть красивый сайт index.html с CSS и так далее, на сайте есть, к примеру, для простоты, калькулятор - 2 формы для 2-х чисел и выбор операций.

Так же у меня есть файл calculator.php на сервере, который получает описанным Вами выше методом, значения, введенные на страничке index.html и выдает результат. Так вот я не понимаю, как сделать так, чтобы результат этот, как только я нажал на кнопку "посчитать" появлялся на точно такой же страничке html "с CSS и так далее", а введенные в форму числа оставались введенными в своих полях?

То есть вы хотите чтобы резальтат считался и выводился на той же странице, желательно без перезагрузки страницы?

Тогда можно использовать JavaScript для самих расчетов, а если калькулятор использует какой то уникальный алгоритм или формулу, которую не хотелось бы разглашать, можно воспользоваться Ajax возвращением данных (это тот же JavaScript, только запрос отправляется в фоне, страница не перезагружается, а обработанные данные возвращаются на страницу) или использовать iframe.

Способ с iframe:


<form action="calculator.php" method="post" target="calculator_iframe">
...
</form>

<iframe name="calculator_irame" width="100%" height="300"></iframe>

То есть все запросы будут отправляться в фрейм, где будет показываться результат.

Edited by alanvanduke
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy