Dringend...:thumb: PHP authorisatie
Hej,
Ik heb op mijn site een authenticatiescripje gemaakt.
Mijn pagina's (webshop) beveilig ik door <?php require "authenticatie.php" ?>
Maar als ik een wachtwoord invul en verder klik vraagt hij gelijk weer om een wachtwoord.
Normaal doet dat scripje het wel, maar ik heb het nu in een site gezet die met css gemaakt is... misschien dat het daar aan ligt?
Hier is mijn site incl. dat scripje...
<?php
session_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>JelCom -Computers-Laptops-Randapparatuur-Webdesign- EN GEGARANDEERD DE GOEDKOOPSTE!!!</title>
<link rel="stylesheet" type="text/css" href="css.css" />
</head>
<body>
<body bgcolor="#0299D8">
<!-- Begin Wrapper -->
<div id="wrapper">
<!-- Begin Header -->
<div id="header">
<center><br><br><br><br><br><font color="white">Best viewed by 1024x768 px</center></font>
</div>
<!-- End Header -->
<!-- Begin Left Column -->
<div id="leftcolumn">
<left><?php include "menu.php"?></left>
</div>
<!-- End Left Column -->
<!-- Begin Right Column -->
<div id="rightcolumn">
<center>
<table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse; border-width: 0" bordercolor="#111111" width="97%" id="AutoNumber1">
<tr>
<td width="100%" style="border-style: none; border-width: medium">
<p align="left">
<?php
require "database.php";
function controle($naam, $wachtwoord, $admin) {
if ($admin == false) {
$sql = "SELECT KLANT_ID, Username, Password FROM Klant WHERE Username='$naam'";
} else { // admin nodig? Haal eerste record op
$sql = "SELECT Klant_id, Username, Password FROM Klant WHERE Klant_id='8'";
}
$result = mysql_query($sql);
if (mysql_num_rows($result) > 0) {
$password = mysql_result($result, 0, "Password");
$klantid = mysql_result($result, 0, "Klant_id");
if ($wachtwoord != $password) {
return false;
} else {
return $klantid;
}
} else {
return false;
}
}
// Check naam en wachtwoord
if (isset($_POST['verzonden'])) {
$username = $_POST['username'];
$wachtwoord = ($_POST['wachtwoord']);
$klantid = controle($username, $wachtwoord, $admin);
if ($klantid != false) {
// Correct
$_SESSION['username'] = $username;
$_SESSION['wachtwoord'] = $wachtwoord;
$_SESSION['klantid'] = $klantid;
}
}
if (controle($_SESSION['username'], $_SESSION['wachtwoord'], $admin) == false) {
echo "<form method=\"post\" action=\"$PHP_SELF?";
reset($_GET); // Zet de array pointer op 0, begin bij het begin
// Stuur meegestuurd variabelen opnieuw mee.
while($getvar = each($_GET)) {
$varnaam = $getvar['key'];
$varinhoud = $getvar['value'];
echo "$varnaam=$varinhoud&";
}
echo "\">\n";
echo "</p>
<table border=\"1\" cellpadding=\"0\" cellspacing=\"0\" style=\"border-collapse: collapse; border-width: 0\" bordercolor=\"#111111\" width=\"100%\" id=\"AutoNumber1\" height=\"14\">
<tr>
<td width=\"28%\" style=\"border-style: none; border-width: medium\" height=\"12\">
<p align=\"right\"><font face=\"Arial\">Naam:</font></td>
<td width=\"72%\" style=\"border-style: none; border-width: medium\" height=\"12\">
<left><input type=\"text\" name=\"username\"></td>
</tr>
<tr>
<td width=\"28%\" style=\"border-style: none; border-width: medium\" height=\"12\">
<p align=\"right\"><font face=\"Arial\">Wachtwoord:</font></td>
<td width=\"72%\" style=\"border-style: none; border-width: medium\" height=\"12\">
<left><input type=\"password\" name=\"wachtwoord\"></td>
</tr>
</table>";
echo "<br>";
echo "<input type=\"submit\" value=\"verzenden\" name=\"verzonden\">";
echo "</form>";
echo "<p>Nog niet geregistreerd? <a href=\"aanmeldformulier.php\">[Registreer hier]</a><br>";
if ($admin == "true") {
echo "<p>--- Admin status is vereist!";
}
exit;
}
?>
</td>
</tr>
</table></center>
</div>
<!-- End Right Column -->
</div>
<!-- End Wrapper -->
</body>
</html>
Beetje rommelig, ik weet het... maar normaal doe ik het met require etc..
Maar als ik nu naar bijv. admin ga dan vraagt hij om een wachtwoord. Vervolgens klik ik in mijn admin op een onderdeel en vraagt hij gelijk weer om een wachtwoord...
Hoe kan dit?
En nog iets: Ik heb ook een scripje om artikels toe te voegen... maar als ik daar op toevoegen klik gaat hij gelijk naar mijn authorisatie... ipv al mijn producten op te slaan in de database...? Hier dat scripje:
<?php
session_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>JelCom -Computers-Laptops-Randapparatuur-Webdesign- EN GEGARANDEERD DE GOEDKOOPSTE!!!</title>
<link rel="stylesheet" type="text/css" href="css.css" />
</head>
<body>
<body bgcolor="#0299D8">
<!-- Begin Wrapper -->
<div id="wrapper">
<!-- Begin Header -->
<div id="header">
<center><br><br><br><br><br><font color="white">Best viewed by 1024x768 px</center></font>
</div>
<!-- End Header -->
<!-- Begin Left Column -->
<div id="leftcolumn">
<left><?php include "menu.php"?></left>
</div>
<!-- End Left Column -->
<!-- Begin Right Column -->
<div id="rightcolumn">
<center>
<table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse; border-width: 0" bordercolor="#111111" width="97%" id="AutoNumber1">
<tr>
<td width="100%" style="border-style: none; border-width: medium">
<p align="left">
<?php
require "header.php";
$admin = true;
require "authenticatie.php";
if ($knop && $naam && $omschrijving && $prijs) { // artikel ingevoerd?
$sql = "INSERT INTO Artikel (Naam, Omschrijving, Prijs) VALUES ('$naam', '$omschrijving', $prijs)";
if (!mysql_query($sql)) { // voer SQL code uit
echo "Toevoegen artikel mislukt!";
exit;
} else {
$artikelid = mysql_insert_id(); // primaire sleutel van zojuist toegevoegde rij
$sql = "INSERT INTO Categorie_per_Artikel (Artikel_id, Categorie_id) VALUES ($artikelid, $categorieid)";
if (!mysql_query($sql)) { // voer SQL code uit
echo "Toevoegen categorie mislukt!";
exit;
}
}
echo "OK, uw artikel $naam is toegevoegd.";
} elseif ($knop) {
$sql = "INSERT INTO Categorie_per_Artikel (Artikel_id, Categorie_id) VALUES ($artikelid, $categorieid)";
if (!mysql_query($sql)) { // voer SQL code uit
echo "Toevoegen categorie mislukt!";
exit;
}
echo "OK, uw artikel $naam is toegevoegd.";
}
if ($knop) {
?>
<p><div class="big">Artikel toevoegen</div><br>
<form method="post" action="<?php echo $PHP_SELF ?>">
<input type="hidden" name="naam" value="<?php echo $naam ?>">
<input type="hidden" name="artikelid" value="<?php echo $artikelid ?>">
Voeg eventueel een extra categorie toe aan het artikel <b><?php echo $naam ?></b><br>
Selecteer een categorie: <select name="categorieid">
<?php
$sql = "SELECT * FROM Categorie";
$resultaat = mysql_query($sql); // voer SQL code uit
while ($rij = mysql_fetch_array($resultaat)) {
echo "<option value=\"";
echo $rij["Categorie_id"]."\">";
echo $rij["Naam"]."</option>\n";
}
?>
</select><br>
<input type="submit" name="knop" value="toevoegen">
<?php
} else {
?>
<form method="post" action="<?php echo $PHP_SELF ?>">
Selecteer een categorie: <select name="categorieid">
<?php
$sql = "SELECT * FROM Categorie";
$resultaat = mysql_query($sql); // voer SQL code uit
while ($rij = mysql_fetch_array($resultaat)) {
echo "<option value=\"";
echo $rij["Categorie_id"]."\">";
echo $rij["Naam"]."</option>\n";
}
?>
</select><br>
Artikel naam: <input type="text" name="naam"><br>
Artikel omschrijving: <textarea name="omschrijving" cols="30" rows="4"></textarea><br>
Artikel prijs: <input type="text" name="prijs"><br>
<input type="submit" name="knop" value="toevoegen">
</form>
<?php
}
?>
</div>
<!-- End Right Column -->
</div>
<!-- End Wrapper -->
</body>
</html>
Hej,
Ik heb op mijn site een authenticatiescripje gemaakt.
Mijn pagina's (webshop) beveilig ik door <?php require "authenticatie.php" ?>
Maar als ik een wachtwoord invul en verder klik vraagt hij gelijk weer om een wachtwoord.
Normaal doet dat scripje het wel, maar ik heb het nu in een site gezet die met css gemaakt is... misschien dat het daar aan ligt?
Hier is mijn site incl. dat scripje...
<?php
session_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>JelCom -Computers-Laptops-Randapparatuur-Webdesign- EN GEGARANDEERD DE GOEDKOOPSTE!!!</title>
<link rel="stylesheet" type="text/css" href="css.css" />
</head>
<body>
<body bgcolor="#0299D8">
<!-- Begin Wrapper -->
<div id="wrapper">
<!-- Begin Header -->
<div id="header">
<center><br><br><br><br><br><font color="white">Best viewed by 1024x768 px</center></font>
</div>
<!-- End Header -->
<!-- Begin Left Column -->
<div id="leftcolumn">
<left><?php include "menu.php"?></left>
</div>
<!-- End Left Column -->
<!-- Begin Right Column -->
<div id="rightcolumn">
<center>
<table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse; border-width: 0" bordercolor="#111111" width="97%" id="AutoNumber1">
<tr>
<td width="100%" style="border-style: none; border-width: medium">
<p align="left">
<?php
require "database.php";
function controle($naam, $wachtwoord, $admin) {
if ($admin == false) {
$sql = "SELECT KLANT_ID, Username, Password FROM Klant WHERE Username='$naam'";
} else { // admin nodig? Haal eerste record op
$sql = "SELECT Klant_id, Username, Password FROM Klant WHERE Klant_id='8'";
}
$result = mysql_query($sql);
if (mysql_num_rows($result) > 0) {
$password = mysql_result($result, 0, "Password");
$klantid = mysql_result($result, 0, "Klant_id");
if ($wachtwoord != $password) {
return false;
} else {
return $klantid;
}
} else {
return false;
}
}
// Check naam en wachtwoord
if (isset($_POST['verzonden'])) {
$username = $_POST['username'];
$wachtwoord = ($_POST['wachtwoord']);
$klantid = controle($username, $wachtwoord, $admin);
if ($klantid != false) {
// Correct
$_SESSION['username'] = $username;
$_SESSION['wachtwoord'] = $wachtwoord;
$_SESSION['klantid'] = $klantid;
}
}
if (controle($_SESSION['username'], $_SESSION['wachtwoord'], $admin) == false) {
echo "<form method=\"post\" action=\"$PHP_SELF?";
reset($_GET); // Zet de array pointer op 0, begin bij het begin
// Stuur meegestuurd variabelen opnieuw mee.
while($getvar = each($_GET)) {
$varnaam = $getvar['key'];
$varinhoud = $getvar['value'];
echo "$varnaam=$varinhoud&";
}
echo "\">\n";
echo "</p>
<table border=\"1\" cellpadding=\"0\" cellspacing=\"0\" style=\"border-collapse: collapse; border-width: 0\" bordercolor=\"#111111\" width=\"100%\" id=\"AutoNumber1\" height=\"14\">
<tr>
<td width=\"28%\" style=\"border-style: none; border-width: medium\" height=\"12\">
<p align=\"right\"><font face=\"Arial\">Naam:</font></td>
<td width=\"72%\" style=\"border-style: none; border-width: medium\" height=\"12\">
<left><input type=\"text\" name=\"username\"></td>
</tr>
<tr>
<td width=\"28%\" style=\"border-style: none; border-width: medium\" height=\"12\">
<p align=\"right\"><font face=\"Arial\">Wachtwoord:</font></td>
<td width=\"72%\" style=\"border-style: none; border-width: medium\" height=\"12\">
<left><input type=\"password\" name=\"wachtwoord\"></td>
</tr>
</table>";
echo "<br>";
echo "<input type=\"submit\" value=\"verzenden\" name=\"verzonden\">";
echo "</form>";
echo "<p>Nog niet geregistreerd? <a href=\"aanmeldformulier.php\">[Registreer hier]</a><br>";
if ($admin == "true") {
echo "<p>--- Admin status is vereist!";
}
exit;
}
?>
</td>
</tr>
</table></center>
</div>
<!-- End Right Column -->
</div>
<!-- End Wrapper -->
</body>
</html>
Beetje rommelig, ik weet het... maar normaal doe ik het met require etc..
Maar als ik nu naar bijv. admin ga dan vraagt hij om een wachtwoord. Vervolgens klik ik in mijn admin op een onderdeel en vraagt hij gelijk weer om een wachtwoord...
Hoe kan dit?
En nog iets: Ik heb ook een scripje om artikels toe te voegen... maar als ik daar op toevoegen klik gaat hij gelijk naar mijn authorisatie... ipv al mijn producten op te slaan in de database...? Hier dat scripje:
<?php
session_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>JelCom -Computers-Laptops-Randapparatuur-Webdesign- EN GEGARANDEERD DE GOEDKOOPSTE!!!</title>
<link rel="stylesheet" type="text/css" href="css.css" />
</head>
<body>
<body bgcolor="#0299D8">
<!-- Begin Wrapper -->
<div id="wrapper">
<!-- Begin Header -->
<div id="header">
<center><br><br><br><br><br><font color="white">Best viewed by 1024x768 px</center></font>
</div>
<!-- End Header -->
<!-- Begin Left Column -->
<div id="leftcolumn">
<left><?php include "menu.php"?></left>
</div>
<!-- End Left Column -->
<!-- Begin Right Column -->
<div id="rightcolumn">
<center>
<table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse; border-width: 0" bordercolor="#111111" width="97%" id="AutoNumber1">
<tr>
<td width="100%" style="border-style: none; border-width: medium">
<p align="left">
<?php
require "header.php";
$admin = true;
require "authenticatie.php";
if ($knop && $naam && $omschrijving && $prijs) { // artikel ingevoerd?
$sql = "INSERT INTO Artikel (Naam, Omschrijving, Prijs) VALUES ('$naam', '$omschrijving', $prijs)";
if (!mysql_query($sql)) { // voer SQL code uit
echo "Toevoegen artikel mislukt!";
exit;
} else {
$artikelid = mysql_insert_id(); // primaire sleutel van zojuist toegevoegde rij
$sql = "INSERT INTO Categorie_per_Artikel (Artikel_id, Categorie_id) VALUES ($artikelid, $categorieid)";
if (!mysql_query($sql)) { // voer SQL code uit
echo "Toevoegen categorie mislukt!";
exit;
}
}
echo "OK, uw artikel $naam is toegevoegd.";
} elseif ($knop) {
$sql = "INSERT INTO Categorie_per_Artikel (Artikel_id, Categorie_id) VALUES ($artikelid, $categorieid)";
if (!mysql_query($sql)) { // voer SQL code uit
echo "Toevoegen categorie mislukt!";
exit;
}
echo "OK, uw artikel $naam is toegevoegd.";
}
if ($knop) {
?>
<p><div class="big">Artikel toevoegen</div><br>
<form method="post" action="<?php echo $PHP_SELF ?>">
<input type="hidden" name="naam" value="<?php echo $naam ?>">
<input type="hidden" name="artikelid" value="<?php echo $artikelid ?>">
Voeg eventueel een extra categorie toe aan het artikel <b><?php echo $naam ?></b><br>
Selecteer een categorie: <select name="categorieid">
<?php
$sql = "SELECT * FROM Categorie";
$resultaat = mysql_query($sql); // voer SQL code uit
while ($rij = mysql_fetch_array($resultaat)) {
echo "<option value=\"";
echo $rij["Categorie_id"]."\">";
echo $rij["Naam"]."</option>\n";
}
?>
</select><br>
<input type="submit" name="knop" value="toevoegen">
<?php
} else {
?>
<form method="post" action="<?php echo $PHP_SELF ?>">
Selecteer een categorie: <select name="categorieid">
<?php
$sql = "SELECT * FROM Categorie";
$resultaat = mysql_query($sql); // voer SQL code uit
while ($rij = mysql_fetch_array($resultaat)) {
echo "<option value=\"";
echo $rij["Categorie_id"]."\">";
echo $rij["Naam"]."</option>\n";
}
?>
</select><br>
Artikel naam: <input type="text" name="naam"><br>
Artikel omschrijving: <textarea name="omschrijving" cols="30" rows="4"></textarea><br>
Artikel prijs: <input type="text" name="prijs"><br>
<input type="submit" name="knop" value="toevoegen">
</form>
<?php
}
?>
</div>
<!-- End Right Column -->
</div>
<!-- End Wrapper -->
</body>
</html>
Laatst bewerkt: