title: PDO validating login data
body: <p>Okay.. I am completely new to this PDO stuff.. I have tried to recreate my mysql script (working) to a PDO script (not working).. I have tested that my DB login informations is correctly programmed for PDO..</p>
  
  <p>This is my PDO script...</p>
  
  <pre><code>&lt;?
  
  session_start();
  //connect to DB
  require_once("connect.php");
  
  //get the posted values
  $email=htmlspecialchars($_POST['email'],ENT_QUOTES);
  $pass=md5($_POST['psw']); 
  
  //now validating the email and password
  $sql - $conn_business-&gt;prepare( "SELECT email, password FROM members WHERE email='".$email."'");
  $sql -&gt; execute();
  $count = $sql-&gt;rowCount();
  $result = $sql -&gt; fetch();
  // Now use $result['rowname'];
  
  $stmt = $conn_business-&gt;prepare("SELECT * FROM members WHERE email='".$email."'");
  $stmt -&gt;execute();
  $act = $stmt -&gt; fetch();
  
  //if email exists
  if($count &gt; 0)
  {
  //compare the password
  if(strcmp($result["password"],$pass)==0)
  {
      // check if activated
      if($act["activated"] == "0")
      {
          echo "act"; //account is not activated yet
      }
      else
      {
          echo "yes"; //Logging in
          //now set the session from here if needed 
          $_SESSION['email'] = $email;
      }
  }
  else
          echo "no"; //Passwords don't match
  }
  else
      echo "no"; //Invalid Login
  
  ?&gt;
  </code></pre>
  
  <p>And this is my old mysql script...</p>
  
  <pre><code>session_start();
  require_once("connect.php");
  //get the posted values
  $email=htmlspecialchars($_POST['email'],ENT_QUOTES);
  $pass=md5($_POST['psw']); 
  
  //now validating the username and password
  $sql="SELECT email, password members WHERE email='".$email."'";
  $result=mysql_query($sql);
  $row=mysql_fetch_array($result); 
  
  $sql2="SELECT * FROM members WHERE email='".$email."'";
  $result2=mysql_query($sql2);
  $row2=mysql_fetch_array($result2);
  $act = $row2['activated'];
  
  //if username exists
  if(mysql_num_rows($result)&gt;0)
  {
      //compare the password
      if(strcmp($row['password'],$pass)==0)
      {
          // check if activated
          if($act == "0")
          {
              echo "act";
          }
          else
          {
              echo "yes";
              //now set the session from here if needed 
              $_SESSION['email'] = $email;
          }
      }
      else
              echo "no";
  }
  else
          echo "no"; //Invalid Login
  </code></pre>
  
  <p>Does anybody know, what I have done wrong? It is an automatically script.. It is called through AJAX and return data based on 'no', 'yes' and 'act' that tells the AJAX/jQuery script what to do.. As I said - the mysql script is working, so please if anyone could tell me what I have done wrong with the PDO script..</p>
  
  <p>EDIT:</p>
  
  <p>when it returns the data to the jQuery script, this should happen:
  if yes: start session, redirect to page2.php with session started.
  else if act: write in a field that the account is not activated.
  else: write that email and password didn't match.</p>
  
  <p>The thing is, that when I try to write the correct e-mail and password - it continues to write : "email and password didn't match" instead of redirecting.. When I say that it is not working it is because the mysql script does as described but the PDO script doesn't..</p>
  
  <p>And I have tried to change the 'echo "no";' to 'echo "yes";' to see if the login would start anyway, but somehow it continues to write that the email and password didn't match..</p>
  
  <p>SOLUTION:</p>
  
  <p>I ahven't told this because I thought it was unnecessary, but the reason for it not to work was because of that i have had my old mysql code in comment marks on top of the page, so that the session_start command didn't work.. After deleting the old code it worked, but then I found something else to change, and that is in the PDO script when it is validating it says:
      $sql - $conn_business->prepare( "SELECT email, password FROM members WHERE email='".$email."'");
  and then I just changed the '-' after $sql to '=' and now, everything works perfectly... Anyhow thank you everybody.. hope this code can help others..</p>