userfeedback.php 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. <?php
  2. /**
  3. * 玩家反馈
  4. */
  5. $retData = array('code' => -1);
  6. $allowSize = 200 * 1024;
  7. $allowFileType = array('jpg', 'png', 'jpeg');
  8. $signKey = '%^(sa)-#$fback9988@&^!';
  9. //请求参数
  10. $uid = max( 0, (int)$_REQUEST['uid']);
  11. $sid = max( 0, (int)$_REQUEST['sid']);
  12. if( !$uid ){
  13. die(json_encode($retData));
  14. }
  15. require_once( '../config/config.sids.php' );
  16. if ( !array_key_exists($sid, $config['sidlist']) ) {
  17. $retData['code'] = -2;
  18. die(json_encode($retData));
  19. }
  20. $time = $_REQUEST['time'];
  21. $sign = $_REQUEST['sign'];
  22. $md5 = md5( $uid . '|' . $sid . '|' . $time . $signKey);
  23. if ( $sign != $md5 ) {
  24. $retData['code'] = -3;
  25. die(json_encode($retData));
  26. }
  27. //判断图片类型
  28. $fileType = strtolower( trim( substr( strrchr( $_FILES['upload']['name'], '.'), 1)));
  29. if( ! in_array( $fileType, $allowFileType)){
  30. $retData['code'] = -4;
  31. die(json_encode($retData));
  32. }
  33. //判断图片大小
  34. $size = max( 0, (int)$_FILES['upload']['size']);
  35. if( $size > $allowSize){
  36. $retData['code'] = -5;
  37. die(json_encode($retData));
  38. }
  39. //按用戶uid分子目錄
  40. $demo = $_REQUEST['demo'] ?? 0;
  41. $feedbackDir = $demo ? '/data/wwwroot/texas/images/feedback/' : '/data/texas/images/feedback/';
  42. if( !is_dir($feedbackDir) ){
  43. mkdir( $feedbackDir, 0777);
  44. }
  45. $time = time();
  46. $newName = $feedbackDir . $uid . '-' . $time . '.png';
  47. $tmp_name = $_FILES["upload"]["tmp_name"];
  48. if ( file_exists( $newName)) {
  49. unlink( $newName);
  50. }
  51. if(( function_exists( 'move_uploaded_file') && move_uploaded_file( $tmp_name, $newName)))
  52. {
  53. $retData['code'] = 1;
  54. $retData['img'] = $uid.'-'.$time . '.png';
  55. die(json_encode($retData));
  56. }
  57. $retData['code'] = -6;
  58. die(json_encode($retData));