2016-06-10 164 views
-3

即時通訊設法編寫簡單的登錄在php + mysql中。每次我點擊提交按鈕,我得到這個錯誤無法連接到MySQL:拒絕訪問用戶'root'@'localhost'(使用密碼:是)

無法連接到MySQL:拒絕訪問用戶「根」 @「localhost」的(使用密碼:YES)

這是使用即時通訊代碼連接到MySQL:

<?php 
// Create a connection to the logindb database and to MySQL. 
// Set the encoding and the access details as constants: 
DEFINE ('DB_USER', 'johny'); 
DEFINE ('DB_PASSWORD', 'some_pass'); 
DEFINE ('DB_HOST', 'localhost'); 
DEFINE ('DB_NAME', 'biblioteczka'); 
// Make the connection: 
$dbcon = @mysqli_connect(DB_HOST,DB_USER,DB_PASSWORD,DB_NAME) 
OR die ('Could not connect to MySQL: ' . mysqli_connect_error()); 

$ID = $_POST['user']; 
$PASSWORD = $_POST['pass']; 
// Set the encoding... 
mysqli_set_charset($dbcon, 'utf8');  
function SignIn(){ 
    session_start(); 
    if(!empty($_POST['user'])){ 
     $query = mysql_query("SELECT * FROM userName where user ='$_POST[user]' and pass = '$_POST[pass]'" 
       or die(mysql_error)); 
     $row = mysql_fetch_array($query) or die(mysql_error()); 
     if(!empty($row['userName']) AND !empty($row['pass'])){ 
      $_SESSION['userName'] = $row['pass']; 
      echo "SUCCESSFULLY LOGIN TO USER PROFILE PAGE..."; 
     } else { 
      echo "SORRY... YOU ENTERD WRONG ID AND PASSWORD... PLEASE RETRY..."; 
     } 

    } 
} 
if(isset($_POST['submit'])) 
{ 
    SignIn(); 
} 
?> 

我有2個賬戶的根和佐尼,他們都特權時,我設置的密碼,我可以在我創建數據庫。

phpmyadmin的配置:

phpmyadmin config

我不知道哪來的這個點,這就是爲什麼即時通訊尋求幫助的問題。

對不起,我的英語我不是一個母語

+2

您的錯誤消息表明您嘗試以root身份登錄。你的代碼說你正在嘗試以johny身份登錄。你複製了錯誤的東西。 – Quentin

+1

您在問題**中的問題代碼應該是**,而不是在具有鏈接的外部網站上託管。 – Quentin

+1

**危險**:您正在使用[已刪除] [http://php.net/] [已過時**數據庫API](http://stackoverflow.com/q/12859942/19068)手冊/ en/mysql.php)來自PHP。您應該選擇[現代替代品](http://php.net/manual/en/mysqlinfo.api.choosing.php)。你很容易受到[SQL注入攻擊](http://bobby-tables.com/)**現代的API會使它更容易[防禦](http://stackoverflow.com/questions/60174/最好的方式,以防止SQL注入在PHP)自己從。 – Quentin

回答

2

您連接到使用mysqli_庫數據庫。

然後您試圖用(過時的)mysql_庫查詢它。

後者沒有連接到數據庫,所以它試圖打開一個(並失敗)。

選擇一個庫並一致使用它。

+0

你一定要選擇'mysqli_' - mysql已經過時並且不推薦使用。 – JonasCz