申请聊天室(php小项目:聊天室(注册,登录,聊天==))
作者:哪吒游戏网
实现功能:
用户登录用户注册用户添加留言:可选择留言分类(建议、反馈、投诉)用户查看留言:可根据上述分类对留言信息进行筛选留言翻页:每页显示10条留言编辑:可以编辑自己的留言信息留言删除:可以删除自己的留言信息
注册:(register.php)
1 DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="utf-8"> 5 <title>particles.jstitle> 6 <meta name="description" content="particles.js is a lightweight JavaScript library for creating particles."> 7 <meta name="author" content="Vincent Garreau" /> 8 <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"> 9 <link rel="stylesheet" media="screen" href="demo/css/style.css"> 10 <style type="text/css"> 11 style> 12 head> 13 <body> 14 15 16 <div class="count-particles"> 17 <span class="js-count-particles">--span> particles 18 div> 19 20 21 <div id="particles-js" style="position: absolute;top: 0;width: 100%; background-color: #000" align="center"> 22 <table width="360px" border="1" align="center" style="background: url(素材/回形针.png); z-index: -1" > 23 <form method="post" action="reg_do.php" enctype="multipart/form-data"> 24 <tr> 25 <td align="center" colspan="2" style="font-size: 36px">用户注册td> 26 tr> 27 <tr> 28 <td>用户名:td> 29 <td><input type="text" name="username" id="username">td> 30 tr> 31 <tr> 32 <td>用户昵称:td> 33 <td><input type="text" name="nickname" id="nickname">td> 34 tr> 35 <tr> 36 <td>用户密码:td> 37 <td><input type="password" name="password" id="password">td> 38 tr> 39 <tr> 40 <td>重复密码:td> 41 <td><input type="password" name="repeatpassword" id="repeatpassword">td> 42 tr> 43 <tr> 44 <td>用户头像:td> 45 <td> 46 47 <input type="file" name="profile" id="profile" > 48 td> 49 tr> 50 <tr> 51 <td colspan="2" align="center"><input type="submit" name="register" id="register">td> 52 tr> 53 form> 54 table> 55 div> 56 57 <script src="particles.js">script> 58 <script src="demo/js/app.js">script> 59 60 61 <script src="demo/js/lib/stats.js">script> 62 <script src="https://cdn.bootcss.com/jquery/1.12.2/jquery.js">script> 63 <script> 64 var count_particles, stats, update; 65 stats = new Stats; 66 stats.setMode(0); 67 stats.domElement.style.position = 'absolute'; 68 stats.domElement.style.left = '0px'; 69 stats.domElement.style.top = '0px'; 70 document.body.appendChild(stats.domElement); 71 count_particles = document.querySelector('.js-count-particles'); 72 update = function() { 73 stats.begin(); 74 stats.end(); 75 if (window.pJSDom[0].pJS.particles && window.pJSDom[0].pJS.particles.array) { 76 count_particles.innerText = window.pJSDom[0].pJS.particles.array.length; 77 } 78 requestAnimationFrame(update); 79 }; 80 requestAnimationFrame(update); 81 82 83 script> 84 85 body> 86 html>
我这里加入了particles-js的粒子特效,效果如下(用table做这个有bug申请聊天室,以后还是不用table+form了)
是有动态效果的,很炫酷,由于动态图可能有bug,这里我上传的.png

贯穿全剧的Config(配置)文件:
1 <?php 2 $db = mysqli_connect('127.0.0.1', 'root', 'password', 'guestattrs'); 3 session_start(); 4 include 'lab/Uploads.php'; 5 $upload_dir = 'uploads/' 6 ?>
注册对应的判断注册输入信息是否合法,合法就入库(reg_do.php)
1 <?php include_once('config.php') ?> 2 3 4 56 7 <body> 8 <?php 9 $username = $_POST['username']; 10 $nickname = $_POST['nickname']; 11 $password = $_POST['password']; 12 $repeatpassword = $_POST['repeatpassword']; 13 14 if (!$username) 15 { 16 exit('<script>alert("请填写用户名! ") 17 history.back();</script>'); 18 } 19 if (!$nickname) 20 { 21 exit('<script>alert("请填写用户昵称! ") 22 history.back();</script>'); 23 } 24 if (!$password) 25 { 26 exit('<script>alert("请填写密码! ") 27 history.back();</script>'); 28 } 29 if (!$repeatpassword) 30 { 31 exit('<script>alert("请填写重复密码! ") 32 history.back();</script>'); 33 } 34 //同时判断其他的参数是否填写 35 36 //判断该用户名是否存在 37 $sql = "select * from userlist where username = '" . $username . "' "; 38 $query = mysqli_query($db, $sql); 39 if (!$query) 40 { 41 exit('SQL语句执行错误:1 ' . mysqli_error($db)); 42 } 43 if ($info = mysqli_fetch_array($query)) 44 { 45 exit('<script>alert("该用户名已存在, 请重新填写!");history.back();</script>'); 46 } 47 48 //判断密码是否一致 49 if ($password != $repeatpassword) 50 { 51 die('<script>alert("两次填写密码不一致,请重写填写");history.back()</script>'); 52 } 53 54 #deal with profile 55 $profile = $_FILES['profile']; 56 $upload = new Uploads($profile, $upload_dir, array('.png', '.jpg', '.gif'), 2 * 1024 * 1024 * 8);//2M 57 $returnInfo = $upload->uploadFile(); 58 $newfilename = $upload->newfiledir; 59 print_r($returnInfo); 60 if ($returnInfo['status'] == 0) 61 die($returnInfo['msg']); 62 // $error = $profile['error']; 63 // switch ($error) { 64 // case 0: 65 // #$profileName = $profile['name']; 66 // #echo "您的个人相片为: ". $profileName. "
"; 67 // $profileTemp = $profile['tmp_name']; 68 // $ext = substr($profile['name'], strrpos($profile['name'], '.')); 69 // $newfilename = date('YMDHis'). rand(1000, 9999) . $ext; 70 // $destination = "Picture/"; 71 // $filedir = $destination . date('Y') . '/' . date('m') . '/'; 72 // if (!is_dir($filedir)) 73 // { 74 // $dirs = explode('/', trim($filedir, '/')); 75 // print_r($dirs); 76 // $newdir = ''; 77 // foreach($dirs as $v) 78 // { 79 // $newdir = $newdir . $v . '/'; 80 // if (!is_dir($newdir)) 81 // { 82 // mkdir($newdir); 83 // } 84 // } 85 // } 86 // $newfilename = $filedir . $newfilename; 87 // move_uploaded_file($profileTemp, $newfilename); 88 // //echo "文件上传成功!
"; 89 // break; 90 // case 1: 91 // echo "上传的头像超过了php.ini中upload_max_filesize选项限制的值!
"; 92 // break; 93 // case 2: 94 // echo "上传文件的头像超过了FORM表单MAX_FILE_SIZE选项指定的值!
"; 95 // break; 96 // case 3: 97 // echo "文件只有部分被上传!
"; 98 // break; 99 // case 4: 100 // echo "没有选择上传文件!
"; 101 // break; 102 // } 103 104 //执行注册 105 $sql = "insert into userlist(username, nickname, password, regtime, regip, headimg) values('" . $username . "', '". $nickname . "', '". md5($password) . 106 "'," . time() . ",'" . $_SERVER['REMOTE_ADDR'] . "','" . $newfilename . "')"; 107 $query = mysqli_query($db, $sql); 108 if (!$query) 109 { 110 exit('SQL语句执行错误:' . mysqli_error($db)); 111 } 112 else 113 { 114 exit('<script>alert("注册成功,请登录");window.location.href = "sign_in.php"</script>'); 115 } 116 ?> 117 118
