2016-04-21 1 views
0

Ich habe ein kleines Problem mit meiner PHP-Seite, die ich einfach nicht verstehe. Ich bin neu darin und ich verstehe meine Frage nicht wirklich. Wenn ich versuche, mein Programm auszuführen, erscheinen Fehler wie diesesqlsrv_has_rows() Fehler PHP mit MSSQL

Warnung: sqlsrv_has_rows() erwartet Parameter 1 Ressource zu sein, boolean

gegeben

meinen Code Dies wird:

<?php 
    session_start(); 

    try{ 
    include 'connection.php'; 

    $username = $_POST['user']; 
    $password = $_POST['pass']; 

    //check if login form is filled 
    if(empty($_POST['user']) || empty($_POST['pass'])){ 
    echo '<script type="text/javascript">alert("Connection established."); </script>'; 
    } 
    //search for user and password in the database 
    $query = "SELECT * FROM [Emkaandb].[dbo].[tbl_clientslogin] WHERE email='{$username}' AND .password='{$password}' AND active='1'"; 
    $result = sqlsrv_query($conn, $query); 
    if($result == true){ 
    die(print_r(sqlsrv_errors(),true)); 
    } 
     if(sqlsrv_has_rows($result) !=1){ 
    echo '<script type="text/javascript">alert("Invalid email or password."); </script>'; 
    }else{ 
    while($row = sqlsrv_fetch_array($result)){ 
     $_SESSION['name'] = $row['name']; 

    } 
    header("location: Profile.php"); 
    } 

    }catch (PDOException $e) 
    { 
    echo "Error!: " . $e->getMessage() . " 
"; 
    die(); 
    } 

?> 
+2

nur für den Fall, dass Sie nicht wussten. sqlsrv-Funktionen haben nichts mit PDO-Funktionen zu tun. und daher ist es sehr wenig sinnvoll, PDOExceptions in diesem Code zu erfassen. –

+0

In der Tat müssen Sie explizit nach Fehlermeldungen fragen: [sqlsrv_errors()] (http://php.net/sqlsrv_errors). Sobald Sie das tun, werden Sie feststellen, dass Ihr SQL-Code zu Beginn ungültig ist. –

+0

Übrigens scheint Ihr Code universelle Anmeldung mit dem magischen Passwort ''ODER 1 = 1 -' –

Antwort

2

$ result resource set id?

+0

ich kann sehen, wenn ($ result == wahr) { sterben (print_r (sqlsrv_errors(), true)); } das ist sterben()? weil $ result immer wahr ist ... –