Der er så oprettet 5 siden hvor der er indsat et stykke php kode. Side 1 har adgang 1 Side 2 har adgang 2 Side 3 har adgang 3 Side 4 har adgang 4 Side 5 har adgang 5
Hvordan giver jeg eksp. admin_1 adgang til side 1 og 2 og 3
der kan du tildele adgangen i databasen således: 1,2,3 fx også lave en explode som deler strengen ved hvert komma.. så kan du bare tjekke om hver variabel er sat og vupti..
Siden jeg ikke helt ved hvordan du trækker adgang ud fra MySQL så har jeg bare oprettet en variabel ved navn $udtraek... Den skal rettes til noget ala $row[adgangnummer]; den skal så indeholde noget ala 1,2,3 eller 2,3 eller 1,2 fx !
Så skal du bare seperere tallene og fjerne kommaerne, det kan gøres via explode();
Denne kode er indsat på siden hvor der kræves adgang. Her er det kun admin med adgangs nr. 1 som kan logge ind. Ligeledes er de andre sider oprettet på samme måde, bare med et andet adgangs nr.
Kan man ikke bare tilføje flere adgangs nr. i databasen i feltet adgang for den admin som må få adgang til flere sider.
<?php session_start();
require_once('../Connections/cms.php');
$user = $_SESSION['MM_Username']; $query = mysql_query("select * from brugere WHERE brugernavn = '$user'") or die (mysql_error()); $row=mysql_fetch_array($query);
if ($row['adgang'] != "1") { echo "<p style=\"color: #ff0000; margin: 0px; font-weight: bold;\">Du har ikke adgang hertil</p>"; exit; }else{ } ?>
Jo sagtens, men det kræver at du skriver numrene i databasen.. også er ideen med flere numre egentlig ødelagt hvis du gør det sådan.. så kan du jo så ligeså godt tilføje adgang 6,7,8,9 osv. hvor 6 fx står for adgang 1,2,3... Det er svært at forkare, men kort sagt.. jo det kan du godt..
Det eneste jeg har gjort er at indtaste i feltet adgang for admin_1 i databasen 1,2,3 så troede jeg at admin_1 ville få adgang til de sider hvor der kræves adgang 1 og 2 og 3 men når jeg så prøver at logge ind på en af de 3 sider er der ingen adgang.
Hvordan vil du at det skal sammensættes med min kode på siden.
<?php session_start();
require_once('../Connections/cms.php');
$user = $_SESSION['MM_Username']; $query = mysql_query("select * from brugere WHERE brugernavn = '$user'") or die (mysql_error()); $row=mysql_fetch_array($query);
if ($row['adgang'] != "1") { echo "<p style=\"color: #ff0000; margin: 0px; font-weight: bold;\">Du har ikke adgang hertil</p>"; exit; }else{ } ?>
nåh, sidder sgu også og nosser rundt lige p.t. Ville lave et hurtigt ex. men det virker selvf. ikke! :O)
<?php session_start();
require_once('../Connections/cms.php');
$user = $_SESSION['MM_Username']; $query = mysql_query("select * from brugere WHERE brugernavn = '$user'") or die (mysql_error()); $row=mysql_fetch_array($query);
$tal = explode(",", $row["adgang"]);
if (!in_array($row["adgang"], $tal)) { echo "<p style=\"color: #ff0000; margin: 0px; font-weight: bold;\">Du har ikke adgang hertil</p>"; exit; }else{
$user = $_SESSION['MM_Username']; $query = mysql_query("select * from brugere WHERE brugernavn = '$user'") or die (mysql_error()); $row=mysql_fetch_array($query);
$tal = explode(",", $row["adgang"]);
if (!in_array(2, $tal)) { echo "<p style=\"color: #ff0000; margin: 0px; font-weight: bold;\">Du har ikke adgang hertil</p>"; exit; }else{
$con = @mysql_connect("localhost", "user", "pass") or die ("<b>Fejl ved connect til DB!</b><br />\r\n". mysql_error()); mysql_select_db("bravida", $con) or die ("<b>Fejl ved select af database!</b><br />\r\n".mysql_error());
$_SESSION["user"] = "bravida"; // prøv at ændre navn
$find = mysql_query("SELECT * FROM `brugere` WHERE brugernavn = '". $_SESSION["user"] ."' AND adgang LIKE '%". intval($_GET["id"]) ."%'") or die (mysql_error());
if(mysql_num_rows($find) != 0) { echo"JOJO, den er go' nok!"; }else{ echo"Du har ikke adgang!"; }
Ok nu er jeg total ikke med mere da det nu er kørt ud på et sidespor for mig. Bibeholder min egen kode indtil videre inden jeg kaster mig ud i noget der ikke er helt styr over.
Det jeg har vist dig, kan du gemme i en fil for sig, og loade i din browser. Du behøver ikek noget som helst i din eksisterende kode.
Og for så lige at "cleane" koden helt:
<?php session_start();
$con = mysql_connect("localhost", "user", "pass") or die ("<b>Fejl ved connect til DB!</b><br />\r\n". mysql_error()); mysql_select_db("databasenavn", $con) or die ("<b>Fejl ved select af database!</b><br />\r\n".mysql_error());
$find = mysql_query("SELECT * FROM `brugere` WHERE `brugernavn` = '". $_SESSION["user"] ."' AND `adgang` LIKE '%". intval($_GET["id"]) ."%'") or die (mysql_error());
if(mysql_num_rows($find) == 1) { echo"JOJO, den er go' nok!"; }else{ echo"Du har ikke adgang!"; }
showsource: Bliver nødt til at stoppe tråden her, da jeg ikke forstår dine kommentar, så jeg må starte forfra i en ny tråd hvor en som bedre kan forklare mig hvordan jeg skal gøre.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.