Toegang inperken na inloggen werkt niet (PHP)

Status
Niet open voor verdere reacties.

TheoDijkstra

Nieuwe gebruiker
Lid geworden
20 jun 2011
Berichten
4
Hallo,

Ik heb het volgende probleem:

Op mijn website moet een gedeelte komen waar alleen geregistreerde gebruikers toegang hebben middels username, password en een beperking tot een bepaalde pagina.
Dreamweaver heeft hiervoor een module aan boord welke met asp op de site prima werkte.
Echter ik ben verhuist naar een nieuwe host en deze ondersteunt standaard php en mysql.

Ik heb een database gemaakt met 1 tabel met hierin de kolommen: id, gebruikersnaam, password, pad, beperking.

middels een connectie krijg ik contact met de database, deze werkt.
middels een recordset met hierin de querie [SQL]select * from namen [/SQL]krijg ik de inhoud van de tabel te zien.

Met de pagina login.php vraag ik om de gebruikersnaam en het password. (deze worden vooraf aan de klanten mee gegeven)
Indien de login succesvol is worden de klanten doorgeleid naar de pagina succes.php.
Indien niet succesvol wordt de pagina denied.htm getoond.
Hierin staat de recordset verwijzing.

Uit de database moet het pad worden doorgegeven waarna de klant wordt omgeleid naar de zijn pagina.

Op deze pagina in dit geval test.php wordt nog een check gedaan op de beperking, waarna de pagina getoond moet worden getoond.

Dit laatste gebeurt niet.

Bij onjuiste username/password wordt de pagina denied keurig getoond.
Bij juiste username/password wordt de text uit de body van succes.php getoond in plaats van dat er wordt doorverwezen naar de juiste pagina.

Zoals gezegd met asp wekte het wel, maar met php krijg ik het niet voor elkaar.




Als ik in de recordset een filter wil toepassen op de beperking wordt er een foutmelding getoond, [SQL]Select * From namen Where beperking = 1001[/SQL]

Ik zoek al dagen naar de oplossing, maar ik vind hem (nog) niet.

Wie kan mij helpen om dit op te lossen???


Login.php

<?php require_once('../Connections/db.php'); ?>
<?php
// *** Validate request to login to this site.
if (!isset($_SESSION)) {
session_start();
}

$loginFormAction = $_SERVER['PHP_SELF'];
if (isset($_GET['accesscheck'])) {
$_SESSION['PrevUrl'] = $_GET['accesscheck'];
}

if (isset($_POST['Gebruikersnaam'])) {
$loginUsername=$_POST['Gebruikersnaam'];
$password=$_POST['Password'];
$MM_fldUserAuthorization = "beperking";
$MM_redirectLoginSuccess = "succes.php";
$MM_redirectLoginFailed = "denied.htm";
$MM_redirecttoReferrer = false;
mysql_select_db($database_db, $db); mogelijk moet hier staan $mijnsite ipv. $db. de echte naam heb ik vervangen.
$LoginRS__query=sprintf("SELECT Gebruikersnaam, Password, beperking FROM Namen WHERE Gebruikersnaam=%s AND Password=%s",
GetSQLValueString($loginUsername, "text"), GetSQLValueString($password, "text"));

$LoginRS = mysql_query($LoginRS__query, $db) or die(mysql_error());
$loginFoundUser = mysql_num_rows($LoginRS);
if ($loginFoundUser) {

$loginStrGroup = mysql_result($LoginRS,0,'beperking');


//declare two session variables and assign them
$_SESSION['MM_Username'] = $loginUsername;
$_SESSION['MM_UserGroup'] = $loginStrGroup;

if (isset($_SESSION['PrevUrl']) && false) {
$MM_redirectLoginSuccess = $_SESSION['PrevUrl'];
}
header("Location: " . $MM_redirectLoginSuccess );
}
else {
header("Location: ". $MM_redirectLoginFailed );
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Naamloos document</title>
</head>

<body>
<div id="home">
<form ACTION="<?php echo $loginFormAction; ?>" method="POST" name="form1">
Gebruikersnaam<input name="Gebruikersnaam" type="text" maxlength="25" width="100px" Class="gebruikersnaam"/><br />
Password<input name="Password" type="password" maxlength="10" width="100px" Class="password"/><br />
<input name="OK" type="submit" value="OK" Class="buttonok"/>

</form>
</div>
</body>
</html>

Succes.php

<?php require_once('../Connections/db.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
if (PHP_VERSION < 6) {
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
}

$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
}
mysql_select_db($database_db, $db);
$query_Recordset1 = "SELECT * FROM Namen";
$Recordset1 = mysql_query($query_Recordset1, $db) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 = mysql_num_rows($Recordset1);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html><!-- InstanceBegin template="../../Pages/Pbfotonieuw/Templates/dbnw.dwt" codeOutsideHTMLIsLocked="false" -->
<head>
<!-- InstanceBeginEditable name="doctitle" -->
<title>Untitled Document</title>
<!-- InstanceEndEditable -->
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<!-- InstanceBeginEditable name="head" -->
<!-- InstanceEndEditable -->
<style type="text/css">
<!--
body,td,th {
font-family: Tahoma;
color: #FFFFFF;
}
body {
background-color: #1f1f1f;
}
-->
</style></head>

<body>
<!-- InstanceBeginEditable name="EditRegion3" -->login succesvol <!-- InstanceEndEditable -->
</body>
<!-- InstanceEnd --></html>
<?php
mysql_free_result($Recordset1);
?>

test.php
<?php
if (!isset($_SESSION)) {
session_start();
}
$MM_authorizedUsers = "1001";
$MM_donotCheckaccess = "false";

// *** Restrict Access To Page: Grant or deny access to this page
function isAuthorized($strUsers, $strGroups, $UserName, $UserGroup) {
// For security, start by assuming the visitor is NOT authorized.
$isValid = False;

// When a visitor has logged into this site, the Session variable MM_Username set equal to their username.
// Therefore, we know that a user is NOT logged in if that Session variable is blank.
if (!empty($UserName)) {
// Besides being logged in, you may restrict access to only certain users based on an ID established when they login.
// Parse the strings into arrays.
$arrUsers = Explode(",", $strUsers);
$arrGroups = Explode(",", $strGroups);
if (in_array($UserName, $arrUsers)) {
$isValid = true;
}
// Or, you may restrict access to only certain users based on their username.
if (in_array($UserGroup, $arrGroups)) {
$isValid = true;
}
if (($strUsers == "") && false) {
$isValid = true;
}
}
return $isValid;
}

$MM_restrictGoTo = "../../pages/denied.htm";
if (!((isset($_SESSION['MM_Username'])) && (isAuthorized("",$MM_authorizedUsers, $_SESSION['MM_Username'], $_SESSION['MM_UserGroup'])))) {
$MM_qsChar = "?";
$MM_referrer = $_SERVER['PHP_SELF'];
if (strpos($MM_restrictGoTo, "?")) $MM_qsChar = "&";
if (isset($QUERY_STRING) && strlen($QUERY_STRING) > 0)
$MM_referrer .= "?" . $QUERY_STRING;
$MM_restrictGoTo = $MM_restrictGoTo. $MM_qsChar . "accesscheck=" . urlencode($MM_referrer);
header("Location: ". $MM_restrictGoTo);
exit;
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Naamloos document</title>
</head>

<body>

Test Theo
</body>
</html>


mijnsite.php

<?php
# FileName="Connection_php_mysql.htm"
# Type="MYSQL"
# HTTP="true"
$hostname_mijnsite = "mijnsite.nl";
$database_mijnsite = "mijndatabase";
$username_mijnsite = "mijnnaam";
$password_mijnsite = "mijnpassword";
$pbfoto = mysql_pconnect($hostname_mijnsite, $username_mijnsite, $password_mijnsite) or trigger_error(mysql_error(),E_USER_ERROR);
?>

Recordset1
Connection mijnsite

SELECT *
FROM Namen



De sitenaam en wachtwoorden zijn in bovenstaande vervangen door fictieve waarden.
Mogelijk dat de waarde $db niet overal juist is hierboven, ik heb de echte benamingen vervangen door db.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan