2014-07-13 2 views
0

이 코드는 정보를 삽입하는 성공을 표시하지 않지만 성공을 돕는 것은 아닙니다. 따라서 INSERT가 corrrectly 만들어PHP/MYSQL 코드가 성공을 반향 출력하지 않습니다

<?php 

include 'config.inc.php'; 

$con = new mysqli(MYSQL_HOST, MYSQL_USER, MYSQL_PASS, MYSQL_DATA); 

if(isset($_POST["strUsername"])) { 
    /** PREVENTS DATA MANIPULATION **/ 
    $sign['NAME'] = $con->real_escape_string(stripslashes($_POST["strUsername"])); 
    $sign['PASS'] = $con->real_escape_string(stripslashes($_POST["strPassword"])); 
    $sign['PASS'] = gen_token($sign['PASS'], $sign['NAME']); 
    $sign['AGE'] = $con->real_escape_string(stripslashes($_POST["intAge"])); 
    $sign['DOB'] = $con->real_escape_string(stripslashes($_POST["strDOB"])); 
    $sign['EMAIL'] = $con->real_escape_string(stripslashes($_POST["strEmail"])); 
    $sign['GENDER'] = $con->real_escape_string(stripslashes($_POST["strGender"])); 
    $sign['EYE'] = $con->real_escape_string(stripslashes($_POST["intColorEye"])); 
    $sign['CLASSID'] = $con->real_escape_string(stripslashes($_POST["ClassID"])); 
    $sign['SKIN'] = $con->real_escape_string(stripslashes($_POST["intColorSkin"])); 
    $sign['HAIR'] = $con->real_escape_string(stripslashes($_POST["intColorHair"])); 
    $sign['ID'] = $con->real_escape_string(stripslashes($_POST['HairID'])); 

    $sql = $con->query("SELECT * FROM users WHERE Username = '{$sign['NAME']}'"); 

    if ($sql->num_rows > 0) { 

     die("status=Taken&strReason=The username is already in use by another character."); 
    } 

    $sql2 = $con->query("SELECT * FROM users WHERE Email = '{$sign['EMAIL']}'"); 

    if ($sql2->num_rows > 0) { 

     die("status=Taken&strReason=The email is already in use by another character."); 

    } else { 

     /** SETS HAIRNAME & HAIRFILE **/ 
     switch ($sign['ID']) { 
      /** MALE HAIR **/ 
      case 52: 
       $hairname = 'Default'; 
       $hairfile = 'hair/M/Default.swf'; 
       break; 
      case 55: 
       $hairname = 'Goku1'; 
       $hairfile = 'hair/M/Goku1.swf'; 
       break; 
      case 58: 
       $hairname = 'Goku2'; 
       $hairfile = 'hair/M/Goku2.swf'; 
       break; 
      case 92: 
       $hairname = 'Ponytail8'; 
       $hairfile = 'hair/M/Ponytail8.swf'; 
       break; 
      case 64: 
       $hairname = 'Normal2'; 
       $hairfile = 'hair/M/Normal2.swf'; 
       break; 
      case 349: 
       $hairname = 'SuggestedHair'; 
       $hairfile = 'hair/M/SuggestedHair.swf'; 
       break; 
      case 284: 
       $hairname = 'SandBoy'; 
       $hairfile = 'hair/M/SandBoy.swf'; 
       break; 
      case 383: 
       $hairname = 'AQDemonHunter1'; 
       $hairfile = 'hair/M/AQDemonHunter1.swf'; 
       break; 
      case 396: 
       $hairname = 'MQElegant'; 
       $hairfile = 'hair/M/MQElegant.swf'; 
       break; 
      case 390: 
       $hairname = 'DFWarStyle'; 
       $hairfile = 'hair/M/DFWarStyle.swf'; 
       break; 
      case 275: 
       $hairname = 'FauxHawk2'; 
       $hairfile = 'hair/M/FauxHawk2.swf'; 
       break; 
      case 398: 
       $hairname = 'MQSwift'; 
       $hairfile = 'hair/M/MQSwift.swf'; 
       break; 
      case 324: 
       $hairname = 'Troll3Human'; 
       $hairfile = 'hair/M/Troll3Human.swf'; 
       break; 

      /** FEMALE HAIR **/ 
      case 14: 
       $hairname = 'Pig1Bangs1'; 
       $hairfile = 'hair/F/Pig1Bangs1.swf'; 
       break; 
      case 18: 
       $hairname = 'Pig2Bangs2'; 
       $hairfile = 'hair/F/Pig2Bangs2.swf'; 
       break; 
      case 26: 
       $hairname = 'Pony2Bangs2'; 
       $hairfile = 'hair/F/Pony2Bangs2.swf'; 
       break; 
      case 83: 
       $hairname = 'Bangs2Long'; 
       $hairfile = 'hair/F/Bangs2Long.swf'; 
       break; 
      case 84: 
       $hairname = 'Bangs3Long'; 
       $hairfile = 'hair/F/Bangs3Long.swf'; 
       break; 
      case 285: 
       $hairname = 'SandHairGirl'; 
       $hairfile = 'hair/F/SandHairGirl.swf'; 
       break; 
      case 379: 
       $hairname = 'Bangs3Long'; 
       $hairfile = 'hair/F/Bangs3Long.swf'; 
       break; 
      case 375: 
       $hairname = 'AQCasual'; 
       $hairfile = 'hair/F/AQCasual.swf'; 
       break; 
      case 380: 
       $hairname = 'MQRibbon'; 
       $hairfile = 'hair/F/MQRibbon.swf'; 
       break; 
      case 277: 
       $hairname = 'Dragonhawk'; 
       $hairfile = 'hair/F/Dragonhawk.swf'; 
       break; 
      case 328: 
       $hairname = 'TrollFem1Human'; 
       $hairfile = 'hair/F/TrollFem1Human.swf'; 
       break; 
      case 330: 
       $hairname = 'TrollFem3Human'; 
       $hairfile = 'hair/F/TrollFem3Human.swf'; 
       break; 
     } 

     $con->query("INSERT INTO `users` (`Username`, `Password`, `Access`, `ActivationFlag`, `Age`, `Gender`, `Email`, `Level`, `Gold`, `Coins`, `Exp`, `ColorHair`, `ColorSkin`, `ColorEye`, `ColorBase`, `ColorTrim`, `ColorAccessory`, `DateCreated`, `UpgradeExpire`, `UpgradeDays`, `BankSlots`, `HouseSlots`, `BagSlots`, `HairID`, `HairFile`, `HairName`, `Permamute`, `Quests`, `Settings`, `Achievement`, `LastArea`, `Country`) VALUES ('{$sign['NAME']}', '{$sign['PASS']}', '1', '5', '{$sign['AGE']}', '{$sign['GENDER']}', '{$sign['EMAIL']}', '1', '10000', '500', '0', '{$sign['hycc']}', '{$sign['SKIN']}', '{$sign['EYE']}', '0', '0', '0', '2011-05-23 21:02:33', '2011-05-23 21:02:33', '0', '20', '20', '40', '{$sign['ID']}', '${hairfile}', '{$hairname}', '0', '00000000000000000000000000000000000000000000000000', '0', '0', '', 'US')"); 

     /** SELECTS NEW USER ID **/ 
     $sql3 = $con->query("SELECT id FROM users WHERE Username='{$sign['NAME']}'"); 
     $user = $sql3->fetch_assoc(); 
     $user_id = $user['id']; 

    switch ($sign['CLASSID']) { 
     case 2: // Warrior 
       $con->query("INSERT INTO users_items (itemid, userid, equipped, equipment, level, quantity, inbank, enhid) VALUES ('2', '$user_id', '1', 'ar', '1', '1', '0', '1')"); 
       break; 
     case 4: // Rogue 
       $con->query("INSERT INTO users_items (itemid, userid, equipped, equipment, level, quantity, inbank, enhid) VALUES ('3', '$user_id', '1', 'ar', '1', '1', '0', '1')"); 
       break; 
     case 3: // Mage 
       $con->query("INSERT INTO users_items (itemid, userid, equipped, equipment, level, quantity, inbank, enhid) VALUES ('4', '$user_id', '1', 'ar', '1', '1', '0', '1')"); 
       break; 
     case 5: // Ranger 
       $con->query("INSERT INTO users_items (itemid, userid, equipped, equipment, level, quantity, inbank, enhid) VALUES ('5', '$user_id', '1', 'ar', '1', '1', '0', '1')"); 
       break; 
     } 


     $con->query("INSERT INTO users_items (itemid, userid, equipped, equipment, level, quantity, inbank, enhid) VALUES ('1', '$user_id', '1', 'Weapon', '1', '1', '0', '1')"); 

     /** SUCCESS **/ 
     echo "status=Success"; 
    } 
} else { 
    die("status=Error&strReason=Invalid Input."); 
} 

function gen_token($pass, $salt) { 
    $salt = strtolower($salt); 
    $str = hash("sha512", $pass.$salt); 
    $len = strlen($salt); 
    return strtoupper(substr($str, $len, 17)); 
} 
?> 
+0

귀하의 코드는 SQL 쿼리에 오류가 없어서 결코 실패하지 않는다고 가정합니다. 그것은 종종 사실이 아닙니다. 개발 단계에서. 코드의 견고성에 관계없이 오류 검사를 생략하지 마십시오. 추가로 : 1) 서버가 마술 따옴표를 사용할 수 있기 때문에'stripslashes()'를 사용하면 마술 따옴표를 비활성화해야합니다. 2) 많은 사람들이 입력 필드를 하나씩 탈출하기를 선호하는 준비된 문장은 무엇이 잘못 되었습니까? –

+0

oops가 잘못된 질문에 게시되었습니다 ... 죄송합니다. –

+0

echo 문 다음에 'exit;'를 사용하여 실제로 거기에 도달했는지 확인해보십시오. – MTM

답변

0

하지만 버그 블록 :

당신이 사람의이 좋을 것 코드 수정과 대답을 게시 할 수 있습니다 경우

당신의 도움이 :)

오류 코드에 대한 여러분 모두 감사합니다

echo "status=Success"; 

시도는 스크립트의 시작 부분에이를 삽입하고 대답 게시 : 스크립트 라인까지 이동

0123을
$debug = true; 
ini_set('display_startup_errors', $debug); 
ini_set('display_errors', $debug); 
ini_set('html_errors', $debug); 

그런데 어느 삽입이 이루어 집니까? 사용자에게 users_items에 처음 들어가고 두 번째 insert into users_items까지 가야합니까?

관련 문제