PHP authorisatie

Status
Niet open voor verdere reacties.

turbojohn

Gebruiker
Lid geworden
26 jun 2007
Berichten
262
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>
 
Laatst bewerkt:
Misschien kijk ik verkeerd in je script (beetje vlugtig gekeken), maar ik zie nergens dat de $admin variabele op true wordt ingesteld..
 
Misschien kijk ik verkeerd in je script (beetje vlugtig gekeken), maar ik zie nergens dat de $admin variabele op true wordt ingesteld..

Nee.. in mijn authenticatie.php staat het scripje: als er op een pagina $admin=true staat moet hij kijken naar de rij in mijn database met id=8
Op mijn oude site werkte alles perfect, maar nu ineens niet meer.
Ligt dat aan tabellen of aan de CSS ofzo? Ik snap t eigenlijk niet.
Deze scripjes zijn uit de boekjes van Arjan van Duuren... leer jezelf makkelijk PHP.
Ik weet niet of daar iets fout in zit dan ofzo...?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan