• 利用PHP开发具有注册、登陆、文件上传、发布动态功能的网站


    目录

    介绍:

    展示:

    登陆页面:

     注册页面:

     主页:

    ​编辑发布动态模块:

     更换头像模块:

    源代码:

    blog.php

    blogconn.php

    conn.php

    headpic.php

    index.html

    login.php

    register.html

    register.php

    style1.css

    upload.php

    welcome.php


    介绍:

    此项目采用html+css+php+mysql开发

    做这个开发的目的一是练习我的web开发能力,二来相当于一个小靶场,可以自己进行一些漏洞试验,自己做一下攻防。

    之后会更新对这个靶站做的一些攻击和修复,包括sql注入、文件上传、XSS、验证码业务逻辑错误。

    展示:

    登陆页面:

    简单的登陆表单,采用post方式进行数据传输,对输入的用户名和密码进行sql查询,查询成功会跳转到welcome.php页面

     注册页面:

    简单的注册功能,往数据库里插入数据

     主页:

    发布动态模块:

    这也是我第一次做这个功能,我想的是为每个用户创建一个数据表,把发布的动态的内容插入到用户的数据表里,然后在主页进行数据查询并展示。

     发布成功效果:

     更换头像模块:

    进行文件上传,头像的路径会被存储到数据库中,并根据用户名查询和展示头像

     更换头像展示:

     

    源代码:

    blog.php

    1. "en">
    2. "UTF-8">
    3. "X-UA-Compatible" content="IE=edge">
    4. "viewport" content="width=device-width, initial-scale=1.0">
    5. Welcome
    6. "background">
    7. session_start();
    8. header("Content-type:text/html;charset=utf-8");
    9. $username=$_SESSION['user'];
    10. $dbtable=substr($username,0,8).'blog';
    11. include('./blogconn.php');//链接数据库
    12. $sql22="create table $dbtable(id int auto_increment primary key, blog varchar(300) not null);";
    13. $result=mysqli_query($conn2,$sql22);
    14. $conn2->query($sql22);
    15. $blog=$_POST['blog'];
    16. if(isset($blog)){
    17. $blogsql="insert into $dbtable(id,blog) values(null,'$blog');";
    18. $result=mysqli_query($conn2,$blogsql);
    19. }
    20. mysqli_close($conn);//关闭数据库
    21. ?>
    22. session_start();
    23. $username=$_SESSION['user'];
    24. include('./conn.php');
    25. $sql = "select pic from flag where username = '$username'";//根据用户名查找头像信息
    26. $result = mysqli_query($conn,$sql);//执行sql
    27. $row = mysqli_fetch_array($result, MYSQLI_BOTH);
    28. $str='头像$row['pic'].'" title="头像" id="headpic">';
    29. print_r($str);
    30. ?>
    31. 欢迎您!

    32. 用户:

    33. session_start();
    34. if($_SESSION['user']==""){
    35. echo "";
    36. }else{
    37. echo $_SESSION['user'];
    38. }
    39. ?>
    40. "post" action="./blog.php">
    41. 发布动态:

    42. "submit" value="我写好了"id="buttorn1" >
  • blogconn.php

    1. session_start();
    2. header("Content-type:text/html;charset=utf-8");
    3. $username=$_SESSION['user'];
    4. $dbtable=substr($username,0,8).'blog';
    5. $dbhost = "127.0.0.1";
    6. $dbuser = 'root';
    7. $dbname = "sqlinject"; //数据库名称
    8. $dbpass = ""; //数据库密码
    9. $conn2=mysqli_connect($dbhost,$dbuser,$dbpass);
    10. if(!$conn=mysqli_connect($dbhost,$dbuser,$dbpass)){
    11. die("连接失败:".mysqli_connect_error());
    12. }
    13. $connt=mysqli_select_db($conn2,$dbname);
    14. //echo "";
    15. ?>

    conn.php

    1. $dbhost = "127.0.0.1";
    2. $dbuser = 'root';
    3. $dbname = "sqlinject"; //数据库名称
    4. $dbtable='flag';
    5. $dbpass = ""; //数据库密码
    6. $conn=mysqli_connect($dbhost,$dbuser,$dbpass);
    7. if(!$conn=mysqli_connect($dbhost,$dbuser,$dbpass)){
    8. die("连接失败:".mysqli_connect_error());
    9. }
    10. $connt=mysqli_select_db($conn,$dbname);
    11. //echo "";
    12. ?>

    headpic.php

    1. "en">
    2. "UTF-8">
    3. "X-UA-Compatible" content="IE=edge">
    4. "viewport" content="width=device-width, initial-scale=1.0">
    5. Welcome
    6. "background">
    7. error_reporting(0);
    8. session_start();
    9. $username=$_SESSION['user'];
    10. include('./conn.php');
    11. $sql = "select pic from flag where username = '$username'";//根据用户名查找头像信息
    12. $result = mysqli_query($conn,$sql);//执行sql
    13. $row = mysqli_fetch_array($result, MYSQLI_BOTH);
    14. $str='头像$row['pic'].'" title="头像" id="headpic">';
    15. print_r($str);
    16. ?>
    17. 欢迎您!

    18. 用户:

    19. session_start();
    20. if($_SESSION['user']==""){
    21. echo "";
    22. }else{
    23. echo $_SESSION['user'];
    24. }
    25. ?>
    26. "post" enctype="multipart/form-data" action="upload.php" onsubmit="return checkFile()">
    27. "file" name="file" value="文件"/>
    28. "submit" name="submit" value="提交">
  • index.html

    1. html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
    6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
    7. <link rel="stylesheet" href="style1.css">
    8. <title>logintitle>
    9. head>
    10. <body background="./bg.jpg">
    11. <form action="./login.php" method="post">
    12. <tr height="40px">
    13. <td align="right"><p style="color: white;">用户名:p>td>
    14. <td>
    15. <input type="text" name='username' autofocus placeholder="输入用户名">
    16. td>
    17. tr>
    18. <tr height="40px">
    19. <td align="right"><p style="color: white;">密码:p>td>
    20. <td>
    21. <input type="password" name='password' maxlength="9" placeholder="输入密码">
    22. td>
    23. tr>
    24. <tr height="40px">
    25. <td colspan="2" align="center">
    26. <input type="submit" value="登陆"class="buttorn1" readonly="readonly">
    27. <a href="./register.html"> <p>注册p>a>
    28. td>
    29. tr>
    30. form>
    31. body>
    32. html>

    login.php

    1. session_start();
    2. header("Content-type:text/html;charset=utf-8");
    3. include('./conn.php');//链接数据库
    4. $username = addslashes($_POST['username']);//post获得用户名表单值
    5. $passowrd = $_POST['password'];//post获得用户密码单值
    6. $_SESSION['user'] = $_POST['username'];
    7. if ($username && $passowrd){//如果用户名和密码都不为空
    8. $sql = "select * from flag where username = ('$username') and password='$passowrd'";//检测数据库是否有对应的username和password的sql
    9. $result = mysqli_query($conn,$sql);//执行sql
    10. $rows=mysqli_num_rows($result);//返回一个数值
    11. if($rows){//0 false 1 true
    12. session_start(); //创建session
    13. header("refresh:0;url=./welcome.php");//如果成功跳转至welcome.html页面
    14. exit;
    15. }else{
    16. echo "";
    17. }
    18. }
    19. mysqli_close($conn);//关闭数据库
    20. ?>

    register.html

    1. html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
    6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
    7. <link rel="stylesheet" href="style1.css">
    8. <title>registertitle>
    9. head>
    10. <body background="./bg.jpg">
    11. <form action="./register.php" method="post">
    12. <tr height="40px">
    13. <td align="right"><p style="color: white;">用户名:p>td>
    14. <td>
    15. <input type="text" name='username' autofocus placeholder="输入用户名">
    16. td>
    17. tr>
    18. <tr height="40px">
    19. <td align="right"><p style="color: white;">密码:p>td>
    20. <td>
    21. <input type="password" name='password' maxlength="9" placeholder="输入密码">
    22. td>
    23. tr>
    24. <tr height="40px">
    25. <td colspan="2" align="center">
    26. <input type="submit" value="注册"class="buttorn1" readonly="readonly">
    27. <input type="reset" value="重置"class="buttorn1" readonly="readonly">
    28. td>
    29. tr>
    30. form>
    31. body>
    32. html>

    register.php

    1. session_start();
    2. header("Content-type:text/html;charset=utf-8");
    3. include('./conn.php');//链接数据库
    4. $username = addslashes($_POST['username']);
    5. $password = $_POST['password'];
    6. if($username&&$password)
    7. {
    8. mysqli_query($conn,"insert into flag(id,username,password,pic) values(null,('$username'),'$password','./headpic/headpic.png');");
    9. echo "注册成功,即将跳转至登录页面";
    10. header("refresh:1.5;url=./index.html");
    11. exit;
    12. }
    13. mysqli_close($conn);
    14. ?>

    style1.css

    1. body{
    2. margin:0;padding: 0;
    3. }
    4. form{
    5. position: absolute;
    6. top:100px;left:500px;
    7. }
    8. .buttorn1 {
    9. position: relative;top:100px;left:-320px;
    10. width: 100px;
    11. height: 30px;
    12. background-color: #93b518;
    13. margin-top: 20px;
    14. margin-left: 75px;
    15. border-radius: 3px;
    16. font-size: 18px;
    17. font-family: 微软雅黑;
    18. color: white;
    19. }

    upload.php

    1. session_start();
    2. header("Content-Type:text/html;charset=utf-8");
    3. include('./conn.php');
    4. // 附件的存储位置、附件的名字
    5. $path='./headpic/'.$_FILES['file']['name'];
    6. echo '文件路径'.$path."
      "
      ;
    7. $username = $_SESSION['user'];
    8. // 拼接成该文件在服务器上的名称
    9. if($_FILES['file']['error']>0) {
    10. die("出错了!".$_FILES['file']['error']);
    11. }
    12. if(move_uploaded_file($_FILES['file']['tmp_name'],$path)){
    13. //echo "
      "."Upload Success!";
    14. mysqli_query($conn,"update flag set pic='$path' where username='$username';");
    15. echo "恭喜您,上传成功!"."
      3秒后将自动跳转到主页!"
      ;
    16. header("refresh:3;url=./welcome.php");
    17. }else{
    18. //echo "
      "."Upload Failed!".$_FILES['photo']['error'];
    19. echo "对不起,上传头像失败了!";
    20. header("refresh:2;url=./welcome.php");
    21. }
    22. ?>

    welcome.php

    1. "en">
    2. "UTF-8">
    3. "X-UA-Compatible" content="IE=edge">
    4. "viewport" content="width=device-width, initial-scale=1.0">
    5. Welcome
    6. "background">
    7. error_reporting(0);
    8. session_start();
    9. $username=$_SESSION['user'];
    10. include('./conn.php');
    11. $sql = "select pic from flag where username = '$username'";//根据用户名查找头像信息
    12. $result = mysqli_query($conn,$sql);//执行sql
    13. $row = mysqli_fetch_array($result, MYSQLI_BOTH);
    14. $str='头像$row['pic'].'" title="头像" id="headpic">';
    15. print_r($str);
    16. ?>
    17. 欢迎您!

    18. 用户:

    19. session_start();
    20. if($_SESSION['user']==""){
    21. echo "";
    22. }else{
    23. echo $_SESSION['user'];
    24. }
    25. include('./blogconn.php');//链接数据库
    26. $sql3="select count(id) from $dbtable;";
    27. $result=mysqli_query($conn2,$sql3);
    28. $row = mysqli_fetch_array($result, MYSQLI_BOTH);
    29. $num=$row[0];
    30. $i=1;
    31. for($i=1;$i<=$num;$i++){
    32. $sql4="select blog from $dbtable where id=$i";
    33. $result4=mysqli_query($conn2,$sql4);
    34. $row4 = mysqli_fetch_array($result4, MYSQLI_BOTH);
    35. $blogdiv='
      '.$row4[0].'
      '
      ;
    36. print_r($blogdiv);
    37. }
    38. ?>
  • 相关阅读:
    TDengine函数大全-系统函数
    智能热水器语音控制丨打造智能家居新体验
    do-exercise-淘宝网店
    golang 对不同结构体中数据进行相互转换的几种常用方法
    面试算法问题
    掌握Mongodb,看完这篇文章就够了
    空气温湿度、光照度、二氧化碳传感器
    PowerDesigner的表设计显示Comment的配置操作场景
    HTML小游戏5 —— 水果忍者(附完整源码)
    小程序的各种手机屏幕媒体查询
  • 原文地址:https://blog.csdn.net/qq_61778128/article/details/126078054