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
Spørgsmålet har været oprettet før, men blev kørt ud på et sidespor som ikke gav mig nogen mening hvordan man skulle løse dette.
Håber der er en som bedre kan forklare dette step for step.
Skal vi prøve igen? :O) Altså, i din DB, har du feltet adgang. Der står de forskellige værdier, f.eks. har admin_1 1,3,5 i feltet admin_2 har 1,5
Så KAN du bruge $find = mysql_query("SELECT * FROM `tabel` WHERE `brugernavn` = '". $_SESSION["brugernavn"] ."' AND `adgang` LIKE '%". intval($_GET["id"]) ."%'") or die (mysql_error());
Og så bruge
if(mysql_num_rows($find) == 1) { // ok }else{ // nix }
showsource: Jeg forklarer lige hvordan jeg helst vil havde det til at virke inden vi kommer for langt.
Alle mine sider (filer) er der indsat et stykke kode som kun giver adgang for den som har tildelt samme nr. Alle siderne har hvert sit tal.
Så er det at jeg vil havde det sådan, at man kan indsætte de tal i feltet adgang som brugere skal havde adgang til. Det er feltet i databasen jeg mener.
Andet skulle der helst ikke gøres for at tildele en bruger diverse adgang.
Mit problem er at hvis jeg indsætter det sådan her 1,2,3 i databasen tager den det som et tal, og ikke som jeg ville som adgang 1 til side 1, adgang 2 til side 2, adgang 3 til side 3, men som adgang 1,2,3 til en side.
$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{ } ?>
$user = $_SESSION['MM_Username']; $query = mysql_query("select * from brugere WHERE brugernavn = '$user'") or die (mysql_error()); $row=mysql_fetch_array($query); $nr = explode(",", $row['adgang']); // Du har nu et array, med de forskellige tal if (!in_array(1, $nr)) { echo "<p style=\"color: #ff0000; margin: 0px; font-weight: bold;\">Du har ikke adgang hertil</p>"; exit; }else{ } ?>
Well, hvis jeg var dig, ville jeg nu bruge tiden på at ændre dem! Bruger selv notepad+ til at skrive kode, og som så mange andre editorer er der muligheden for at åbne en masse filer, og bruge søg/erstat. Altså, har du skrevet samme kode i starten af alle filer, så tager det ikke mere end 5 min. at ændre alle!
Og så ville jeg lave en funktion som kaldes på alle sider! (bare jeg skal skrive det samme i to forskellige docs, så laver jeg det til en funktion)
I dit ex. f.eks. :
<?php
function tjek_rettigheder($var) {
$query = mysql_query("SELECT * FROM `brugere` WHERE `brugernavn` = '". $_SESSION["MM_Username"] ."'");
if(mysql_num_rows($query) == 1) { // fandt en række med brugernavnet
Lukker tråden efter at der ikke er kommet et svar jeg kunne bruge.
Synes godt om
Ny brugerNybegynder
Din løsning...
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.