实现一个成绩管理网站,参考要求:前端:HTML的常用标签,包括不限于表单、表格、超链接等;CSS和Javascript使用外部导入方式;后台:至少包括文件上传和下载功能、注册和登录功能等,写出完整代码
时间: 2024-02-04 21:02:10 浏览: 102
基于Jsp+Servlet+纯(HTML+CSS+JavaScript)实现的学生成绩管理系统
好的,这里提供一个基本的成绩管理网站的代码,实现了文件上传和下载功能,以及注册和登录功能。
前端代码:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>成绩管理</title>
<link rel="stylesheet" href="style.css">
<script src="script.js"></script>
</head>
<body>
<h1>成绩管理</h1>
<form action="upload.php" method="post" enctype="multipart/form-data">
<h2>上传成绩单</h2>
<input type="file" name="file"><br>
<input type="submit" value="上传">
</form>
<hr>
<h2>成绩列表</h2>
<table>
<tr>
<th>姓名</th>
<th>语文</th>
<th>数学</th>
<th>英语</th>
<th>总分</th>
</tr>
<?php
// 从数据库中获取成绩列表并输出到表格中
require 'db.php';
$stmt = $pdo->query('SELECT * FROM scores');
while ($row = $stmt->fetch()) {
echo "<tr>";
echo "<td>" . $row['name'] . "</td>";
echo "<td>" . $row['chinese'] . "</td>";
echo "<td>" . $row['math'] . "</td>";
echo "<td>" . $row['english'] . "</td>";
echo "<td>" . ($row['chinese'] + $row['math'] + $row['english']) . "</td>";
echo "</tr>";
}
?>
</table>
<hr>
<h2>下载成绩单</h2>
<form action="download.php" method="post">
<input type="submit" value="下载">
</form>
<hr>
<h2>注册</h2>
<form action="register.php" method="post">
<label for="username">用户名:</label>
<input type="text" name="username" required><br>
<label for="password">密码:</label>
<input type="password" name="password" required><br>
<input type="submit" value="注册">
</form>
<hr>
<h2>登录</h2>
<form action="login.php" method="post">
<label for="username">用户名:</label>
<input type="text" name="username" required><br>
<label for="password">密码:</label>
<input type="password" name="password" required><br>
<input type="submit" value="登录">
</form>
</body>
</html>
```
CSS代码:
```css
table {
border-collapse: collapse;
width: 100%;
}
th, td {
text-align: center;
padding: 8px;
}
th {
background-color: #4CAF50;
color: white;
}
tr:nth-child(even) {
background-color: #f2f2f2;
}
```
JavaScript代码:
```javascript
// 一些 JavaScript 交互代码
```
后台代码:
上传成绩单的 `upload.php`:
```php
<?php
// 处理上传的成绩单并存储到数据库中
require 'db.php';
if ($_FILES["file"]["error"] > 0) {
echo "上传失败:" . $_FILES["file"]["error"];
} else {
$filename = $_FILES["file"]["name"];
$ext = pathinfo($filename, PATHINFO_EXTENSION);
if ($ext != "xlsx" && $ext != "xls") {
echo "上传失败:文件格式不正确!";
} else {
move_uploaded_file($_FILES["file"]["tmp_name"], "uploads/" . $filename);
// TODO: 读取上传的成绩单并存储到数据库中
echo "上传成功!";
}
}
?>
```
下载成绩单的 `download.php`:
```php
<?php
// 下载成绩单
$filename = "uploads/成绩单.xlsx";
if (file_exists($filename)) {
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="'.basename($filename).'"');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($filename));
readfile($filename);
exit;
} else {
echo "文件不存在!";
}
?>
```
注册的 `register.php`:
```php
<?php
// 处理用户注册请求并存储到数据库中
require 'db.php';
$username = $_POST['username'];
$password = $_POST['password'];
$stmt = $pdo->prepare('INSERT INTO users (username, password) VALUES (?, ?)');
$stmt->execute([$username, $password]);
echo "注册成功!";
?>
```
登录的 `login.php`:
```php
<?php
// 处理用户登录请求并验证
require 'db.php';
$username = $_POST['username'];
$password = $_POST['password'];
$stmt = $pdo->prepare('SELECT * FROM users WHERE username = ? AND password = ?');
$stmt->execute([$username, $password]);
$user = $stmt->fetch();
if ($user) {
echo "登录成功!";
} else {
echo "登录失败:用户名或密码错误!";
}
?>
```
其中,`db.php` 是数据库连接文件,内容如下:
```php
<?php
// 数据库连接信息
$host = 'localhost';
$dbname = 'database_name';
$username = 'username';
$password = 'password';
// 创建 PDO 连接
try {
$pdo = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
// 设置 PDO 错误模式为异常
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
echo "数据库连接失败:" . $e->getMessage();
}
?>
```
需要注意的是,实际使用时需要根据自己的实际情况修改数据库连接信息和文件存储路径等相关参数。
阅读全文