Kan iemand mij AUB helpen met het maken van een login in php dit is wat ik al heb.

Een form


<!-- De login form -->
<div class="container mt-5">
	<h3>Login</h3>
	<form method="post" action"login.php" name="login">
	  <div class="form-group">
		<label for="gebruikersnaam">Gebruikersnaam</label>
		<input type="text" name="gebruikersnaam" class="form-control" aria-describedby="emailHelp" placeholder="Voer uw gebruikersnaam in">
	  </div>
	  <div class="form-group">
		<label for="wachtwoord">Password</label>
		<input type="password" name="password" class="form-control" id="exampleInputPassword1" placeholder="Password">
	  </div>
	  <button name="submit" type="submit" value="login" class="btn btn-primary">Submit</button>
	</form>	
</div>	


de sessie waar die naar toe gaat


<?php

    require('config.php')

    session_start();

    $username = trim($_POST['gebruikersnaam']);
    $password = trim($_POST['password']);

    

?>
Is dit soms een huiswerkopdracht?

Ik zal de stappen van een inlog-actie in stappen uitleggen:

- Controleer eerst of er ge-POST is met:
<?php
if($_SERVER['REQUEST_METHOD'] == "POST") {
?>[/code]

- controleer of de waardes zijn ingevuld
- Zorg dat je het wachtwoord hasht met [php]password_hash[/php], deze wil je NIET open en bloot opslaan!)
- controleer met [php]password_verify[/php] of het wachtwoord klopt. Controleer tevens met mysqli_num_rows of de username klopt.
- Denk aan SQL-injection, en escape je username. Je wachtwoord is niet nodig, omdat die altijd gehashed zal zijn, en niet met een injection te forceren is.
- Profit: De ingevoerde gegevens komen overeen. Zorg ervoor dat je een sessie aanmaakt met bijvoorbeeld het ID-nummer van de gebruiker.

Verder is dit best een basaal voorbeeld, maar er zijn tal van andere dingen om het inloggen veiliger te maken, zoals [php]session_regenerate_id[/php] om tussentijds je SessionID te veranderen om het kaper ervan onmogelijk te maken.
heb dit van een tut, maar wanneer ik inlog gebeurd er niks zelfs met een extra line code voor extra check boven laat die niks zien, behalve in the url balk zegt die not secure.


<?php
    
    error_reporting(E_ALL);
    ini_set('display_errors', '1');

    // Vereist config
    require('config.php')

    // Start de sessie
    session_start(); 

    // Variablen voor error bericht
    $error=''; // Variable To Store Error Message
    if (isset($_POST['submit'])) {
    if (empty($_POST['username']) || empty($_POST['password'])) 
    {
        $error = "Username or Password is invalid";
    }
    else
    {

    // Globale variablen
    $username = trim($_POST['gebruikersnaam']);
    $password = trim($_POST['password']);

    // MySQl injectie beschermen 
    $username = stripslashes($username);
    $password = stripslashes($password);
    $username = mysql_real_escape_string($username);
    $password = mysql_real_escape_string($password);

    // Database selected
    $db = mysql_select_db("studenten", $connection);

    // Query van database uitlezing
    $query = mysql_query("select * from studenten where password='$password' AND naam='$username'", $connection);

    $rows = mysql_num_rows($query);

    if ($rows == 1) 
    {
        $_SESSION['login_user']=$username; // Sessie intialiseren
        header("location: index.php"); // Redirecten naar andere pagina
        } else {
        $error = "Username or Password is invalid";
        }
        mysql_close($connection); // Connectie sluiten
        }
    }
?>
Zal wel komen omdat het nog functies uit de verouderde mysql-driver gebruikt.
Gebruik liever MySQLi (makkelijker) of PDO (wat lastiger)

En lees ook mijn stappenplan, want dit inlogscript slaat wachtwoorden onbeveiligd op!!!!!!

Ik zou ook zeker een SSL-verbinding aanraden. Let's Encrypt is gratis, als je webhosting dat ondersteunt!
Zal ik zeker doen maar nu is het een beetje met spoed, omdat ik bezig ben met examen opdracht en login is waar ik vast loop vandaar.
Haastige spoed is zelden goed ;-)
Als het maar goed en veilig is gebouwd, dan komt alles goed!
Nou ben wel aan het stressen want het werkt niet en zie ook geen errors...
Welke code heb je nu precies? Wat werkt er niet aan?Ik heb toch echt een hoop tips gegeven om ervopr te zorgen dat je een veilig inlogsysteem hebt. Het spreekt voor sich dat ik uiteraard geen kant en klare code geef ;-)
Je had het over verouderd msql heb ik nu verander naar msqli maar browser geeft nog steeds aan unsecure en kan maar niet inloggen ook geen errors


<?php
    
    error_reporting(E_ALL);
    ini_set('display_errors', '1');

    // Vereist config
    require('config.php')

    // Start de sessie
    session_start(); 

    // Variablen voor error bericht
    $error=''; // Variable To Store Error Message
    if (isset($_POST['submit'])) {
    if (empty($_POST['username']) || empty($_POST['password'])) 
    {
        $error = "Username or Password is invalid";
    }
    else
    {

    // Globale variablen
    $username = trim($_POST['gebruikersnaam']);
    $password = trim($_POST['password']);

    // MySQl injectie beschermen 
    $username = stripslashes($username);
    $password = stripslashes($password);
    $username = mysqli_real_escape_string($username);
    $password = mysqli_real_escape_string($password);


     $query = "SELECT * FROM 'studenten' WHERE naam='$username'
    and password='$password'";

    $result = mysqli_query($con,$query) or die(mysqli_error());

    $rows = mysqli_num_rows($result);
        if($rows==1){
        $_SESSION['gebruikersnaam'] = $username;
            // Redirect user to index.php
        header("Location: index.php");
         }
    }
}
?>
Je zult nu als het goed is een error zien, waarbij blijkt dat er op lijn 7 een ; mist.
Is er misschien iets mis met mijn loginform, want hij zegt elke keer dat het niet secure in in de url.

<?php

session_start()

?>
<!doctype html>
<html lang="en">
  <head>
    <!-- Required meta tags -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

    <!-- Bootstrap CSS -->
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css" integrity="sha384-WskhaSGFgHYWDcbwN70/dfYBj47jz9qbsMId/iRN3ewGhXQFZCSftd1LZCfmhktB" crossorigin="anonymous">
</head>
<body>
	
	
	
<!-- De login form -->
<div class="container mt-5">
	<h3>Login</h3>
	<form method="post" action"login.php" name="login">
	  <div class="form-group">
		<label for="gebruikersnaam">Gebruikersnaam</label>
		<input type="text" name="gebruikersnaam" class="form-control" aria-describedby="emailHelp" placeholder="Voer uw gebruikersnaam in">
	  </div>
	  <div class="form-group">
		<label for="wachtwoord">Password</label>
		<input type="password" name="password" class="form-control" id="exampleInputPassword1" placeholder="Password">
	  </div>
	  <button name="submit" type="submit" value="login" class="btn btn-primary">Submit</button>
	</form>	
</div>	
	  
<!-- Optional JavaScript -->
    <!-- jQuery first, then Popper.js, then Bootstrap JS -->
    <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/js/bootstrap.min.js" integrity="sha384-smHYKdLADwkXOn1EmN1qk/HfnUcbVRZyYmZ4qpPea6sjB/pTJ0euyQp0Mk8ck+5T" crossorigin="anonymous"></script>

  </body>
</html>

Reageren