2012-07-13 4 views
-1

이메일, 사용자 이름 및 비밀번호와 같은 중요한 데이터와 바이오, 아이 컬러 등과 같은 개인 정보가 포함 된 2 단계 등록이 있습니다.이 2 개의 exec 파일이 있습니다. 첫 번째 ofc는 데이터베이스의 첫 번째 부분에 데이터를 기록하고 30 개의 개인 데이터 열을 비워 둡니다. 여기 2 개의 MySQL 행 추가

는 2 일

입니다 .. 두 번째는 다른 행을 수행하지만 비어 중요한 데이터 .. 나는 모든 정보가 하나의 행에 있으므로, 추가, 또는이 두 행에 가입하고 싶습니다
$qry = "UPDATE `performers` SET `Bemutatkozas` = '$bemuatkozas', `Feldob` = '$feldob', `Lehangol` = '$lehangol', `Szorzet` = '$szorzet', `Jatekszerek` = '$jatek', `Kukkolas` = '$kukkolas', `Flort` ='$flort', `Szeretek` = '$szeretek', `Utalok` = '$utalok', `Fantaziak` = '$fantaziak', `Titkosvagyak` = '$titkos_vagyak, `Suly` = '$suly', `Magassag` = '$magassag', `Szemszin` = '$szemszin', `Hajszin` = '$hajszin', `Hajhossz` = '$hajhossz', `Mellboseg` ='$mellboseg', `Orarend` = '$orarend', `Beallitottsag` = '$szexualis_beallitottsag', `Pozicio` = '$pozicio', `Dohanyzas` = '$cigi', `Testekszer` = '$pc', `Tetovalas` ='$tetko', `Szilikon` ='$szilikon', `Fetish1` = '$pisiszex', `Fetish2` = '$kakiszex', `Fetish3` = '$domina', `Testekszerhely` = '$pchely', `Tetovalashely` = '$tetkohely', `Csillagjegy` = '$csillagjegy', `Parral` = '$par', `Virag` = '$virag' WHERE `Username` ='" . $_POST['username']. "'"; 
$result = @mysql_query($qry); 


//Check whether the query was successful or not 
if($result) { 
    header("location: perf_register_success.php"); 
    exit(); 

$ _POST가 여기에서 작동하는지 잘 모르겠습니다. 나는 폼을 가지고있다. 그 폼의 exec는 작동한다.이 폼은 다음과 같다. 어쨌든 나는 항상 "쿼리 실패"메시지를 받는다. 내가 사용하고있어. 내가 도대체 ​​뭘 잘못하고있는 겁니까? 감사합니다.

+3

삽입과 함께 'WHERE'와 같은 것은 없습니다. http://dev.mysql.com/doc/refman/5.5/en/insert.html –

+0

그럼 어떻게해야합니까? – trisztann

+1

취약한 SQL 인젝션으로 스코어 보드를 유지해야합니다. – Mahn

답변

1

올바른 구문은 [...] 모든 가치 (그 시간이 좀 걸릴거야)하지만 잘하면 당신은 패턴을 얻을.

그 외에도 코드에서 향상/변경해야 할 사항이 많이 있지만이 문제에 대해서는 jeroen answer으로 알려 드리겠습니다.

+0

아저씨 감사합니다, 매력처럼 일했습니다. 나는 확실히 시간이 지남에 따라 보안을 향상시킬 것이다, 나는 단지 기초를 지나치고 싶다. :) – trisztann

1

두 번째 쿼리에 INSERT 대신 UPDATE이 필요합니다.

그렇기 때문에 SQL 주입 오류를 해결해야합니다. 준비된 문과 함께 PDO 또는 mysqli로 전환하는 것이 좋습니다. mysql_* 함수는 더 이상 사용되지 않습니다.

당신이 취하는 모든 해결책에 따라 적절한 오류 처리를 추가하고 오류를 억제해야합니다. 특히 프로덕션 사이트에서 문제를 해결하려고 할 때 오류를 기록하고 무시해야합니다.

$qry = "UPDATE performers SET Bemutatkozas = $bemuatkozas, Feldob = $feldob, Lehangol = $lehangol [...] WHERE Username ='" . $_POST['username']. "' 

당신은해야합니다 교체 :

UPDATE table SET columnA=valueA, columnB=valueB WHERE condition=value 

(documentation here) 따라서

, 쿼리는 다음과 같은 것이 같아야 다음과 같이 UPDATE에 대한

+0

시도했지만 여전히 "Query Failed"가 발생했습니다 – trisztann

+0

@trisztann 어쩌면 질문을 질문으로 업데이트 할 수 있습니까? – jeroen

+0

완성되었습니다. 좋습니다. – trisztann

관련 문제