基于PHP和MySQL的新闻发布系统

news2024/11/23 3:44:58

关于世界杯⚽️

国际足联世界杯(FIFA World Cup),简称“世界杯”,是由全世界国家级别球队参与,象征足球界最高荣誉,并具有最大知名度和影响力的足球赛事。世界杯全球电视转播观众超过35亿 。世界杯每四年举办一次,任何国际足联会员国(地区)都可以派出代表队报名参加这项赛事。

今年在卡塔尔举行的世界杯也是赚足了广大球迷的眼球,奈何自己不是很懂,只能看个热闹,恰好最近学习了PHP连接数据库,简单完成一个关于“世界杯”的新闻发布系统练练手,也算是对世界杯有个小回忆了。

展示效果

展示页面:

在这里插入图片描述在这里插入图片描述

新闻发布后台:
在这里插入图片描述

整理思路

我们可以做一个思维导图来整理下自己的思路,也方便能够清晰地写出各个功能页面:在这里插入图片描述

首先是一个用于展示已发布新闻的页面,那么如何让这些新闻展示出来呢——那就需要用到SQL语句中的 查询语句
然后就是管理员:通过注册的方式获取对新闻的操作权限,注册完成后再登录进入新闻发布的后台,对新闻进行发布删除修改操作。
🆗,这就是大体思路。

功能实现

首先做好准备工作:
开启数据库和服务器
在这里插入图片描述

通过数据库管理工具创建相关数据表
新闻表:

在这里插入图片描述

用户表:
在这里插入图片描述

测试数据库连接情况

//测试文件conn.php,测试数据库连接情况
<?php
	header("content-type:text/html;charset=utf-8");
	$mysqli=new mysqli("localhost:3306","root","","2021info");
	if(!$mysqli){
	    die("error");
	}
	$mysqli->query(("set names utf-8"));
?>
//连接成功

展示页面

<?php
// 该页面用于展示新闻,并提供登录和注册入口进入后台对新闻进行操作
include "./conn.php";
//能够实现所需功能的SQL语句
$sel = "select * from news order by mtime limit 0,5";
//执行SQL语句
$rs = $mysqli->query($sel);
//将查询得到的语句转化成一维数组
$result = $rs->fetch_assoc();
//用来设置服务器的默认时区,Asia表示亚洲,Shanghai用来表示中国上海
date_default_timezone_set("Asia/Shanghai");
?>
<!DOCTYPE html>
<html lang="en">

<head>
	<meta charset="utf-8">
	<title>新闻展示页面</title>
	<!-- <link rel="stylesheet" type="text/css" href="./css/导航条.css" /> -->
	<link rel="stylesheet" type="text/css" href="./css/index1.css" />
	<link rel="stylesheet" type="text/css" href="./css/lunbo.css" />
</head>

<body style="background-color:rgb(60, 108, 236);color: antiquewhite;">
	<div class="bd">
		<img src="./img/世界杯.png" alt="">
	</div>
	<div class="div1">
		<p>点击观看精彩赛事</p>
		<div class="demo">
			<a href="#">
				<div class="demo1">
					<img src="./img/pic1.png" alt="">
					<img src="./img/pic2.png" alt="">
					<img src="./img/pic3.png" alt="">
					<img src="./img/pic4.png" alt="">
					<img src="./img/pic5.png" alt="">
				</div>
			</a>
		</div>

		<div class="div2">
			<img src="./img/世界杯1.png">
			<h4 class="font1">新闻</h4>
			<h4 class="font2">发布时间</h4>
			//利用列表将需要展示的新闻字段展示出来
			<?php while ($result = $rs->fetch_assoc()) : ?>
				<li class="title"><a href="watch.php?id=<?= $result['id'] ?>">
						<span class="title"><a href="contents.php?id=<?= $result['id'] ?>">
								<?php
								//利用mb_strlen()函数和mb_substr()函数,返回新闻标题的一部分,多出部分用“...”代替,使之更加美观
								if (mb_strlen($result['title']) > 3) {
									echo mb_substr($result['title'], 0, 6) . "...";
								} else {
									echo $result['title'];
								}
								?></span></li>
								//与 date_default_timezone_set("Asia/Shanghai");共同将时间戳转换成日期
						<li class="ctime"><?= date("Y-m-d H:i:s", $result['mtime']) ?></li></a>
			<?php endwhile; ?>
		</div>
		<div class="div3">
			<a href="./regis.php">注册</a>
			<a href="./login.php">登录</a>
		</div>
	</div>
</body>

</html>
//watch.php
<?php
include "./conn.php";
date_default_timezone_set("Asia/Shanghai");
$id = $_GET['id'];
$sel = "select title,author,content,mtime from news where id={$id};";
$re = $mysqli->query($sel);
$result = $re->fetch_assoc();
// var_dump($result);
// if(!$re){
//     echo "<script>alert('失败');location.href='newsshow.php';</script>";
// }
?>
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link rel="stylesheet" type="text/css" href="./css/watch.css"/>
</head>

<body style="background-color:rgb(60, 108, 236)">
    <div class="div1">
        <div class="titleBox">
            <h2><span><?= $result['title'] ?></span></h2>
        </div>
        <div class="author">
            <h4>发布者:<span><?= $result['author'] ?></span></h4>
        </div>
        <div class="content">
            <p><?= $result['content'] ?></p>
        </div>
        <div class="mtime">
            <p><?=date("Y-m-d H:i:s",$result['mtime'])?><a href="./newshow.php">返回首页</a></p>
        </div>
    </div>
</body>

</html>

注册登录

注册:
在这里插入图片描述

//register.html
<h3>sign up</h3>
    <form action="register_do.php" method="post" id="myform">
        请输入用户名:<input type="text" name="username" id="username">
        请输入手机号:<input type="text" name="usertel" id="usertel">
        请输入邮箱:<input type="text" name="useremail" id="useremail">
        请输入密码:<input type="password" name="userpwd" id="userpwd">
        请确认密码:<input type="password" name="repwd" id="repwd">
        <input type="submit" value="注册">
    </form>
    <script src="./js/register.js"></script>
//js实现用户输入信息是否正确
//设置页面加载完成即执行js代码
window.onload=function(){
//获取id对象
    var myform=document.getElementById("myform");
    var username=document.getElementById("username");
    var usertel=document.getElementById("usertel");
    var useremail=document.getElementById("useremail");
    var pwd=document.getElementById("userpwd");
    var repwd=document.getElementById("repwd");
    myform.onsubmit=function(){
        if(username.value==""){
            alert("用户名不可为空!");
            return false;
        }
        if(usertel.value.length!=11){
            alert("请输入正确手机号!");
            return false;
        }
        if(useremail.value.indexOf('@')<1 || useremail.value.indexOf('.')<3){
            alert("请输入正确邮箱!");
            return false;
        }
        if(userpwd.value.length==0){
            alert("密码不能为空!");
            return false;
        }
        if(userpwd.value.length<6){
            alert("密码不可少于6位!");
            return false;
        }
        if(repwd.value==""){
            alert("确认密码不可为空!");
            return false;
        }
        if(repwd.value!=pwd.value){
            alert("密码输入不一致!");
            return false;
        }
    }
}
<?php
//register_do.php
// 该页面任务是拿到resigter的页面传递的数据,并进行用户名重复性检查.
include "./conn.php";
//post传递参数
$username=$_POST['username'];
$pwd=md5($_POST['pwd']);
$repwd=md5($_POST['repwd']);
$sel="select * from userpub where username='{$username}';";
$rs=$mysqli->query($sel);
//从查询中输出所影响记录行数,利用影响的行数来判断是否重复注册用户名
$rows=$mysqli->affected_rows;
//若影响的行数大于0,则代表重复注册用户名
if($rows>0){
    echo "<script>alert('用户名注册失败,请重新选择用户名');location.href='regis.php';</script>";
}else{
//没有影响行数代表用户名可注册,执行插入语句
$in="insert into userpub(username,password,repwd)values('{$username}','{$pwd}','{$repwd}');";
$st=$mysqli->query($in);
if($st){
    echo "<script>alert('注册成功');location.href='login.php';</script>";
}else{
    echo "<script>alert('注册失败');location.href='register.php';</script>";
}
}

?>

登录:

在这里插入图片描述

//login.js
window.onload=function(){
//获取id 对象
            var myform=document.getElementById("myform");
            var user=document.getElementById("username");
            var pwd=document.getElementById("userpwd");
            myform.onsubmit=function(){
                if(username.value==""){
                    alert("用户名不可为空!");
                    return false;
                }
                if(userpwd.value.length==0){
                    alert("密码不能为空!");
                    return false;
                }
            }
        }
//login_do.php
<?php
// 该页面将登录页面收集到的信息与后台注册的用户名和密码进行核对,核对成功进入数据库
include "./conn.php";
$username=$_POST['username'];
$userpwd=md5($_POST['userpwd']);
$sel="select * from admin where username='{$username}';";
$rs=$mysqli->query($sel);
//从查询中输出所影响记录行数,利用影响的行数来判断是否重复注册用户名
$rows=$mysqli->affected_rows;
if($rows>0){
// 用户名存在  验证用户输入的密码和数据表中存在的用户名对应的密码是否一致,将用户名对应的字段转换成一维数组,通过数组名加下标的方式判断用户密码输入是否正确。
$result=$rs->fetch_assoc();
if($userpwd==$result['userpwd']){
    echo "<script>alert('登录成功');location.href='news_select.php'</script>";
}else{
    echo "<script>alert('密码错误,请重新输入或注册');location.href='login.php'</script>";
}
}else{
    // 用户名不存在
    echo "<script>alert('用户名不存在,请重新输入或者先注册');location.href='login.php';</script>" ;
}

?>

增加——insert

在这里插入图片描述

// news_insert.html 该页面用于收集新闻相关信息
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <form action="insert_do.php" method="post">
    请输入新闻标题:<input type="text" name="title"></br>
    请输入新闻内容:<textarea name="content" id="" cols="30" rows="10"></textarea></br>
    请输入新闻作者:<input type="text" name="author">
    <input type="submit" value="发布">
    </form>
</body>
</html>
//insert_do.php 该页面拿到相关的新闻信息,并执行插入SQL语句将其插入到news表中
<?php
	include './conn.php';
	$title=$_POST['title'];
	$content=$_POST['content'];
	$author=$_POST['author'];
	$ctime=time();
	$mtime=time();
	$in="insert into news(title,content,author,ctime,mtime)values('{$title}','{$content}','{$author}',$ctime,$mtime);";
	$st=$mysqli->query($in);
	if($st){
	    echo "<script>alert('发布成功!');location.href='news_select.php';</script>";
	  }else{
	    echo "<script>alert('发布失败!');location.href='insert_do.php';</script>";
	  }
?>

查询——select

在这里插入图片描述

//news_select.php
<?php
// 该页面用于展示从数据库中最新的几条新闻
include "./conn.php";
$sel="select * from news order by ctime desc limit 0,10;";
$rs=$mysqli->query($sel);
date_default_timezone_set("Asia/Shanghai");
?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <table border="1px">
        <tr>
            <th>id</th>
            <th>title</th>
            <th>content</th>
            <th>author</th>
            <th>发布时间</th>
            <th>修改时间</th>
            <th>修改</th>
            <th>删除</th>
        </tr>
        <?php
        while($result=$rs->fetch_assoc()){?>
            <tr>
                <td><?=$result['id']?></td>
                <td><?=$result['title']?></td>
                <td><?=$result['content']?></td>
                <td><?=$result['author']?></td>
                <td><?=date("Y-m-d H:i:s",$result['ctime'])?></td>
                <td><?=date("Y-m-d H:i:s",$result['mtime'])?></td>
                <td><a href="news_update.php?id=<?=$result['id']?>">修改</a></td>
                <td><a href="news_delete.php?id=<?=$result['id']?>">删除</a></td>
            </tr> 
        <?php }?>
    </table>
    <a href="./news_insert.html">发布新闻</a>
    <a href="./newshow.php">回到首页</a>
    <a href="./delnews.php">查看已删新闻</a>
</body>
</html>

修改——update

//news_update.php 该页面用于收集对新闻的修改信息
<?php
include "./conn.php";
//get传参 id
$id=$_GET['id'];
?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <form action="update_do.php?id=<?=$id?>" method="post">
        请输入新的标题:<input type="text" name="newtitle"></br>
        请输入新的内容:<textarea name="newcontent" id="" rows="10" cols="30"></textarea></br>
        请输入新闻作者:<input type="text" name="newauthor">
        <!-- 隐藏域获取id -->
        <input type="hidden" name="id" value="<?=$id?>">
        <input type="submit" value="修改">
    </form>
</body>
</html>
//update_do.php  该页面拿到收集到的相关修改信息,并执行修改的SQL语句,完成对数据表的修改。
<?php
	require("./conn.php");
	$id=$_POST['id'];
	$title=$_POST['newtitle'];
	$content=$_POST['newcontent'];
	$author=$_POST['newauthor'];
	$mtime=time();
	$upd="update  news set title='{$title}',content='{$content}',author='{$author}',mtime=$mtime where id={$id};"; 
	$st=$mysqli->query($upd);
	if($st){
	    echo "<script>alert('修改成功');location.href='news_select.php';</script>";
	}else{
	    echo "<script>alert('修改失败');location.href='news_select.php';</script>";
	}
?>

删除——delete

<?php
	include "./conn.php";
	$id=$_GET['id'];
	$del="delete from newpub where id={$id};";
	$st=$mysqli->query($del);
	if($st){
	    echo "<script>alert('删除成功');location.href='newselect.php';</script>";
	}else{
	    echo "<script>alert('删除失败');location.href='newselect.php';</script>";
	}
?>

优化功能

在这里插入图片描述

查看已删新闻

数据表:
如果我们想要查看已经删除的新闻的话,就需要再创建一个数据表来存储删除的新闻信息,这里我创建了一个delnews 表;并增加了删除时间 字段

在这里插入图片描述

//news_delete.php 该页面将所要删除的记录放到一个新的表中,并从原来表中删除。
<?php
	include "./conn.php";
	$id=$_GET['id'];
	$dtime=time();
	date_default_timezone_set("Asia/Shanghai");
	// 将获取的id相应的数据读取成一个result数组中,然后利用数组将读取的字段插入到delnews表中。
	$sel="select * from news where id={$id};";
	$re=$mysqli->query($sel);
	$result=$re->fetch_assoc();
	//  var_dump($result);
	$in="insert into delnews(id,title,content,author,ctime,mtime,dtime)values('{$result['id']}','{$result['title']}','{$result['content']}','{$result['author']}',
	'{$result['ctime']}','{$result['mtime']}',$dtime);";
	$st=$mysqli->query($in);
	if($st){
	    $del="delete from news where id={$id};";
	    $de=$mysqli->query($del);
	    if($de){
	        echo "<script>alert('删除成功!');location.href='news_select.php';</script>";
	    }else{
	        echo "<script>alert('删除失败!');location.href='news_select.php';</script>";
	    }
	}else{
	    echo "<script>alert('删除失败!');location.href='news_select.php';</script>";
	}
?>
<?php
//delnews.php 该页面用于从delnews表中读取内容,以表格的形式展出。
include "./conn.php";
$sel = "select * from delnews order by dtime desc";
$re = $mysqli->query($sel);
date_default_timezone_set("Asia/Shanghai");
?>
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <table border="1px">
        <tr>
            <th>title</th>
            <th>content</th>
            <th>author</th>
            <th>发布时间</th>
            <th>修改时间</th>
            <th>删除时间</th>
            <th>撤销删除</th>
        </tr>
        <?php while ($result = $re->fetch_assoc()) { ?>
            <tr>
                <td><?= $result['id'] ?></td>
                <td><?= $result['title'] ?></td>
                <td><?= $result['author'] ?></td>
                <td><?= date("Y-m-d H:i:s", $result['ctime']) ?></td>
                <td><?= date("Y-m-d H:i:s", $result['mtime']) ?></td>
                <td><?= date("Y-m-d H:i:s", $result['dtime']) ?></td>
                <td><a href="delnews_do.php?id=<?= $result['id'] ?>">撤销删除</a></td>
            </tr>
        <?php } ?>
    </table>
</body>

</html>

撤销已删新闻

撤销功能和对news表中数据的删除功能类似:

//delnews_do.php 该页面用于撤销删除已删新闻。
<?php
include "./conn.php";
$id=$_GET['id'];
$mtime=time();
date_default_timezone_set("Asia/Shanghai");
$sel="select * from delnews where id={$id};";
$rs=$mysqli->query($sel);
$result=$rs->fetch_assoc();
$in="insert into news(id,title,content,author,ctime,mtime)values('{$result['id']}','{$result['title']}','{$result['content']}','{$result['author']}',
'{$result['ctime']}','{$result['mtime']}');";
$st=$mysqli->query($in);
if($st){
    $del="delete from delnews where id={$id};";
    $de=$mysqli->query($del);
    if($de){
        echo "<script>alert('撤销成功!');location.href='news_select.php';</script>";
    }else{
        echo "<script>alert('撤销失败!');location.href='news_select.php';</script>";
    }
}else{
    echo "<script>alert('撤销失败!');location.href='news_select.php';</script>";
}

总结🥇

刚开始接触php连接数据库的时候可能会遇到很多小问题,首先就是检查数据库的连接状态是否正常,再就是注意参数的传递SQL语句的写法等。
当然还有更多需要优化的地方:没有进行cookie和session来记录用户状态,以及增强存储在服务器的数据的安全性;在基础功能上还需要添加更多改善用户体验的方面。那么在后续的文章还会给大家分享学习经验,继续优化这个新闻发布系统。
如有不足,感谢指正!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/87310.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【设计模式】简单工厂模式描述总结

简单工厂模式 定义&#xff1a;定义一个创建对象的接口&#xff0c;让子类决定实例化哪一个类。 类型&#xff1a;创建型模式 介绍&#xff1a; 在简单工厂模式中定义一个抽象产品类&#xff0c;抽象产品类声明公共的特性及属性&#xff0c;具体产品类继承抽象产品类后去实…

Educational Codeforces Round 121 (Rated for Div. 2) C. Monsters And Spells

翻译&#xff1a; Monocarp又在玩电脑游戏了。他是个巫师学徒&#xff0c;只会一个咒语。幸运的是&#xff0c;这个法术可以伤害怪物。 他目前所在的关卡包含&#x1d45b;个怪物。他们中的&#x1d456;-th在关卡开始后&#x1d458;&#x1d456;秒出现&#xff0c;并拥有ℎ…

Java石头剪刀布

✅作者简介&#xff1a;热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏&#xff1a;JAVA开发者…

【iMessage苹果源码家庭推】tils扩大软件安装大概释放事变是由程序员筑造的,很轻易发生MemoryLeak控制

推荐内容IMESSGAE相关 作者推荐内容iMessage苹果推软件 *** 点击即可查看作者要求内容信息作者推荐内容1.家庭推内容 *** 点击即可查看作者要求内容信息作者推荐内容2.相册推 *** 点击即可查看作者要求内容信息作者推荐内容3.日历推 *** 点击即可查看作者要求内容信息作者推荐…

[附源码]计算机毕业设计的小区宠物管理系统Springboot程序

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; Springboot mybatis MavenVue等等组成&#xff0c;B/S模式…

小侃设计模式(十七)-中介者模式

1.概述 中介者模式&#xff08;Mediator Pattern&#xff09;是用来降低多个对象和类之间的通信复杂性&#xff0c;这种模式提供了一个中介类&#xff0c;来封装一组对象之间的交互&#xff0c;它将对象之间的交互委派给中介对象交互&#xff0c;避免了对象之间的直接交互。中…

Vue2基础总结

知识点学了太多还是需要总结复习&#xff0c;否则后面会因为零碎的知识点而感到繁杂&#xff0c;那么今天我来总结一下vue相关的知识点&#xff0c;新学习vue的朋友也可以把这当做一个细致总结&#xff1a; 1.Vue是什么&#xff08;重点&#xff09;&#xff1a; 对于Vue的总…

创建 Vue3.0 工程

1.使用 vue-cli 创建 官方文档 : https://cli.vuejs.org/zh/guide/creating-a-project.html#vue-create // 查看vue/cli版本&#xff0c;确保vue/cli版本在4.5.以上 vue --version vue -V// 安装或者升级你的vue/cli、 覆盖安装最新版本; npm install -g vue/cli//1.创建…

C++初阶 stack和queue的模拟实现

作者&#xff1a;小萌新 专栏&#xff1a;C初阶 作者简介&#xff1a;大二学生 希望能和大家一起进步&#xff01; 本篇博客简介&#xff1a;模拟实现STL库中的stack和queue 考试周结束咯 狠狠的学&#xff01; stack和queue的模拟实现容器适配器Stack模拟实现接口函数一览代码…

艾美捷西妥昔单抗Cetuximab化学性质和文献参考

西妥昔单抗&#xff08;抗EGFR&#xff09;是表皮生长因子受体&#xff08;EGFR&#xff09;的抑制剂。 艾美捷西妥昔单抗Cetuximab 品名&#xff1a;西妥昔单抗&#xff0c;抑制剂 完整名称&#xff1a;西妥昔单抗&#xff08;抗EGFR&#xff09; 同义词名称&#xff1a;C2…

2022年电动车与车辆工程国际会议(CEVVE 2022)

2022年电动车与车辆工程国际会议&#xff08;CEVVE 2022&#xff09; 重要信息 会议网址&#xff1a;www.cevve.org 会议时间&#xff1a;2022年12月19-21日 召开地点&#xff1a;中国北海 截稿时间&#xff1a;2022年12月15日 录用通知&#xff1a;投稿后2周内 收录检索…

CPU、内存占用率高排查

CPU高占用 排查思路 top 命令查看CPU占用率高的进程top -H -p ${pid} 命令查看具体是进程的哪个线程占用CPUprintf ‘%x\n’ ${pid} 将线程的pid转为16进制jstack ${十六进制pid} | grep -A 20 查看线程的基本信息与方法调用栈 模拟排查 [rootVM-24-5-centos www]# top top…

vue可视化管理工具创建项目报错解决errno: -4058;连接超时

vue可视化管理工具创建项目报错解决errno: -4058 简介&#xff1a;vue创建项目时&#xff0c;errno&#xff1a;-4058问题解决&#xff0c;使用vue ui指令时会报连接超时问题解决。 基础材料&#xff1a; 使用的node.js版本&#xff1a;18.12.1 vue版本&#xff1a;4.5.15…

【shell脚本】监控磁盘/内存使用率·检测域名是否正常·一键部署LMNP·拉黑攻击服务器的异常ip

文章目录1、监控2台服务器硬盘利用率脚本实战2、批量检查 5个网站域名是否正常3、统计磁盘使用率&#xff0c;磁盘大于%5 就打印mail 小于 硬盘正常 内存也是一样4、有人攻击我服务器 就拉黑异常ip5、使用for循环安装 批量安装3台服务器 php环境 使用&#xff08;LAMP&#xff…

Web前端开发技术课程大作业:简单的网页制作期末作业——狐妖小红娘(6页)

HTML实例网页代码, 本实例适合于初学HTML的同学。该实例里面有设置了css的样式设置&#xff0c;有div的样式格局&#xff0c;这个实例比较全面&#xff0c;有助于同学的学习,本文将介绍如何通过从头开始设计个人网站并将其转换为代码的过程来实践设计。 ⚽精彩专栏推荐&#x1…

PM说 | 如何精准的获取用户需求?需求分析到底分析什么?

如何精准获取用户需求&#xff1f;怎么做好需求分析? 文章目录如何精准获取用户需求&#xff1f;怎么做好需求分析?前言一、用户的正在需求是什么二、如何精准的获取用户需求三、实操项目分析四、需求分析的方法总结前言 不知你是否曾遇到这样的处境&#xff0c;听到需求&am…

多线程~实现多线程

实现多线程 进程&#xff1a;是正在运行的程序 是系统进行资源分配和调用的独立单位每一个进程都有它自己的内存空间和系统资源 线程&#xff1a;是进程中的单个顺序控制流&#xff0c;是一条执行路径 单线程&#xff1a;一个进程如果只有一条执行路径&#xff0c;则称为单…

小游戏开发指南及过程中的难点问题

如果仅仅针对个人开发者来讲&#xff0c;要独立开发一款大型游戏几乎无可能&#xff0c;更大成功的可能还是开发一款类似《羊了个羊》这样洗脑的小程序游戏。 所以这里主要论述小游戏开发的情况&#xff0c;也就是小程序游戏&#xff0c;首先从小游戏的开发流程来看&#xff1…

chatGPT:12.12 之后更新的 chatGPT 的本地部署和接口调用,解决 response 403 (无法连接openai服务器)问题

文章目录问题源代码改动Session token 的获取cf_clearance 的获取user-agent 的获取将 config.json.sample 内容修改并移动位置附注&#xff1a;环境配置python > 3.7特别提示playwright & cf_clearancerevChatGPT 版本httpxOpenAIAuth删除 import 中的错误后记问题 因…

web网页设计期末课程大作业:基于HTML+CSS+JavaScript个人书画作品展示HTML模板(6页)

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…