Ik ben bezig met een formulier, waarbij je op basis van gegevens uit de database naar een bepaalde pagina word gestuurd.
Staat er in de database dat je een Gebruiker bent, dan ga je naar gebruiker.php?...
ben je volgens de database een Medewerker, dan ga je naar admin.php

De volgende code heb ik geprobeerd met eerst alleen een check of je gebruiker bent, zonder succes:


<?php
session_start(); // Start a new session
if(isset($_GET['Medewerkerscode']))
{ 
  $ID = intval($_GET['Medewerkerscode']);
  // getting info from db
}
?>
<?php
if(isset($_GET['Gebruikersnaam']))
{ 
  $username = $_GET['Gebruikersnaam'];
  // getting info from db
}?><?php
                        
$con=mysqli_connect("-t");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
};
// Get the data passed from the form
$username = $_POST['Gebruikersnaam'];
$password = $_POST['Wachtwoord'];

// escape variables for security
$username = mysqli_real_escape_string($con, $_POST['Gebruikersnaam']);
$password = mysqli_real_escape_string($con, $_POST['Wachtwoord']); 
$ID = mysqli_real_escape_string($con, $_POST['Medewerkerscode']); 

$sql = "select * FROM gebruikers WHERE Gebruikersnaam = '$username' and id = '$ID' and Wachtwoord = '$password'";

$result = mysqli_query($con, $sql) or die ( mysql_error() );

$nrOfRows = mysqli_num_rows($result);
if ($nrOfRows > 0)
{
	if(mysqli_query("SELECT Functie FROM gebruikers WHERE Functie = 'Medewerker'")){
    $_SESSION['Inloggen'] = "true";
    header("Location:admin.php?id=" . $row['Medewerkerscode'] . "&&Gebruikersnaam=" . $row['Gebruikersnaam'] . "&&Wachtwoord=" . $row['Wachtwoord'] . "");
}
}
else
{
    echo "Het inloggen is mislukt.";
}
mysqli_close($con);
?></body></html>
Haal de include er dan eens uit. Die heb je niet nodig. Het weergeven van $display dus ook niet.
<?php
// ...
$sql = "SELECT image, image_type FROM afbeeldingen WHERE id=$id";
// ...
?>

:(

Dit is niet het idee van prepared statements.

Reageren