Advertisement
Guest User

Untitled

a guest
Aug 8th, 2018
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 7.68 KB | None | 0 0
  1. <?php
  2. session_start();
  3. include("dbconfig.php");
  4. ini_set('display_errors', 0);
  5. define("CMD_REQUEST_LOGOUT", 0);
  6. define("CMD_REQUEST_REGISTER", 1);
  7. define("CMD_REQUEST_LOGIN", 2);
  8. define("CMD_REQUEST_UPLOAD", 3);
  9. define("CMD_REQUEST_LIKE", 4);
  10. switch ((int) $_POST['cmd']) {
  11.     case CMD_REQUEST_LOGOUT:
  12.         if(isset($_POST["submit"])){
  13.             session_destroy();
  14.             die("<script>window.location.href='../login.php';</script>");
  15.         }
  16.         break;
  17.     case CMD_REQUEST_REGISTER:
  18.         $username = $_POST['username'];
  19.         $name = $_POST['name'];
  20.         $pass = $_POST['pass'];
  21.         $pass_re = $_POST['pass_re'];
  22.         $pass = hash('sha512', $pass);
  23.         $pass_re = hash('sha512', $pass_re);
  24.         $phone = $_POST['phone'];
  25.         $number = $_POST['number'];
  26.         $ip = $_SERVER['REMOTE_ADDR'];
  27.         if ($pass != $pass_re) {
  28.             die("<script>alert('비밀번호를 확인해주세요!'); history.go(-1); </script>");
  29.         }
  30.         if (strlen($username) > 20) {
  31.             die("<script>alert('입력하신 아이디가 너무 길어요ㅠ'); history.go(-1); </script>");
  32.         } else if (strlen($username) < 3) {
  33.             die("<script>alert('입력하신 아이디가 너무 짧으신거 아니에요ㅠ?'); history.go(-1); </script>");
  34.         }
  35.         if (preg_match("/'|\"|\\|`|@|[*]|-|;|=/i", $username)) {
  36.             die("<script>alert('입력하신 아이디에 특수문자가 포함되어 있습니다.'); history.go(-1); </script>");
  37.         } else if (preg_match("/'|\\|\"|`|[*]|-|;|=/i", $name)) {
  38.             die("<script>alert('입력하신 이름에 특수문자가 포함되어 있습니다.'); history.go(-1); </script>");
  39.         }
  40.         if (preg_match("/admin|administrator|root|관리자|어드민|test|테스트/i", $username)) {
  41.             die("<script>alert('당신은 관리자가 아닙니다.'); history.go(-1); </script>");
  42.         } else if (preg_match("/admin|administrator|root|관리자|어드민|test|테스트/i", $name)) {
  43.             die("<script>alert('당신은 관리자가 아닙니다.'); history.go(-1); </script>");
  44.         }
  45.         $query1 = "select username from user where username='$username'";
  46.         $result1 = mysqli_fetch_array($mysqli->query($query1));
  47.         if ($result1) {
  48.             die("<script>alert('입력하신 아이디가 중복 됩니다.'); history.go(-1); </script>");
  49.         }
  50.         $query2 = "select phone from user where phone='$phone'";
  51.         $result2 = mysqli_fetch_array($mysqli->query($query2));
  52.         if ($result2) {
  53.             die("<script>alert('입력하신 전화번호가 중복 됩니다.'); history.go(-1); </script>");
  54.         }
  55.         $sql = "insert into user(username,name,pass,ip,phone,number)
  56.          values('$username','$name','$pass','$ip','$phone','$number')";
  57.         $mysqli->query($sql);
  58.         ?>
  59.  
  60.         <script>
  61.             alert("회원가입을 성공적으로 마쳤습니다!");
  62.             window.location.href = '../login.php';
  63.         </script>
  64.         <?php
  65.         break;
  66.     case CMD_REQUEST_LOGIN:
  67.         if (isset($_POST["submit"])) {
  68.             if (empty($_POST["username"]) || empty($_POST["pass"])) {
  69.                 die("<script>alert('empty'); history.go(-1);</script>");
  70.             } else {
  71.                 $username = $_POST['username'];
  72.                 if (preg_match("/'|\"|\\|`|@|[*]|-|;|=|%|*|<|>/i", $username)) {
  73.                     die("<script>alert('아이디에 특수문자를 입력할 수 없습니다.'); history.go(-1); </script>");
  74.                 }
  75.                 if (preg_match("/admin|administrator|root|관리자|어드민|테스트/i", $username)) {
  76.                     die("<script>alert('관리자가 아닙니다.'); history.go(-1); </script>");
  77.                 }
  78.                 $pass = $_POST['pass'];
  79.                 $username = addslashes($username);
  80.                 $username = stripslashes($username);
  81.                 $pass = stripslashes($pass);
  82.                 $username = mysqli_real_escape_string($conn, $username);
  83.                 $pass = mysqli_real_escape_string($conn, $pass);
  84.                 $pass = hash('sha512', $pass);
  85.                 $query = "select * from user where username='$username' and pass='$pass'";
  86.                 $row = mysqli_fetch_assoc($mysqli->query($query));
  87.                 $ip = $_SERVER['REMOTE_ADDR'];
  88.                 $browser = $_SERVER['HTTP_USER_AGENT'];
  89.                 if ($row) {
  90.                     $_SESSION['username'] = $row['username'];
  91.                     $_SESSION['name'] = $row['name'];
  92.                     $area = "T";
  93.                     $sql = "insert into log(ip,username,pass,area,browser)
  94.               values('$ip','$username','".$_POST['pass']."','$area','$browser')";
  95.                     $mysqli->query($sql);
  96.                     die("<script>alert('{$_SESSION['name']}님 오신걸 환영합니다.'); window.location.href='../index.php';</script>");
  97.                 } else {
  98.                     $area = "F";
  99.                     $sql = "insert into log(ip,username,pass,area,browser)
  100.               values('$ip','$username','".$_POST['pass']."','$area','$browser')";
  101.                     $mysqli->query($sql);
  102.                     die("<script>alert('입력하신 계정이 로그인에 실패 하였습니다.'); history.go(-1);</script>");
  103.                 }
  104.             }
  105.         }
  106.         break;
  107.     case CMD_REQUEST_UPLOAD:
  108.         if (isset($_POST["submit"])) {
  109.             if (empty($_POST["contents"])) {
  110.                 die("<script>alert('empty'); history.go(-1);</script>");
  111.             } else if (strlen($_POST["contents"]) > 4000) {
  112.                 die("<script>alert('입력하신 내용이 너무 길어요!'); history.go(-1); </script>");
  113.             } else if (strlen($_POST["contents"]) < 30) {
  114.                 die("<script>alert('입력하신 내용이 너무 짧아요!'); history.go(-1); </script>");
  115.             } else if(preg_match('/(<br[^>]*>\s*){4,}/', nl2br($_POST["contents"]))) {
  116.                 die("<script>alert('줄바꿈이 너무 많네요ㅜㅜ'); history.go(-1); </script>");
  117.             } else {
  118.                 $contents = nl2br($_POST['contents']);
  119.                 $contents = preg_replace('/(<br[^>]*>\s*){3,}/', '<br/><br/>', $contents);
  120.                 $contents = htmlspecialchars($contents);
  121.                 $contents = addslashes($contents);
  122.                 $contents = stripslashes($contents);
  123.                 $contents = mysqli_real_escape_string($conn, $contents);
  124.                 $ip = $_SERVER['REMOTE_ADDR'];
  125.                 $likes = "0";
  126.                 $sql = "insert into bamboo(contents, ip, likes)
  127.                    values('$contents','$ip','$likes')";
  128.                 $mysqli->query($sql);
  129.                 die("<script>alert('성공적으로 입력되었습니다!'); history.go(-1);</script>");
  130.             }
  131.         }
  132.         break;
  133.     case CMD_REQUEST_LIKE:
  134.         if (isset($_POST["submit"])) {
  135.             $idx = $_POST['idx'];
  136.             $sql_chk = "select * from bamboo_like where username = '".$_SESSION['username']."' and contents_idx = '$idx'";
  137.             $result = mysqli_fetch_array($mysqli->query($sql_chk));
  138.             if($result){
  139.                 die("<script>alert('이미 좋아요를 누른 게시글입니다.'); history.go(-1);</script>");
  140.             }else
  141.             $sql = "update bamboo set likes = likes + 1 where idx = $idx";
  142.             $sql2 = "insert into bamboo_like(username, contents_idx) values('".$_SESSION['username']."', '$idx')";
  143.             $mysqli->query($sql);
  144.             $mysqli->query($sql2);
  145.             die("<script>alert('좋아요가 반영되었습니다!'); history.go(-1);</script>");
  146.         }
  147.         break;
  148. }
  149. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement