我目前正在为我的网站制作网页。我的页面的目的是显示我的员工的每日统计信息。例如,他们的表现和客户满意度。我将按如下方式显示这些数据。
<body>
<table>
<tr>
<td>Bob</td> <!--Name-->
<td>96%</td> <!--Customer Satisfaction-->
<td>2%</td> <!--48 hour callback-->
</tr>
<tr>
<td>Jack</td> <!--Name-->
<td>98%</td> <!--Customer Satisfaction-->
<td>5%</td> <!--48 hour callback-->
</tr>
</table>
</body>
我想每天添加这些统计信息。我知道我可以每晚手动上传这些号码,但这似乎很乏味,因为我有30多名员工。我的问题是,是否有更简单的方法将数据上传到html文件?有没有办法向网络服务器发送电子邮件,让代码扫描数据,并获取这些数字并自动将这些数字更新到他们需要去的地方?任何建议或想法将不胜感激!谢谢。
答案 0 :(得分:1)
您可以执行以下解决方案
修改强>
有关使用守望者的更多信息,请参阅this link
答案 1 :(得分:1)
是。有很多方法可以做到这一点。
最标准的方法是让员工将数据上传到服务器并将数据输入数据库,然后使用PHP根据数据库内容呈现HTML。
您的第一个任务是获取服务器上的数据。 电子邮件不会成为这样做的方式。电子邮件使用SMTP / S和IMAP协议,这些协议可能非常棘手,需要知道错误(和庞大)的库来处理。使用非常友好的HTTP / S协议来发布数据,你会更高兴。
基本上HTTP帖子就是这样的。您在某个网页上添加了HTML form,您的员工可以将这些数据提交给您的服务器。它看起来像这样。
<form action="data_receiving_endpoint.php" method="post">
Username:<br/>
<input type="text" name="username" placeholder="Please input your full name."/>
Password:<br/>
<input type="password" name="password" placeholder="Please input your password."/>
How You Feel About Working for Me Today:<br/>
<input type="text" name="feelings" placeholder="Please input your feelings."/>
<input type="submit" value="Submit"/>
</form>
您可以自己了解更多表格,但您应该注意的是
action
属性指向服务器上的某个页面。您可以更清楚地将action="data_receiving_endpoint.php
视为<yourhostname>/data_receiving_endpoint.php
。method
属性指定要使用的HTTP方法 - 在这种情况下为POST。name
属性。type="submit"
。这将是一个按钮,在点击时执行action
。当用户点击&#34;提交&#34;浏览器将向您的服务器发出HTTP POST请求。该请求将包含一个看起来像这样的有效负载。
username=Jimmy%20John&password=iamjimmyjohn&feelings=You%27re%20the%20worst%20boss%20in%20the%20world!
&#34;%xx&#34;符号是HTML表单数据中不支持的字符的十六进制代码。翻译时,此数据变为
username=Jimmy John
&
password=iamjimmyjohn
&
feelings=You're the worst boss in the world!
您的下一个任务是获取员工的数据,并将其存储在可用的地方,如数据库。对于这个例子,我假设你将使用MySQLi,你可能会使用TBH。
接下来需要在HTML表单中action
引用的URI处发生什么。您需要在/data_receiving_endpoint.php
创建一个PHP文件。这将是一个脚本文件,将被执行以处理任何传入的请求。
此PHP文件需要获取发布数据并将其提交到MySQLi数据库。它看起来像这样。如果您不熟悉SQL (Standard Query Language)语法,则需要了解它。
<?php
$dbhostname = 'localhost';
$adminuser = 'thebossman';
$adminpwd = 'secretPassword';
$dbname = 'thebossmansdatabase';
// connect to your database (it's its own server in a way)
$connection = new mysqli($dbhostname, $adminuser, $adminpwd, $dbname);
if ($connection->connect_error) {
// if connection failed then abort
header('HTTP/1.1 500 Internal Server Error');
die('failed to establish connection');
}
// image you have a table named "DataTable"
// first step is to validate the user's password
// we can use variables from the post data by calling $_POST['variable name']
$verifyCommand = 'SELECT * FROM DataTable WHERE username='.$_POST['username'];
$result = $connection->query($verifyCommand);
if ($result->num_rows == 0) {
// the user is unknown, you should abort
header('HTTP/1.1 403 Forbidden');
die('user was not recognized.');
}
$row = $result->fetch_assoc();
if ($row['password'] != $_POST['password']) {
// the user cannot be authenticated
header('HTTP/1.1 404 Unauthorized');
die('The user was not authenticated.');
}
// now the user is authorized and you should update the database
$updateCommand = 'UPDATE DataTable SET feelings='.$_POST['feelings'].' WHERE username='.$_POST['username'];
if ($connection->query($updateCommand) !== TRUE) {
// database update failed
header('HTTP/1.1 500 Internal Server Error');
die('database update failed');
}
// you're done. you can close the connection.
$connection->close();
php?>
<!-- REMEMBER THE USER WILL BE SENT TO THIS PAGE SO THERE SHOULD BE SOME HTML BELOW THIS -->
现在,您已将用户发布的数据安全地存储在您的服务器中。
这就是PHP的目的。在这里,您将设计一个脚本,根据服务器中数据库的内容动态创建网页。
这是一个非常简单的过程。所有发生的事情是,<?php
... php?>
包围的任何文本都将在HTML发送给用户之前执行。您可以使用echo
方法将一行文本打印到HTML文件中。
在页面开头你应该有这样的东西
<?php
$connection = new mysqli('localhost', 'thebossman', 'secretPassword', 'thebossmansdatabase');
if ($connection->connect_error) {
header('HTTP/1.1 500 Internal Server Error');
die('failed to connect to database');
}
php?>
然后,您将在脚本执行的整个时间内保持连接可用。记住你需要把底部放在
<?php
$connection->close();
php?>
从现在开始生成显示并不困难。基本上你只是想出一个系统的方法来填充数据。例如,而不是
<table>
<head>
<th>Name</th>
<th>Feelings</th>
</thead>
<tbody>
<tr>
<td>Jimmy John</td>
<td>You're the worst boss in the world!</td>
</tr>
<tr>
<td>Jenna Whatever</td>
<td>I don't mind you.</td>
</tr>
</tbody>
</table>
您可以这样做来动态生成页面。
<table>
<head>
<th>Name</th>
<th>Feelings</th>
</thead>
<tbody>
<?php
$result = $connection->query('SELECT username, feelings FROM DataTable');
while ($row = $result->fetch_assoc()) {
echo '<tr><td>';
// remember to escape special charaters
echo htmlspecialchars($row['username']);
echo '</td><td>';
echo htmlspecialchars($row['feelings']);
echo '</td></tr>';
}
php?>
</tbody>
</table>
这基本上就是你所要求的。