Gå til innhold

session == brukernavn


Anbefalte innlegg

jeg tenkte å lage en ønskeliste i php/sql for å lære litt mer men nå sitter jeg fast.

jeg har en side med innlogging og den viderefører til denne siden som krever at du er logget inn med brukernavn som session og det jeg har tenkt til å gjøre er at hvis session == wabbit (altså at jeg har logget inn) så skal den include("admin.php");

og der på admin.php er det mulighet fo rå legge til brukere og ønsker :D

 

jeg har også sett at det går ann å filtrere etter brukerlevel men fikk ikke dette til så hvis noen snille sjeler der ute ville hjelpe meg og lage en liten linje;

<?php
if($_SESSION == WaBBiT) {
include("admin.php";
}
else{
echo ("Du er IKKE admin");
}
?>

 

så hadde det vært veldig fint!

 

det beste hadde vel vært å kunne bruke brukerlevels men det skjønte jeg ikke så mye av.

noen som kunne forklare det litt nærmere? f.eks byttet ut session = med at hvis bruker level = blah skjer det og det.

 

må f.eks brukerlevel være tall eller kan jeg ha admin og n00b som 2 forskjellige bruker levels?

 

 

<?php require_once('Connections/gavetips.php'); ?>
<?php
session_start();
$MM_authorizedUsers = "admin";
$MM_donotCheckaccess = "true";

// *** 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 == "") && true) { 
     $isValid = true; 
   } 
 } 
 return $isValid; 
}

$MM_restrictGoTo = "index.php";
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;
}
?>
<?php
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
{
 $theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $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;
}

$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
 $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
 $insertSQL = sprintf("INSERT INTO gavetips (prioritet, hva, hvor, pris, kommentar) VALUES (%s, %s, %s, %s, %s)",
                      GetSQLValueString($_POST['prioritet'], "text"),
                      GetSQLValueString($_POST['hva'], "text"),
                      GetSQLValueString($_POST['hvor'], "text"),
                      GetSQLValueString($_POST['pris'], "text"),
                      GetSQLValueString($_POST['kommentar'], "text"));

 mysql_select_db($database_gavetips, $gavetips);
 $Result1 = mysql_query($insertSQL, $gavetips) or die(mysql_error());

 $insertGoTo = "gavetips.php";
 if (isset($_SERVER['QUERY_STRING'])) {
   $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
   $insertGoTo .= $_SERVER['QUERY_STRING'];
 }
 header(sprintf("Location: %s", $insertGoTo));
}

mysql_select_db($database_gavetips, $gavetips);
$query_gavetips = "SELECT * FROM gavetips";
$gavetips = mysql_query($query_gavetips, $gavetips) or die(mysql_error());
$row_gavetips = mysql_fetch_assoc($gavetips);
$totalRows_gavetips = mysql_num_rows($gavetips);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Eriks ønskeliste!!!!</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
form {
color: #FF0000;
}
-->
</style>
</head>

<body>
<p>Dette er Eriks ønskeliste</p>
<table width="100%"  border="2" bordercolor="#000000">
  <tr>
    <th scope="col">Prioritet</th>
    <th scope="col">HVA</th>
    <th scope="col">HVOR</th>
    <th scope="col">PRIS</th>
    <th scope="col">Kommentar</th>
  </tr>
  <?php do { ?>
  <tr>
    <td><?php echo $row_gavetips['prioritet']; ?></td>
    <td><?php echo $row_gavetips['hva']; ?></td>
    <td><?php echo $row_gavetips['hvor']; ?></td>
    <td><?php echo $row_gavetips['pris']; ?></td>
    <td><?php echo $row_gavetips['kommentar']; ?></td>
  </tr>
  <?php } while ($row_gavetips = mysql_fetch_assoc($gavetips)); ?>
</table>
<p> </p>
</body>
</html>
<?php
mysql_free_result($gavetips);
?>

 

 

takk for alle svar!

Lenke til kommentar
Videoannonse
Annonse

Fatal error: Cannot redeclare isauthorized() (previously declared in /usr/home/html/html/www/gavetips/gavetips.php:30) in /usr/home/html/html/www/gavetips/admincp.php on line 7

 

dette får jeg hvis jeg legger til den lille kode snutten din!?

virker som selve koden er rett men det er noe galt med dreamweaver koden :O

Lenke til kommentar

// *** 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.

 

 

der er det du sa, hva vil du at jeg skal gjøre med linjen?

Endret av WaBBiT
Lenke til kommentar

Uten å vite om dette er problemet eller ei:

 

Hvis du finner dette:

 

// *** 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 == "") && true) { 
    $isValid = true; 
  } 
} 
return $isValid; 
}

 

.. i to eller flere filer, og de filene er flettet (inkludert i hverandre), kan du slette så det bare står et sted. Det er dette som er funksjonsdeklarasjonen, og så lenge den er identisk trenger du ikke deklarere den flere enn en gang..

Jeg trodde ikke det hadde noe å si, men det er kanskje verdt et forsøk..

Lenke til kommentar

Joda, så sant

function isAuthorized($strUsers, $strGroups, $UserName, $UserGroup) {
 blahblah
}

finnes i gavetips.php vil den forsatt være sikret.

require_once('Connections/gavetips.php'); inkluderer nemlig den koden som står i gavetips.php.

 

Selve funksjonen blir ikke kjørt før PHP ser funksjonskallet, som i dette tilfellet er isAuthorized();

..og det finner du i linja:

if (!((isset($_SESSION['MM_Username'])) && (isAuthorized("",$MM_authorizedUsers, $_SESSION['MM_Username'] ......

Lenke til kommentar

Jeg har forskjellige brukerniva på min side, der brukere har tilgang til forskjellige filer etter hvilken rang de har..

 

På loginsiden registrerer jeg $_SESSION["Brukernavn"] og $_SESSION["Brukerrang"] i session.. (brukerrang får jeg fra mysql db (tall fra 1-3), og brukernavn)

 

på hver side jeg skal beskytte har jeg denne kodesnutten i toppen etter session_start()

 

class valider
{
 var $Bruker;
 var $RANG;

 function valider()
 {
   $this->Bruker = $_SESSION["Brukernavn"];
   $this->RANG = $_SESSION["Brukerrang"];
 }

 function auth($i) 
 {
   if(!$this->Bruker) {
   header("Location: feil.php"); 
   exit; }

   elseif($this->Bruker && $this->RANG < $i) { 
   header("Location: feil.php"); 
   exit; }
 }
}


$obj = new valider; 
$obj->auth(1); 

 

i funksjonen auth() sjekker jeg om brukeren er logget inn og om brukerrangen er ikke er mindre enn det den gjeldene siden krever..

 

For sette hvilke brukere som har tilgang til gjeldene side setter jeg bare tall fra 1-3 (der 3 er høyeste rang) her: $obj->auth(1);

 

dette fungerer fint for meg, men vet ikke om det er 100% sikkert. Fint om noen kunne kommentere dette!

Endret av baRs
Lenke til kommentar
Joda, så sant

function isAuthorized($strUsers, $strGroups, $UserName, $UserGroup) {
 blahblah
}

finnes i gavetips.php vil den forsatt være sikret.

require_once('Connections/gavetips.php'); inkluderer nemlig den koden som står i gavetips.php.

 

Selve funksjonen blir ikke kjørt før PHP ser funksjonskallet, som i dette tilfellet er isAuthorized();

..og det finner du i linja:

if (!((isset($_SESSION['MM_Username'])) && (isAuthorized("",$MM_authorizedUsers, $_SESSION['MM_Username'] ......

altså nå har jeg falt av for lenge siden! men det som er i filen connections/gavetips.php er bare tilkobling til mysql.

 

jeg kan ikke lage en fil som blir inkludert i begge to fordi da får den samme feilmelding.

 

admin.php skal ikke være tilgjengelig for noen uten å ha logget inn på index.php som da godkjenner innlogging og sender deg til gavetips.php som sjekker at du er logget inn og hvis du er logget inn som meg(WaBBiT) så skal admin.php inkluderes!

men ingen skal kunne gå direkte til admin.php uten å logge inn som meg!!?

 

hvordan skal jeg kunne få begge filene til å kreve at du har samme session uten at det kræsjer?

Lenke til kommentar

hmm da tuller mysql med meg!!!

 

$q=("SELECT * from brukere where brukernavn=$brukernavn and passord=$password");

 

det er noe feil der men jeg er ikke så god i sql så jeg vet ikke hva som er feil men jeg vil tro at where brukernavn= skulle vært omgjort fordi etter det jeg kan tyde så sier den at det ikke finnes en kolonne som heter wabbit:

 

Could not execute query : SELECT * from brukere where brukernavn=WaBBiT and passord=masse-rare-tall-og-bokstaver-i-md5-hashen.Unknown column 'WaBBiT' in 'where clause'

 

 

 

noen som klarer å rette linjen ?

Lenke til kommentar
hvis jeg har 'sånne' rundt variablene blir de ikke tolket som variabler!

da blir md5 hashen generert av $password

og det kommer ikke noe brukernavn. eneste feilen nå når jeg ikke har 'rundt' brukernavn og passord blir at den ikke leter i riktig kolonne tror jeg

i tuten så har det rundt variabler... samme mener jeg at jeg brukte

 

er vel bare hvis det er tall som skal inn i en "tall" post i db at man ikke skal bruke '' (eller er det bare i asp? da"")

 

 

litt mer av koden hjelper kanskje

Endret av Svendsen
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...