Försöker att skapa vilken behörighet användaren skall få vid inloggning. Har gjort en del ändringar i koden för att försöka ändra detta. Har en fil som skapar min admin i koden, se bifogad fil. Som jag har det nu så kommer alla användare till min adminPage, där skall admin kunna skriva inlägg och lägga till nya användare och övriga skall bara kunna skriva inlägg(alltså de som är inloggade).Välja behörighet vid inloggning.
Det som jag har testat i min adminPage är att kunna plocka fram vilken behörighet som inloggad har med enkel echo utskrift, men redan där får jag fel endast andra echo:t i if-satsen skrivs ut, även om jag är admin eller inte.
Men om jag vill styra från inloggsidan till vilken sida som de olika behöriga skall komma till så behöver jag lite hjälp.
Login.php
<?php
// ===========================================================================================
// PLogin.php
//
// Show a login-form, ask for user name and password.
$html = <<<EOD
<center><h2>Logga in</h2>
<p>
Ange ditt användarnamn och ditt lösenord för att logga in.
</p>
<fieldset>
<legend>Logga in</legend>
<form action="?p=loginp" method="post">
<input type='hidden' name='redirect' value='adminPage'>
<table>
<tr>
<td style="text-align: right">
<label for="namnUser">Användare:</label>
</td>
<td>
<input class="login" type="text" name="namnUser">
</td>
</tr>
<tr>
<td style="text-align: right">
<label for="passwordUser">Lösenord:</label>
</td>
<td>
<input class="password" type="password" name="passwordUser">
</td>
</tr>
<tr>
<td colspan='2' style="text-align: right"><button type="submit" name="submit">Logga in</button></td>
</tr>
</table>
</form>
</fieldset></center>
EOD;
// Create and print out the resulting page
//
require_once('CHTMLPage.php');
$page = new CHTMLPage();
$page->printHTMLHeader('Logga in');
$page->printPageHeader();
$page->printPageBody($html);
$page->printPageFooter();
?>
loginProcess
<?php
// Create a new database object, connect to the database.
//
$mysqli = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_DATABASE);
if (mysqli_connect_error()) {
echo "Connect failed: ".mysqli_connect_error()."<br>";
exit();
}
// Take care of _GET/_POST variables. Store them in a variable (if they are set).
//
$user = isset($_POST['namnUser']) ? $_POST['namnUser'] : '';
$password = isset($_POST['passwordUser']) ? $_POST['passwordUser'] : '';
// Prevent SQL injections
$user = $mysqli->real_escape_string($user);
$password = $mysqli->real_escape_string($password);
// Prepare and perform a SQL query.
//
$members = DB_PREFIX . 'members';
$query = <<< EOD
SELECT
idUser,
namnUser,
ansvarsomrade
FROM {$members}
WHERE
namnUser = '{$user}' AND
passwordUser = md5('{$password}')
;
EOD;
$res = $mysqli->query($query)
or die("<p>Could not query database,</p><code>{$mysqli->error}</code><code>{$query}</code>");
// -------------------------------------------------------------------------------------------
//
// Use the results of the query to populate a session that shows we are logged in
//
$row = $res->fetch_object();
//$_SESSION = Array(); // Clear the current session variables
// Must be one row in the resultset
if($res->num_rows === 1) {
$_SESSION['idUser'] = $row->idUser;
$_SESSION['namnUser'] = $row->namnUser;
$_SESSION['ansvarsomrade'] = $row->ansvarsomrade;
} else {
$_SESSION['errorMessage'] = "Inloggningen misslyckades";
$_POST['redirect'] = 'login';
}
$res->close();
$mysqli->close();
// Redirect to another page
//
$redirect = isset($_POST['redirect']) ? $_POST['redirect'] : 'adminPage';
header('Location: ' . WS_SITELINK . "?p={$redirect}");
exit;
?>
adminpage (där är något fel bl.a)
<?php
// ===========================================================================================
require_once('CHTMLPage.php');
$title = "PTemplate1Columns";
$style = "1-kolumns.css";
$page = new CHTMLPage($style);
//$page->printHTMLHeader('Fooglers blogg idag den ' . date(DATE_RFC822));
$mysqli = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_DATABASE);
if (mysqli_connect_errno()) {
echo "Connect failed: ".mysqli_connect_error()."<br>";
}
$query= "SELECT ansvarsomrade, namnUser FROM membersmembers WHERE idUser=1;"; // Byt 2 mot vad du har!
$result = $mysqli->query($query)
or die("Could not query database");
//$result = $mysqli->query($query)
// or die("<p>Could not query database,</p><code>{$mysqli->error}</code><code>{$query}</code>");
$query = "SELECT ansvarsomrade, namnUser FROM membersmembers WHERE idUser=1";
echo $query ;
if ($query = $mysqli->query("SELECT ansvarsomrade, namnUser FROM membersmembers WHERE idUser=1")) {
$fetch= mysqli_fetch_array($query);
}
if($fetch['ansvarsomrade'] == 1)
{
echo'admin';
}
else
{
echo 'användare';
}
/* free result set */
$result->close();
$html = <<<EOD
<center>
<h2>Administratör-sida.</h2>
Lägg till ny användare<br><br>
Skriv nytt inlägg
</center>
EOD;
$page->addPageBodyLeft($html);
// Print out the resulting page
$page->printPage($title);
?>
Har sökt och letat i forumet och i manualen hur jag skriver detta, men kommer inte fram till någon bra lösning. Det som inte är skapat än är en sida för vanliga användare som inte har admin behörighet, kommer sen.