2016-07-01 5 views
0

이 페이지를 실행하면 모든 것이 올바르게 표시되지만 여러 가지 오류 메시지를 테스트 할 때 모든 사항이 올바르게 입력 된 것처럼 내 버튼이 다시 내 로그인 페이지로 리디렉션됩니다. 내가 포함했던 if 블록을 등록하지 못했습니다. 아래는 PHP입니다 (html은 잘 실행되고 포함되지 않습니다).블록이 건너 뛰는 PHP

* 사이드 노트, 처음에는 PDO가 있었기 때문에 몇 줄을 주석 처리하고 mysql을 통해 변경 했으므로 몇 줄을 주석 처리했으나 실행중인 모든 항목에 영향을 미치지 않아야합니다. 나는 그 (것)들을 주석으로 달아달라고하고 그래서 일이, 나의 데이타베이스에 불필요한 정보를 추가하고 있지 않은 경우에.

+3

을 수행하여 대체 경로를 표시해야합니까? 정확히 반대되는 것을해야하며, 모든 것을'PDO' 또는 적어도 mysqli로 바꾼다. – KhorneHoly

+2

* 처음에는 PDO를 가지고 있었고 mysql으로 변경했습니다. * Wow가 첫 번째입니다. 제발 **하지 마시오 ** –

+0

그 외에도, 왜 PDO로이 질문에 태그를 붙이시겠습니까? –

답변

4

물론 PHP는 아무것도 건너 뛰지 않습니다. 부지런히 귀하의 조건을 실행하지만 코드에서 삽입에 영향을 미치는 유일한 조건은 마지막 것입니다. 귀하의 오류가 설정 될 수 있지만, 당신의 INSERT$password == $password2 경우하는 경우는 true가 될 것이다 실행합니다 :

은 당신이 처음

0

문제에 대한 저장 elseif에 모든 IFS를 변경해야 원하는대로 작동하게하려면 그들은 둘 다 비어 있습니다.

당신은 당신이`mysql`에 PDO``에서 변경됩니다 왜 else if

<?php 
error_reporting (E_ALL); 

$error = ""; 

if (isset($_POST['createAccount'])){ 
    $username = $_POST['username']; 
    $password = $_POST['password']; 
    $password2 = $_POST['password2']; 
    $firstName = $_POST['firstName']; 
    $lastName = $_POST['lastName']; 
    $address = $_POST['address']; 
    $city = $_POST['city']; 
    $province = $_POST['province']; 
    $postalCode = $_POST['postalCode']; 

    if (!$username){ 
     $error = "<br><div><em>No username entered.</em></div>"; 
    } 
    elseif (!$password || !$password2){ 
     $error = "<br><div><em>Missing password.</em></div>"; 
    } 
    elseif (!$firstName || !$lastName){ 
     $error = "<br><div><em>Please enter first and last name.</em></div>"; 
    } 
    elseif (!$address || !$city || !$province || !$postalCode){ 
     $error = "<br><div><em>Insufficient address provided. Please fill in all fields.</em></div>"; 
    } 
    elseif ($password != $password2){ 
     $error = "<br><div><em>Passwords do not match.</em></div>"; 
    }  
    else{ 

     $conn = mysql_connect(<blocked out for privacy reasons>); 
     $db = mysql_select_db("grocery", $conn); 

     $account = mysql_query("SELECT * 
            FROM accounts 
            WHERE username = '$username'", 
           $conn); 

     $rowExist = mysql_num_rows($account); 

     if ($rowExist == 1){ 
      $error = "<br><div><em>Username already exists.</em></div>"; 
     } 

     else { 

      //$newAccount = ("INSERT INTO accounts (username, password, first_name, last_name, street, city, province, postal_code) 
      //     VALUES ('$username','$password','$firstName','$lastName','$address','$city','$province','$postal_code')"); 
      //$conn->exec($newAccount); 

      header("location: GroceryLogin.php"); 
     } 
     mysql_close($conn); 
    } 
} 

// I'm guessing here you do an echo $error;