2014-05-10 3 views
-4

я попробовал один раз решение ответило здесь и на многих других форумах, но все напрасно я еще получил ошибку при подключении к базе данных MySQL с помощью PHPподключения базы данных MySQL с помощью 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"); 

Не ожидайте, что это работает для вас, ваш вопрос в текущем состоянии слишком локализован, чтобы получить ответ, который вам нужен.

EDIT: Я заметил, что ваша база данных называется test - почему вы не пытались подключиться к ней? Что это такое zain?

1

Вам нужно сделать следующие шаги:

  1. создать новый 'тест' базы данных. Это вы должны уже иметь
  2. Создать новый корень пользователя
  3. дать новому пользователю доступ «Все привилегии» выполнять действия в базе данных, как вставка, удаление, подключение и т.д. Я считаю, что это то, что вам не хватает ,
  4. Вы можете сделать это из phpmyadmin -> privileges -> edit privileges.

enter image description here

Смежные вопросы