2017-05-03 9 views
0

godaddyサーバーを使用しています。私のプライマリドメインにSSLをインストールした後、私は.htaccessファイルを使ってページをリダイレクトしました。突然データベースからデータをフェッチすることはできません(これは過去6か月間正常に動作していました)、同じ問題がアドオンドメインでも発生しました。私がgodaddyに連絡したのは、彼らはそれが.htaccessファイルのためだと言った。 .htaccessという名前のファイルを.htaccess.bakに名前を変更し、ドメインに追加しましたが、私はまだ同じ問題を抱えています。私.htaccessコードは次のとおりです。sqliデータベースのデータを取得しようとするときにNull値を取得する

RewriteEngine On 
RewriteCond %{HTTPS} off 
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]` 

と私のPHPコードは

if($_GET[log]==in) 
    { 
     $username=$_POST['username']; 
     $password=$_POST['password']; 

     $tmpuser= "SELECT * FROM `emplog` WHERE username='$username'"; 
     $q1=$con->query($tmpuser); 
     $count1=$q1->num_rows; 
} 

である私は、データベース接続をテストしたときしかし、それは「接続が正常に確立」と言います。 $count1はnull値を戻しています。 (ユーザー名とパスワードはデータベースの値に応じて返されますが、過去6ヶ月間返されたのと同じです。データベースで確認したところ、正しい値を示しています)

この問題を解決するにはどうすればよいですか?

+0

プリントアウトクエリを、そしてあなたが期待されるクエリ文字列を取得する場合 – Jens

+0

あなたのスクリプトは、[SQLインジェクション攻撃](http://stackoverflow.com/questions/60174/how-can-の危険にさらされている参照i-prevent-sql-injection-in-php)を使用します。 [Little Bobby Tables](http://bobby-tables.com/)に何が起こったのか見てみましょう。 [あなたが入力をエスケープしている場合でも、それは安全ではありません!](http://stackoverflow.com/questions/5741187/sql-injection-that-gets-around-mysql-real-escape-string)[prepared parameterized statements] (http://php.net/manual/en/mysqli.quickstart.prepared-statements.php)を参照してください。 –

答えて

0

下記のコードを朗読して更新してください。

if($_GET['log']=="in"){ 
    $con2=mysqli_connect("localhost","my_user","my_password","my_db"); 
    if (mysqli_connect_errno()) 
     echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
    } 


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

    $tmpuser= "SELECT * FROM `emplog` WHERE username='".$username."'"; 
    if ($result=mysqli_query($con2,$tmpuser)){ 
     // Return the number of rows in result set 
     $rowcount=mysqli_num_rows($result); 
     echo $rowcount; 
     mysqli_free_result($result); 
    } 
} 
+0

いいえ、動作しません。 – Rintu

+0

「接続に失敗しました」が$ conn = new mysqli($ servername、$ username、$ password)と表示されている編集@Rintu –

+0

を確認してください。 if($ conn-> connect_error){ die( "接続に失敗しました:"。$ conn-> connect_error); } echo "接続に成功しました";正常に接続されていることを示す – Rintu

関連する問題