-4

I'm having a strange problem using PDO in this script. Probably the problem is very simple but i can't find it and it is making me crazy. The problem is when i launch the script the page turn blank.

<?php

    //PDO
if(isset($_POST['submit'])) {   
    // test row

    $password = $_POST['upassword'];
    $email = $_POST['email'];
    $_SESSION['email'] = $email;

    $servername = "localhost";
    $username = "root";
    $password = "passwordxyz";
    $dbname = "abcd";

    try {
        $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
    // set the PDO error mode to exception
        $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

        $statement = $conn->prepare('SELECT `password` FROM `users` WHERE `email` = :email');  
        $statement->bindParam(':email', $email);  
        $statement->execute();  
        while($row = $statement->fetch() ){  
            echo 'ok';  
        }       
    }
} 


?>

Please help me to solve the problem. Thank you.

YvesLeBorg
  • 9,070
  • 8
  • 35
  • 48
leofabri
  • 141
  • 12
  • 1
    A "500 Internal Server Error" status code (or a blank page) means that your script is throwing an error but you haven't configured PHP to display error messages. That's something you need to fix before you go further; it's impossible to code properly without the aid of error messages. Here's a [brief explanation](http://stackoverflow.com/a/5680885/13508). The error reporting thumb rule is: show in development, log in production. – Álvaro González Jul 07 '15 at 08:58
  • Thank you for your answer, I turned on the error messages and it says this : Fatal error: Cannot use try without catch or finally in /var/www/core/login.php on line 41 – leofabri Jul 07 '15 at 09:03

1 Answers1

0

You have try clause but no catch which is what is generating the error.

<?php

//PDO
if(isset($_POST['submit'])) {   

$password = $_POST['upassword'];
$email = $_POST['email'];
$_SESSION['email'] = $email;
$servername = "localhost";
$username = "root";
$password = "passwordxyz";
$dbname = "abcd";

try{
      $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
      // set the PDO error mode to exception
      $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
      $statement = $conn->prepare('SELECT `password` FROM `users` WHERE `email` = :email');  
      $statement->bindParam(':email', $email);  
      $statement->execute();  
      while($row = $statement->fetch() ){  
          echo 'ok';  
      }
   }
catch(Exception $e){
        //change from general to specific exception and handle here
    }
}
Scott
  • 1,863
  • 2
  • 24
  • 43