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?
Mooi zo :-)

Volgende stappen:
- Beveiliging tegen SQL injection
- Wachtwoorden hashen om ze onleesbaar te maken, dmv. [php]password_hash[/php] en [php]password_verify[/php]
- Goede controle of een password of gebruikersnaam fout is. Nu kijk je naar 'usertype', en niet naar het aantal rijen die je ophaalt met je select-query (moet 1 zijn als de gebruiker bestaat, en 0 als die niet bestaat. Wachtwoorden kan controleren met password_verify().
Ja ik juichte iets te snel. doorlinken naar een andere pagina lukt wel!

Notice: Undefined variable: sql in C:\USB WebServer\root\Website\login2.php on line 67

Warning: mysqli_query(): Empty query in C:\USB WebServer\root\Website\login2.php on line 67
De query is niet gelukt:





<!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>
</body>
</html>


<?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" )
    {
        header ("location:userhome.php");
    }

    elseif($row["usertype"]=="admin")
    {
        header ("location:adminhome.php");
    }
    else
    {
        echo "username or password incorrect";
    }
} else
{
    echo "De query is niet gelukt: ".mysqli_error($data);
}

?>
$sql is alleen beschikbaar als je het formulier ge-POST hebt. Het lijkt mij zinniger om de accolade op lijn 63 te verhuizen naar het eind.

Zie ook mijn vorige tips.
Hallo allemaal,

Ik ben weer vooraan begonnen. Het uploaden van de bestanden gaat nu wel, maar ik kan nog steeds niet in de database zetten. En daar ging het om,want ik wil ze weer kunnen uitlezen. Wie kan me helpen?


    $sql = "INSERT INTO imageupload(title, image) VALUES('$title','$name')";


Wat doe ik in deze regel mis?
Code:




<!DOCTYPE html>
<html>
<head>
    <title>File Upload</title>
</head>
<body>
 
<form method="post" enctype="multipart/form-data">
    <label>Titel</label>
    <input type="text" name="title">
    <label>File Upload</label>
    <input type="File" name="file">
    <input type="submit" name="submit">
 
 
</form>
 
</body>
</html>
 
<?php 

//verbinding maken met de database
//$conn = mysqli_connect('localhost', 'root', 'usbw', 'imageupload');// de laatste is de naam van de dadatabase


require_once "connection.php";

if (isset($_POST["submit"]))
 {
    //file title
    $title = $_POST["title"];
     
    //file name
    $name = $_FILES["file"]["name"];
 
    //temporary file name to store file
    $tname = $_FILES["file"]["tmp_name"];
   
    //upload directory pad
    $uploads_dir = 'images';
    
    //Kopieer de dabestanden
    move_uploaded_file($tname, $uploads_dir.'/'.$name);
 
    //SQL om de de documenten in de db te zetten
    
    $sql = "INSERT INTO imageupload(title, image) VALUES('$title','$name')";
 
    if(mysqli_query($conn, $sql))
    {
     echo "File Sucessfully uploaded";
    }
    else{
        echo "Error";
    }
}
 
En wat gebeurt er precies?
Heb je je $sql al ge-echo'd?
Let op SQL-injection.
En sowieso raad ik aan om eerst te kijken of de upload gelukt is, en daarna de query uit te voeren.


<html>
<body>
    <a href ="index.php"></a>
    <?php

        require_once "connection.php";

        $sql  = "SELECT * FROM imageupload ORDER BY id DESC";
        $res = mysqli_query($conn, $sql);
        //print_r ($res);

        if(mysqli_num_rows($res)> 0)
        {
            while($images = mysqli_fetch_assoc($res)) 
            {
               // print_r ($images);



    ?>
            
    <div class = "alb">
        <img src = "images/<?php echo $images['image']; ?>">
    <?php echo $images['title']; ?>
</div>

    <?php    }

    }
    ?>
</body>
<html>



De werkende code!

Reageren