【问题标题】:Recommendations for handling HTML form data using PHP - and may Python?使用 PHP 处理 HTML 表单数据的建议 - 可能还有 Python?
【发布时间】:2020-05-25 15:53:20
【问题描述】:

我正在使用 PHP 制作一个非常简单的 HTML 表单。我想要执行表单:

  1. 向用户输入电子邮件(完成)
  2. 导出到 SQL 数据库(我已经设置了数据库)
  3. 在页面上显示输入,并可选择以 .csv 和 .pdf 格式下载结果

另一个问题,最佳实践是什么:

  1. 将 .php 文件上传到 FTP 服务器(或)
  2. 在HTML文件中写php脚本?

最后,用 Python 编写 php 脚本会更容易吗?

这是 php 代码:

    <?php
$date = $_POST['date'];
$client = $_POST['client'];
$session = $_POST['session'];
$session_type = $_POST['session_type'];
$progress = $_POST['progress'];
$previous_session = $_POST['previous_session'];
$verbal = $_POST['verbal'];
$body_language = $_POST['body_language'];
$mood = $_POST['mood'];
$objective = $_POST['objective'];
$assessment = $_POST['assessment'];
$goals = $_POST['goals'];
$quotes = $_POST['quotes'];
$summary = $_POST['summary'];

$formcontent="Client name: $client \n
Date: $date \n
Meeting: $session \n
Session type: $session_type \n
Progress: $progress \n
Previous session: $previous_session \n
Verbal: $verbal \n
Body language: $body_language \n
Mood: $mood \n
Objective: $objective \n
Assessment: $assessment \n
Goals: $goals \n
Client quotes: $quotes \n
Summary of session: $summary";
$recipient = "maryknauth@mac.com";
$subject = "Case notes for $client on $date";
$mailheader = "From: mySportPsych Admin \r\n";
mail($recipient, $subject, $formcontent, $mailheader) or die("Error!");
echo "Thank You, the case notes submitted have been emailed to $recipient and are also listed below:\n
Client name: $client\n
Date: $date\n
Meeting: $meeting\n
Session type: $session_type\n
Progress: $progress\n
Previous session: $previous_session\n
Verbal: $verbal\n
Body language: $body_language\n
Mood: $mood\n
Objective: $objective\n
Assessment: $assessment\n
Goals: $goals\n
Client quotes: $quotes\n
Summary of session: $summary";?>

这是 HTML 表单:

        <form action="case_notes.php" method="post">
     <h4 class="text-form-section">Overview</h4>
        <hr class="style-hr">
     <!-- Date -->  
    <label for="date" class="label">Date</label>
        <br>
    <input name="date" type="date" class="input-text" id="date">
        <br>
<!-- Client --> 
    <label for="client" class="label">Client</label>
        <br>
    <input name="client" type="text" class="input-text" id="client">
        <br>
<!-- Session -->
<!-- Is this supposed to be a number? -->
    <label for="session" class="label">Session</label>
        <br>
    <input name="session" type="text" class="input-text" id="session">
        <br>
<!-- Type of Session -->
    <label for="session_type" class="label">Session Type</label>
        <br>
        <select name="session_type" id="session_type">
            <option value="null"></option>
            <option value="free">Free Consultation</option>
            <option value="initial">Initial Consultation</option>
            <option value="regular">Regular Consultation</option>
            <option value="termination">Termination</option>
            <option value="other">Other</option>
        </select>   
        <br>

<!-- Progress -->
    <label for="progress" class="label">Progress</label>
        <br>
        <select name="progress" id="progress">
            <option value="null"></option>
            <option value="very_good">Very Good</option>
            <option value="good">Good</option>
            <option value="none">No Progress</option>
            <option value="regression">Regression</option>
        </select>   

      <br>
        <br>
<!-- Previous session review -->    
    <label for="previous_session" class="label">Previous session review</label>
        <br>
    <input name="previous_session" type="textarea" class="input-text" id="previous_session" rows="5" cols="30">
        <br>
 <!-- Subject Review -->
    <div class="subject review">    
    <h4 class="text-form-section">Subject</h4>
        <hr class="style-hr">
    <label for="verbal" class="label">Verbal</label>
        <br>
    <input name="verbal" type="textarea" class="input-text" id="verbal" rows="5" cols="30">
        <br>
    <label for="body_language" class="label">Body Language</label>
        <br>
    <input name="body_language" type="textarea" class="input-text" id="body_language" rows="5" cols="30">
        <br>
    <label for="mood" class="label">Mood</label>
        <br>
    <input name="mood" type="textarea" class="input-text" id="mood" rows="5" cols="30">
    </div>
    <h4 class="text-form-section">Session Review</h4>
        <hr class="style-hr">
    <label for="objective" class="label">Objective</label>
        <br>
    <input name="objective" type="textarea" class="input-text" id="objective" rows="5" cols="30">   
        <br>

    <label for="assessment" class="label">Assessment</label>
        <br>
    <input name="assessment" type="textarea" class="input-text" id="assessment" rows="5" cols="30">
        <br>

    <label for="goals" class="label">Goals</label>
        <br>
    <input name="goals" type="textarea" class="input-text" id="goals" rows="5" cols="30">
        <br>

    <label for="quotes" class="label">Client Quotes</label>
        <br>
    <input name="quotes" type="textarea" class="input-text" id="quotes" rows="5" cols="30">
        <br>

    <label for="summary" class="label">Summary</label>
        <br>
    <input name="summary" type="textarea" class="input-text" id="summary" rows="5" cols="30">
        <br>
        <br>

    <input type="submit" class="button">

</form> 

【问题讨论】:

  • 你尝试过什么吗?或者你认为我们会为你做的?检查这个:stackoverflow.com/help/how-to-ask
  • 您应该一次提出一个问题,以便大多数人(包括我)轻松理解它们。我们想提供帮助。让每个人的问题都简单明了

标签: php mysql forms validation export


【解决方案1】:
  1. 我无法在您的表单中看到任何 &lt;input&gt; field for Email。要向用户发送电子邮件,您应该通过表单接收用户的电子邮件地址。对?此外,您在mail() 函数中使用了您的电子邮件地址为recipient。在表单中添加电子邮件字段后,不要忘记在分配到 mail() 之前验证电子邮件。

  2. 我假设您需要将表单数据插入数据库。为此,您应该使用 PHP 创建一个数据库连接,并使用 SQL 查询将其插入到数据库表中。

  3. 在页面上显示数据很简单,我可以将此与您的其他问题 Write the PHP script in the HTML file? 联系起来。您不能在 HTML 文件中运行 PHP 脚本,反之亦然。您可以在 PHP 脚本中编写 HTML!因此,您可以将上述两个文件合并为一个 PHP 文件,或者您可以将表单拆分为 HTML 文件,并在 PHP 文件中处理请求,并将表单数据输出到表中(在插入数据库、邮件等之后)。

用 Python 编写 PHP 脚本会更容易吗

没有。您不能在 python 文件中编写 PHP,或者您的意思是是否应该用 Python 编写。这完全取决于你。我会说 PHP 更容易开始,但更难掌握。所以做正确的基础,清楚地理解概念。此外,清楚了解相关技术(HTTP、Mail)及其工作原理。

最后,慢慢来,缓慢而稳定地积累知识。

以下链接将帮助您了解:

PHP MySQL INTRODUCTION

PHP MySQL INSERT

PHP Form Handling

【讨论】:

    猜你喜欢
    • 2013-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多