2016-06-10 9 views
-3

ich versuche, eine einfache Anmeldung in PHP + MySQL zu codieren. Jedesmal, wenn ich einreichen getroffen Taste i diesen FehlerVerbindung zu MySQL nicht möglich: Zugriff verweigert für Benutzer 'root' @ 'localhost' (mit Passwort: YES)

Es konnte keine Verbindung zu MySQL: Zugriff verweigert für Benutzer ‚root‘ @ ‚localhost‘ (Kennwort: JA)

Dies ist Code, der mit im, um eine Verbindung zu 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(); 
} 
?> 

ich habe 2 Konten root und johny, sie haben alle Privilegien und ich die Passwörter und ich kann arbeiten auf Datenbank, die ich erstellt.

phpMyAdmin config:

phpmyadmin config

Ich weiß nicht, wo an diesem Punkt ist das Problem, das ist, warum im um Hilfe zu bitten.

Sorry für mein Englisch, ich bin kein Muttersprachler

+2

Ihre Fehlermeldung besagt, dass Sie versuchen, sich als root anzumelden. Ihr Code sagt, dass Sie versuchen, sich als Johny einzuloggen. Du hast etwas falsch kopiert. – Quentin

+1

Ihr Code für die Frage sollte ** in der Frage ** sein, nicht gehostet auf einer externen Website mit einem Link. – Quentin

+1

** Gefahr **: Sie verwenden [eine ** veraltete ** Datenbank-API] (http://stackoverflow.com/q/12859942/19068), die [entfernt] wurde (http://php.net/ Handbuch/de/mysql.php) von PHP. Sie sollten einen [modernen Ersatz] (http://php.net/manual/en/mysqlinfo.api.choosing.php) auswählen. Sie sind anfällig für [SQL injection attacks] (http://bobby-tables.com/) **, dass eine moderne API es einfacher machen würde [zu verteidigen] (http://stackoverflow.com/questions/60174/ Best-Way-zu-verhindern-sql-injection-in-php) von selbst. – Quentin

Antwort

2

Sie mit der Datenbank verbunden, die mysqli_ Bibliothek.

Dann haben Sie versucht, es mit der (veralteten) mysql_ Bibliothek abzufragen.

Letzterer hat keine Verbindung zur Datenbank, also versuchte er einen zu öffnen (und fehlgeschlagen).

Wählen Sie eine Bibliothek aus und verwenden Sie sie konsistent.

+0

Sie sollten definitiv 'mysqli_' auswählen - mysql ist veraltet und veraltet. – JonasCz

Verwandte Themen