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?
Hoi,
Ik het zo goed als mogelijk aangepast maar krijg de volgende foutmelding:

De query is niet gelukt: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE username=' ed' AND password=' abc '' at line 1

Bijgaand de code




<!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>

<?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. " ' WHERE username=' ed' AND password=' abc '";
    

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

if( $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";
    }
} else {
echo "De query is niet gelukt: ".mysqli_error($data);
}

?>


zover ik weet gebruik versie 5 van ik weet of dat daar al mis gaat, maar mijn inziens niet. Wat gaat er nu mis?

Groetjes
Ed

WHERE AND en daarna WHERE AND?


Wat is volgens jouw het nut om eerst te kijken naar je invoer, en daarna opeens hardcoded te controleren op 'ed' en 'abc'? Dit lijkt mij een gevalletje van een foute copy-paste?

Sowieso kan je nooit WHERE AND WHERE AND als volgorde gebruiken.
hallo,

Bijna alle fouten weggewerkt maar deze blijft over:

username or password incorrect

Wat is nog het probleem?

[size=xsmall]Toevoeging op 05/11/2021 16:39:28:[/size]




<!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>

<?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 user WHERE username = ' ".$username. "' AND  password = ' ".$password. " '";

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

if( $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";
    }
} else
{
    echo "De query is niet gelukt: ".mysqli_error($data);
}

?>
Om deze reden:
Ivo P op 05/11/2021 12:52:30

wel apart dat de query controleert of de username begint met een spatie, gevolgd door de opgegeven naam
En of het password in de database een spatie voor en achteraan heeft.


WHERE username=' ed' AND password=' abc ';



Het gaat nog steeds niet goed!

het geval met spaties heb ik even als commentaar gezet

Hoe los ik het probleem nu op??

ik heb als gbn user gebruikt en als wachtwoord 1234
Jij voert als username ed in, en omdat je in je query een spatie hebt staan, zoekt MySQL dus naar [spatie]ed. En die gebruiker bestaat dus niet.

En dat geldt ook voor je wachtwoord.
Hoi Arien

Dat doe ik niet!

ik vul in user en 1234!!
ok, dan bedoelt Ariën dus


zoekt MySQL dus naar [spatie]user.


en voor password vraag jij aan de database naar [spatie]1234[spatie]

een beeetje begrijpend lezen is misschien wel handig....
Ja Ed, dat doe je.
Maar in de query staan er SPATIES VOOR EN ACHTER.
Als je goed kijkt kan je ze zien.
$sql = "SELECT * FROM user WHERE username = ' ".$username. "' AND  password = ' ".$password. " '";


[size=xsmall]Toevoeging op 05/11/2021 17:27:16:[/size]

HBO denknivo
Oeps sorry niet gezien maar ik kom nu bij user uit!! Yippie

Reageren