2012-10-23 4 views
0

값이 0이 아니고 테이블에 삽입 된 이유는 무엇입니까? 내 코드 :

<?php 
    if ($_GET["subscribe"] == 0) 
     $Competition = $_GET["subscribe"]; 
     { 
      if (isset($_GET["subscribecontestant"])) 
      { 
       $sql1 = "INSERT INTO wedstrijdresultaten (WedstrijdID,DuifID,Username) VALUES (".$Competition.",".$_GET["subscribecontestant"].", '".$_SESSION['user']."')"; 
       $result1 = mysql_query($sql1); 
      } 
     } 
+5

코드가 엉망입니다. 그들이있을 것으로 예상되는 곳을 제외한 모든 곳이 있습니다. 예를 들어 첫 번째 if는 하나가 없으므로 다음 줄만 조건부로 실행됩니다. – GolezTrol

+0

$ _GET [ "subscribe"]가 null 일 수 있습니다. http://stackoverflow.com/questions/1782759/php-considers-null-is-equal-to-zero – henkieee

+0

B.t.w. '$ _GET [ "subscribe"] == 0'은 잘못된 비교입니다. 그것은 사실로 평가 될지도 모르지만 실제로는 $ _GET 매개 변수가 항상 문자열 (또는 PHP가 마술을하는 경우 문자열의 배열)이기 때문에 정확히 '0'이되지 않습니다. 그래서 그 비교는 잘못된 가정을 암시합니다. – GolezTrol

답변

1

틀린 위치 {입니다. { 먼저 당신은 if 문의 브래킷 코드에서 작은 오류가 첫 if

if ($_GET["subscribe"] == 0) { 
$Competition = $_GET["subscribe"]; 
if (isset($_GET["subscribecontestant"])) 
{ 
$sql1 = "INSERT INTO wedstrijdresultaten (WedstrijdID,DuifID,Username) VALUES (".$Competition.",".$_GET["subscribecontestant"].", '".$_SESSION['user']."')"; 
$result1 = mysql_query($sql1); 
} 
} 
1

옆에 있어야한다. 이

if ($_GET["subscribe"] == 0) 
{ 
    $Competition = $_GET["subscribe"]; 

    if (isset($_GET["subscribecontestant"])) 
    { 
     $sql1 = "INSERT INTO wedstrijdresultaten (WedstrijdID,DuifID,Username) " 
       . "VALUES (".$Competition."," 
       . $_GET["subscribecontestant"] . ", '" 
       . $_SESSION['user']."')"; 
     $result1 = mysql_query($sql1); 
    } 
} 
-1

이 작동하지 않는 이유는 여러 가지 이유가있을 수 있습니다 시도, 다른 답변에서와 같이 누락 중괄호가 있고, 또한 우리는 당신이 GET 매개 변수로 전달하는지 모르겠.

하지만 더 이상 수행하지 않으려면 무시하고 http://www.phptherightway.com/#databases 번을 참조하십시오. 예를 들어 보안 취약성에 대해 광범위하게 공개되어 있습니다.

+0

따라서이 답변은 답변이 아니므로 의견이 있어야합니다. – GolezTrol

+0

나는 그것을 깨닫고 그 문제를 해결하기 위해 수정했다. – Steve