2014-02-21 99 views
0

我試圖讓這裏用戶登錄我的登錄腳本ATM我只是檢查,如果用戶名存在,但由於某種原因,其沒有找到任何記錄,即使用戶名是正確的庫MySQLi沒有找到行

<?php if(isset($_POST)){ 
print_r($_POST); 

    //Variables from the table 
    $usernamelogin = $_POST['usernamelogin']; 
    $passwordlogin = $_POST['passwordlogin']; 
    //Prevent MySQL Injections 
    $usernamelogin = stripslashes($usernamelogin); 
    $passwordlogin = stripslashes($passwordlogin); 

    $usernamelogin = mysqli_real_escape_string($con, $usernamelogin); 
    $passwordlogin = mysqli_real_escape_string($con, $passwordlogin); 

    $loginquery = mysqli_query($con,"SELECT * FROM reg_users WHERE user ='$usernamelogin' AND authorised ='1'") or die("Can not query DB."); 
    $logincount = mysqli_num_rows($loginquery); 

    if($logincount == 1){ 
     echo "user exists"; 
    } else { 
     echo "User doesnt exist"; 
    } 
} 
?> 

我的表被稱爲reg_users,用戶是用戶名進入的列。我在註冊表上做同樣的事情,並且工作

任何想法傢伙?

`reg_users` (
`id` int(100) NOT NULL AUTO_INCREMENT, 
`firstname` varchar(30) DEFAULT NULL, 
`surname` varchar(30) DEFAULT NULL, 
`user` varchar(255) DEFAULT NULL, 
`password` varchar(512) DEFAULT NULL, 
`email` varchar(50) DEFAULT NULL, 
    `banned` int(1) DEFAULT '0', 
`authorised` int(1) DEFAULT '0', 
`activationcode` varchar(255) DEFAULT NULL, 
PRIMARY KEY (`id`) 
) ENGINE=InnoDB AUTO_INCREMENT=18 DEFAULT CHARSET=latin1; 

而且sqlfiddle是here

這裏是被稱爲在頁面的標題中的config.php

<?php //Information to connect to your MySQL Server AND DB 
$hostdb = "localhost"; 
$userdb = "test_nathan"; 
$passworddb = "xxxxx"; 
$db  = "test_nathan"; 

//Connect to MySQL Server 
$con = mysqli_connect($hostdb,$userdb,$passworddb,$db) or die ("could not connect"); 

session_save_path('../login/sessions'); 
require_once('functions.php'); 
?> 
+0

你可以把表結構嗎?連接是否打開? –

+1

你的問題是什麼?它是否總是顯示用戶名已被使用,還是從未顯示?或者你的PHP會拋出錯誤? – idmean

+0

爲什麼你不檢查用戶和密碼是否正確,而不是用戶和授權?還有,檢查一下,你沒有在表內重複輸入用戶嗎?還有一件事,我沒有在你的php塊中看到$ con 。 – adi

回答

0

想通了這個問題傢伙某些原因,當我在轉義字符串中存儲變量時,變量附加了空格。感謝幫助的人。

+0

非常好!祝你好運! –