原生php实现大案例(特色:不登录不能使用功能 注册 登录 文件上传 发帖 列表页 详情页 )提供sql

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 原生php实现大案例(特色:不登录不能使用功能 注册 登录 文件上传 发帖 列表页 详情页 )提供sql

sql在最下面!!!

php.php

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
</head>
<body>
  <a href="registered.php">注册</a>
  <a href="login.php">登陆</a>
</body>
</html>

注册:registered.php

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
</head>
<body>
  <form action="registered.php" method="POST">
    注册:<input type="text" name="username">
    <input type="password" name="password">
    <input type="submit" value="提交">
  </form>
</body>
</html>
<?php
//用户输入的(表单传过来的)
$username=$_POST['username'];
$password=$_POST['password'];
if(!$username||!$password)
{
  exit();
}
$link=mysqli_connect('localhost','root','','a');
//然后是指定php链接数据库的字符集
mysqli_set_charset($link,'utf8');
$sql = "INSERT INTO login(username,password)
VALUES ('{$username}','{$password}')";
$query=mysqli_query($link,$sql);
echo "<script>alert('恭喜你,注册cyg管理系统成功啦');location.href='login.php';</script>";

登录:login.php

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
</head>
<body>
  <form action="login.php" method="POST">
    登录:<input type="text" name="username">
    <input type="password" name="password">
    <input type="submit" value="提交">
  </form>
</body>
</html>
<?php
session_start();
//用户输入的(表单传过来的)
$username=$_POST['username'];
$password=$_POST['password'];
if(!$username||!$password)
{
  $_SESSION['login']=0;
  exit();
}
else
{
  $_SESSION['login']=1;
//=========================
$link=mysqli_connect('localhost','root','','a');
//然后是指定php链接数据库的字符集
mysqli_set_charset($link,'utf8');
//查询然后判断数据库中的用户名username+密码password是不是与表单传过来的$username+$password相匹配.
$sql="select * from login where username='{$username}' and password='{$password}'";
$query=mysqli_query($link,$sql);//运行sql
$result=mysqli_fetch_array($query);//把对象变成数组,不然直接输出会报错
if($result)
{
echo "<script>alert('登录成功');window.location.href='index.php';</script>";
}
else
{
  echo "<script>alert('抱歉,用户还没注册过')</script>";
}
}

登录后:有发帖功能index.php

<?php
session_start();
if($_SESSION['login']!=1)
{
  echo "<script>alert('抱歉,用户还没登录');window.location.href='login.php';</script>";
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
</head>
<body>
  <a href="ft.php">点击发帖</a>
</body>
</html>

发帖页:ft.php

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
<form action="ft.php" method="POST" enctype="multipart/form-data">
    <!--<input type="hidden" name="MAX_FILE_SIZE" value="30000" />-->
    Send this file: <input name="file" type="file" />
    <textarea name="content" id="" cols="300" rows="100"></textarea>
    <input type="submit" value="提交" />
</form>
</script>
</body>
</html>
<?php
$link=mysqli_connect('localhost','root','','a');
            mysqli_set_charset($link,'utf8');
$content=$_POST['content'];
echo move_uploaded_file($_FILES['file']['tmp_name'],'../upload/'.basename($_FILES['file']['name']));
$file='../upload/'.basename($_FILES['file']['name']);
$sql = "INSERT INTO ft(content,file)
VALUES ('{$content}','{$file}')";
mysqli_query($link,$sql);
?>
<a href="list.php">回到列表页</a>

列表页:list.php

<?php
$link=mysqli_connect('localhost','root','','a');
//然后是指定php链接数据库的字符集
mysqli_set_charset($link,'utf8');
$sql="select * from ft";
//模糊查询出像数据库中的title或者content里面的值或者说像数据库中的title或者content里面的某一段值相对应的就行了,就可以输出啦
$result=mysqli_query($link,$sql);//运行sql
?>
<!--显示的效果-->
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
</head>
<body>
    <?php 
      while ($row=mysqli_fetch_array($result)) {//把对象编程数组输出,不然会报错哦
        # code...
       echo "<div>$row[content]</div>";
 echo "<a href='detail.php?id=$row[id]'><img src=$row[file] /></a>";
  }
    ?>
</body>
</html>

详情页:detail.php

<?php
$id=$_GET['id'];
$link=mysqli_connect('localhost','root','','a');
//然后是指定php链接数据库的字符集
mysqli_set_charset($link,'utf8');
$sql="select * from ft where id=$id";
//模糊查询出像数据库中的title或者content里面的值或者说像数据库中的title或者content里面的某一段值相对应的就行了,就可以输出啦
$result=mysqli_query($link,$sql);//运行sql
      while ($row=mysqli_fetch_array($result)) {//把对象编程数组输出,不然会报错哦
        # code...
       echo "<div>$row[content]</div>";
  }
?>
-- phpMyAdmin SQL Dump
-- version 4.5.1
-- http://www.phpmyadmin.net
--
-- Host: 127.0.0.1
-- Generation Time: 2022-04-04 16:29:26
-- 服务器版本: 10.1.13-MariaDB
-- PHP Version: 5.6.21
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
--
-- Database: `a`
--
-- --------------------------------------------------------
--
-- 表的结构 `ft`
--
CREATE TABLE `ft` (
  `id` int(30) NOT NULL,
  `content` text COLLATE utf8_vietnamese_ci NOT NULL,
  `file` varchar(255) COLLATE utf8_vietnamese_ci NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_vietnamese_ci;
--
-- 转存表中的数据 `ft`
--
INSERT INTO `ft` (`id`, `content`, `file`) VALUES
(12, 'aaa', '../upload/1.jpg'),
(13, '', '../upload/'),
(14, '666', '../upload/8c97b378cb62cb233382d763cf6c90ef.jpeg');
-- --------------------------------------------------------
--
-- 表的结构 `login`
--
CREATE TABLE `login` (
  `id` int(11) NOT NULL,
  `username` varchar(100) COLLATE utf8_vietnamese_ci NOT NULL COMMENT '用户名',
  `password` varchar(100) COLLATE utf8_vietnamese_ci NOT NULL COMMENT '密码'
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_vietnamese_ci;
--
-- 转存表中的数据 `login`
--
INSERT INTO `login` (`id`, `username`, `password`) VALUES
(50, 'cyg', '123456');
--
-- Indexes for dumped tables
--
--
-- Indexes for table `ft`
--
ALTER TABLE `ft`
  ADD PRIMARY KEY (`id`);
--
-- Indexes for table `login`
--
ALTER TABLE `login`
  ADD PRIMARY KEY (`id`);
--
-- 在导出的表使用AUTO_INCREMENT
--
--
-- 使用表AUTO_INCREMENT `ft`
--
ALTER TABLE `ft`
  MODIFY `id` int(30) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=15;
--
-- 使用表AUTO_INCREMENT `login`
--
ALTER TABLE `login`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=51;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;


相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
22天前
|
SQL 数据库
数据库数据恢复—SQL Server报错“错误 823”的数据恢复案例
SQL Server数据库附加数据库过程中比较常见的报错是“错误 823”,附加数据库失败。 如果数据库有备份则只需还原备份即可。但是如果没有备份,备份时间太久,或者其他原因导致备份不可用,那么就需要通过专业手段对数据库进行数据恢复。
|
4月前
|
SQL 数据库
gbase 8a 数据库 SQL优化案例-关联顺序优化
gbase 8a 数据库 SQL优化案例-关联顺序优化
|
4月前
|
SQL 数据库 UED
SQL性能提升秘籍:5步优化法与10个实战案例
在数据库管理和应用开发中,SQL查询的性能优化至关重要。高效的SQL查询不仅可以提高应用的响应速度,还能降低服务器负载,提升用户体验。本文将分享SQL优化的五大步骤和十个实战案例,帮助构建高效、稳定的数据库应用。
310 3
|
4月前
|
SQL 缓存 监控
SQL性能提升指南:五大优化策略与十个实战案例
在数据库性能优化的世界里,SQL优化是提升查询效率的关键。一个高效的SQL查询可以显著减少数据库的负载,提高应用响应速度,甚至影响整个系统的稳定性和扩展性。本文将介绍SQL优化的五大步骤,并结合十个实战案例,为你提供一份详尽的性能提升指南。
134 0
|
5月前
|
SQL 大数据 API
大数据-132 - Flink SQL 基本介绍 与 HelloWorld案例
大数据-132 - Flink SQL 基本介绍 与 HelloWorld案例
108 0
|
6月前
|
关系型数据库 MySQL 网络安全
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
|
8月前
|
SQL 存储 监控
SQL Server的并行实施如何优化?
【7月更文挑战第23天】SQL Server的并行实施如何优化?
211 13
|
8月前
|
SQL
解锁 SQL Server 2022的时间序列数据功能
【7月更文挑战第14天】要解锁SQL Server 2022的时间序列数据功能,可使用`generate_series`函数生成整数序列,例如:`SELECT value FROM generate_series(1, 10)。此外,`date_bucket`函数能按指定间隔(如周)对日期时间值分组,这些工具结合窗口函数和其他时间日期函数,能高效处理和分析时间序列数据。更多信息请参考官方文档和技术资料。
123 9
|
8月前
|
SQL 存储 网络安全
关系数据库SQLserver 安装 SQL Server
【7月更文挑战第26天】
103 6
|
8月前
|
存储 SQL C++
对比 SQL Server中的VARCHAR(max) 与VARCHAR(n) 数据类型
【7月更文挑战7天】SQL Server 中的 VARCHAR(max) vs VARCHAR(n): - VARCHAR(n) 存储最多 n 个字符(1-8000),适合短文本。 - VARCHAR(max) 可存储约 21 亿个字符,适合大量文本。 - VARCHAR(n) 在处理小数据时性能更好,空间固定。 - VARCHAR(max) 对于大文本更合适,但可能影响性能。 - 选择取决于数据长度预期和业务需求。
644 1

热门文章

最新文章