2014-05-10 99 views
-4

我都想盡解決方案在這裏找到答案和許多其他論壇,但連接到MySQL數據庫使用PHP連接使用PHP

當一切都是徒勞我仍然有錯誤的MySQL數據庫

無法連接:拒絕訪問用戶'根' @ 'localhost' 的(使用密碼:NO)

這裏是我的PHP腳本

<?php 
$database="test"; //database name 
$Uname=$_POST['username'];//this values comes from html file after submitting 
$Pwd=$_POST['pwd'];  
$con = mysql_connect("127.0.0.1","root" ,"zain");//for wamp 3rd feild is balnk 
if (!$con)  
{  
die('Could not connect: ' . mysql_error());  
} 
mysql_select_db("$database", $con); 
$query = "INSERT INTO data (UserName,Password)VALUES ('$Uname','$Pwd')"; 
mysql_query($query); 
echo "<script type='text/javascript'>\n"; 
echo "alert('you are Succesflly registered'); 
\n"; 
echo "</script>"; 
mysql_close(); 

和我php.config文件是這樣

/* Server: localhost [1] */ 
$i++; 
$cfg['Servers'][$i]['verbose'] = 'localhost'; 
$cfg['Servers'][$i]['host'] = 'localhost'; 
$cfg['Servers'][$i]['port'] = ''; 
$cfg['Servers'][$i]['socket'] = ''; 
$cfg['Servers'][$i]['connect_type'] = 'tcp'; 
$cfg['Servers'][$i]['extension'] = 'mysqli'; 
$cfg['Servers'][$i]['auth_type'] = 'config'; 
$cfg['Servers'][$i]['user'] = 'root'; 
$cfg['Servers'][$i]['password'] = 'zain'; 
$cfg['Servers'][$i]['AllowNoPassword'] = false; 
+1

你可能要檢查http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php/12860046#12860046和http:/ /stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php/60496#60496因爲您使用的是棄用函數(過去5年一直不鼓勵),您的代碼是開放給SQL注入,這意味着惡意用戶可以簡單地改變甚至刪除你的數據。 – Oldskool

+0

通過phpMyAdmin創建一個新用戶,併爲其授予對所需數據庫或所有數據庫的完全權限。然後在config.inc.php中輸入您爲新用戶提供的用戶名和密碼。 –

+0

現在更改密碼 – Strawberry

回答

0

首先,您應該清理用戶輸入。基於未被轉義的用戶名連接到數據庫可能會對安全造成危險。

另一點是,我不認爲你很理解連接到數據庫的工作原理。

mysql_處於棄用過程中,並且在更高版本的PHP中可能會被刪除。建議您使用mysqli

如果你使用面向對象mysqli你會連接到數據庫,像這樣:

$con = new mysqli($host, $user, $pass, $db); 

在你的情況,你可以使用

$con = new mysqli("127.0.0.1", $_POST['username'], $_POST['pwd'], "test"); 

不要指望這個爲你工作,你目前狀態下的問題太本地化,無法獲得你想要的答案。

編輯:我注意到你的數據庫被稱爲test - 爲什麼你不試圖連接到?這是什麼zain

1

你需要做以下步驟:

  1. 創建新數據庫 'test'。這個你必須已經
  2. 創建新用戶root
  3. 給新用戶的所有權限的訪問 對數據庫進行操作,如插入,刪除,連接 等等。我相信這是你錯過了什麼。
  4. 你可以從phpmyadmin - >權限 - >編輯權限。

enter image description here