Hallo,

Ik ben weer net met PHP begonnen. Ik wil een site maken om in te loggen maar krijg de volgende foutmelding:


Warning: mysql_connect(): Access denied for user 'root'@'localhost' (using password: NO) in C:\USB WebServer\root\login.php on line 8
Connection error

<?php

$host = "localhost" ;
$user = "root";
$password ="";
$db = "user";

$data = mysql_connect($host, $user, $password, $db);

if($data==false)
{
    die ("Connection error");
}

?>



<!DOCTYPE html>
<html>
   <head> 
       <title>Inloggen</title>
   </head>

   <body>
            <center>
                <br>
                <h1>Inloggen</h1>
                <br>
                <div style= "background-color: grey; width: 1000px">
                    <br>
                    <br>
                    <form action =# method="POST">
                        <div>
                                <label>Wachtwoord</label>
                                <input type="text" name="username" required>
                        </div>
                        <br>
                        <br>
                        
                        <div>
                                <label>Password</label>
                                <input type="password" name="password" required>
                        </div>
                        <br>
                        <br>

                        <div>
                                <input type="submit" value="Login">
                        </div>
                    </form>
                    <br>
                </div>
            </center>



Wat doe ik fout?
Ik vermoed dat je inlog-gegevens niet kloppen, je password mis waarschijnlijk.

Los van de fout gebruik je ook de oude mysql_xxxxx() functies. In PHP 7 zijn deze verwijderd, dus op veel hostings zal dit script niet meer werken. Je kan het beste de MySQLi functies gebruiken.
Hoi Arien,

Kan niet eens een wachtwoord of gebruikersnaam invoeren. Krijg menteen de foutmelding. Van MySQL heb ik MySQLi gemaakt!

Dus de vraag blijft nog steeds waarom werkt het niet?

Groetjes
Ed


Op lijn 4 en 5 moet je een username en password invullen.

Bij USB Webserver is de username: root, en het wachtwoord standaard usbw.

Ik ben benieuwd op welke PHP-versie dit draait, want ik vind het frappant dat de oude functies nog werken.
Zelf vind ik XAMPP een beter up-to-date alternatief.

De versie kan je bekijken met dit script, en noem dit phpinfo.php:
<?php
phpinfo();
?>

Bij uitvoer via je browser zie je bovenaan het versienummer.
Ik geloof dat ik in het stenen tijdperk leef! 2008!!!


PHP Logo
PHP Version 5.4.17

Groetjes
Ed
Ja, behoorlijk oud! Inmiddels zitten we al bij de versies: 8.0.12 en 7.4.25. (versie 6 is overgeslagen)

Neemt niet weg dat het onbruikbaar is, maar je zal wel snel tegen drempels aanlopen als je intensief PHP gaat gebruiken. Ik raad aan om XAMPP te kiezen.
Hoe ziet je relevante code er nu uit?
Kan je die hier ook delen tussen code-tags voordat de afbeelding opeens verdwijnt?
<?php

$host = "localhost";
$user = "root";
$password ="usbw";
$db = "login";

$data = mysqli_connect($host, $user, $password, $db);

if($data==false)
{
    die ("Connection error");
}

if($_SERVER ["REQUEST_METHOD"]=="POST")
{
    $username = $_POST["username"];
    $password = $_POST["password"];

    $sql = "SELECT  * FROM login WHERE username= ' ".$username. "' AND  password= ' ".$password. " '";

    $result = mysqli_query($data,$sql);

    $row = mysqli_fetch_array($result);

    if($row["usertype"]=="user")
    {
        echo "user";
    }

    elseif($row["usertype"]=="admin")
    {
        echo "admin";
    }
    else
    {
        echo "username or password incorrect";
    }
    
}

?>

<!DOCTYPE html>
<html>
   <head>
       <title>Inloggen</title>
   </head>

   <body>
            <center>
                <br>
                <h1>Inloggen</h1>
                <br>
                <div style= "background-color: grey; width: 1000px">
                    <br>
                    <br>
                    <form action =# method="POST">
                        <div>
                                <label>Wachtwoord</label>
                                <input type="text" name="username" required>
                        </div>
                        <br>
                        <br>

                        <div>
                                <label>Password</label>
                                <input type="password" name="password" required>
                        </div>
                        <br>
                        <br>

                        <div>
                                <input type="submit" value="Login">
                        </div>
                    </form>
                    <br>
                </div>
            </center>

Kijk eens naar [php]mysqli_error[/php] en kijk dan eens naar wat je mysqli_query doet.
Hoi Arien,

IK snap hem niet. WAt ik begrijp is dat er 0 of 1 uit moet komen. En dat komt er niet. Kun je iets uit de doek den doen?

Groetjes
Ed

Reageren