php - 使用 PHP 处理 HTML 表单数据的建议 - 可能还有 Python?
问题描述
我正在使用 PHP 制作一个非常简单的 HTML 表单。我想要执行的表格:
- 给用户的电子邮件输入(完成)
- 导出到 SQL 数据库(我已经设置了数据库)
- 在页面上显示输入并可选择将结果下载为 .csv 和 .pdf
另一个问题,最佳实践是什么:
- 将 .php 文件上传到 FTP 服务器(或)
- 在 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>
解决方案
我无法
<input> field for Email
在您的表格中看到任何内容。要向用户发送电子邮件,您应该通过表单从用户那里收到电子邮件地址。正确的?recipient
此外,您在函数中使用了您的电子邮件地址mail()
。在表单中添加电子邮件字段后,不要忘记在分配到mail()
.我假设您需要将表单数据插入数据库。为此,您应该使用 PHP 创建一个数据库连接,并使用 SQL 查询将其插入到数据库表中。
在页面上显示数据很简单,我可以将其与您的其他问题联系起来
Write the PHP script in the HTML file?
。您不能在 HTML 文件中运行 PHP 脚本,但反之亦然。您可以在 PHP 脚本中编写 HTML!因此,您可以将上述两个文件合并到一个 PHP 文件中,或者您可以将表单拆分为 HTML 文件,并在 PHP 文件中处理请求,并将表单数据输出到表中(在插入数据库、邮件等之后)。
用 Python 编写 PHP 脚本会更容易吗
不,您不能在 python 文件中编写 PHP,或者您的意思是是否应该用 Python 编写。这完全取决于你。我会说 PHP 更容易开始,但更难掌握。所以做正确的基础,清楚地理解概念。此外,清楚地了解相关技术(HTTP、Mail)及其工作原理。
最后,慢慢来,缓慢而稳定地积累知识。
以下链接将帮助您了解:
推荐阅读
- algorithm - 计算递归函数的原始操作
- variables - 更改变量类型使我的数值变为 "TRUE" s
- flutter - 颤振:在我的行儿童中添加 Spacer() 后出错
- maven - 为什么maven packege产生4个jar文件?
- android - React Native Android Build - 无效的UTF-8延续字节
- javascript - 创建一个函数以根据列在单击时为单元格着色
- python - 使用 pandas 将数组连接到单个表中
- r - 如何在 flextable 标题中使用多种字体大小?
- python - LSTM出现ValueError: Shapes (5, 2, 3) and (5, 3) is incompatible
- python-3.x - 在保留重复项的同时转置多个 pandas 列