Avatar billede bravida Nybegynder
28. oktober 2006 - 23:41 Der er 33 kommentarer og
1 løsning

Tildeling af rettigheder i admin

Har en flerebruger login hvor jeg gerne selv vil tildele hver bruger rettigheder for at redigerer i diverse link i administrationen.
Avatar billede udvikler Nybegynder
28. oktober 2006 - 23:52 #1
KALD FILEN aendre_adgang.php


<?php
session_start();

require_once('../Connections/cms.php');
?>


    <form action="" method="POST">
    <input type="text" name="navn">
    <input type="text" name="brugesikke" style="display:none">
    <br>
    <input type="submit" name="ok" value="Søg efter bruger">
    </form>


<?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 "<center>";
        echo "<br><br><br>";
        echo "<table border=\"1\" width=\"600\">";


        $navn = $_POST['navn'];
        $foresp = mysql_query("SELECT * FROM brugere WHERE LOWER(brugernavn) LIKE '%".strtolower($navn)."%' LIMIT 1");
        WHILE($udtraek = mysql_fetch_array($foresp)) {
            $soegresultat = $udtraek[brugernavn];
        }

        $s_medlemmer = mysql_query("SELECT * FROM brugere ORDER BY brugernavn ASC");
        WHILE($medlemmer = mysql_fetch_array($s_medlemmer)) {


            if ($_POST['ok']) {
                if ($soegresultat == $medlemmer[brugernavn]) {

                echo "<tr>";
                echo "<td>";
                echo "<div class=\"soegefarve\">";
                echo "$medlemmer[brugernavn] - <a href=\"aendre_adgang.php?action=aendre_adgang&id=$medlemmer[id]\">Gør til admin</a><br>";
                echo "</div>";
                echo "</td>";
                echo "</tr>";

                }
                }else{

                echo "<tr>";
                echo "<td>";
                echo "$medlemmer[brugernavn] - <a href=\"aendre_adgang.php?action=aendre_adgang&id=$medlemmer[id]\">Gør til admin</a><br>";
                echo "</td>";
                echo "</tr>";

                }

            }

    if($_GET[action] == "aendre_adgang") {

    $username = $medlemmer[brugernavn];

    mysql_query("UPDATE brugere SET `adgang`='1' WHERE brugernavn = '$username'") or die(mysql_error());

    echo "<meta http-equiv=\"refresh\" content=\"0; URL=\aendre_adgang.php\">";

    }

    echo "</center>";
    echo "</table>";
    ?>



}else{
echo "Du har ikke adgang hertil.";
}
?>



?>
Avatar billede bravida Nybegynder
29. oktober 2006 - 00:03 #2
Er ikke lige med, skal koden indsættes i filen aendre_adgang.php eller ?????
Avatar billede udvikler Nybegynder
29. oktober 2006 - 00:05 #3
Jep, opret en fil der hedder aendre_adgang.php og sæt det der indhold i den.

Prøv at kør filen og skriv hvad den spytter ud...
Avatar billede bravida Nybegynder
29. oktober 2006 - 00:08 #4
Parse error: parse error in C:\Programmer\Apache Group\Apache2\htdocs\websted\admin\aendre_status.php on line 86

Den slutter ved line 85 ??????
Avatar billede udvikler Nybegynder
29. oktober 2006 - 00:11 #5
Argh selvfølgelig.. kom til at skrive ?> 2 gange

<?php
session_start();

require_once('../Connections/cms.php');
?>


    <form action="" method="POST">
    <input type="text" name="navn">
    <input type="text" name="brugesikke" style="display:none">
    <br>
    <input type="submit" name="ok" value="Søg efter bruger">
    </form>


<?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 "<center>";
        echo "<br><br><br>";
        echo "<table border=\"1\" width=\"600\">";


        $navn = $_POST['navn'];
        $foresp = mysql_query("SELECT * FROM brugere WHERE LOWER(brugernavn) LIKE '%".strtolower($navn)."%' LIMIT 1");
        WHILE($udtraek = mysql_fetch_array($foresp)) {
            $soegresultat = $udtraek[brugernavn];
        }

        $s_medlemmer = mysql_query("SELECT * FROM brugere ORDER BY brugernavn ASC");
        WHILE($medlemmer = mysql_fetch_array($s_medlemmer)) {


            if ($_POST['ok']) {
                if ($soegresultat == $medlemmer[brugernavn]) {

                echo "<tr>";
                echo "<td>";
                echo "<div class=\"soegefarve\">";
                echo "$medlemmer[brugernavn] - <a href=\"aendre_adgang.php?action=aendre_adgang&id=$medlemmer[id]\">Gør til admin</a><br>";
                echo "</div>";
                echo "</td>";
                echo "</tr>";

                }
                }else{

                echo "<tr>";
                echo "<td>";
                echo "$medlemmer[brugernavn] - <a href=\"aendre_adgang.php?action=aendre_adgang&id=$medlemmer[id]\">Gør til admin</a><br>";
                echo "</td>";
                echo "</tr>";

                }

            }

    if($_GET[action] == "aendre_adgang") {

    $username = $medlemmer[brugernavn];

    mysql_query("UPDATE brugere SET `adgang`='1' WHERE brugernavn = '$username'") or die(mysql_error());

    echo "<meta http-equiv=\"refresh\" content=\"0; URL=\aendre_adgang.php\">";

    }

    echo "</center>";
    echo "</table>";
    ?>



}else{
echo "Du har ikke adgang hertil.";
}
?>
Avatar billede udvikler Nybegynder
29. oktober 2006 - 00:12 #6
Hvis ikke det virker så kigger jeg på det imorgen, jeg smutter i seng nu :-)
Avatar billede bravida Nybegynder
29. oktober 2006 - 00:34 #7
Helt ok -aco- desværre virker det stadig ikke. Denne fejl nu.

Parse error: parse error in C:\Programmer\Apache Group\Apache2\htdocs\websted\admin\aendre_status.php on line 82

Line slutter med 81
Avatar billede bravida Nybegynder
29. oktober 2006 - 10:28 #8
Hej -aco- fandt hvorfor den kom med line 82 fejl.

    ?>


<?php    "denne stk kode manglede"
}else{
echo "Du har ikke adgang hertil.";
}
?>

Nu åbnes siden fint med indtastnings felt - søg efter bruger. Herunder står der. Du har ikke adgang hertil.
Avatar billede bravida Nybegynder
29. oktober 2006 - 10:35 #9
Jeg har nu lavet det sådan at filen kaldes fra administrationen når man har logget sig ind. Nu vises siden med bruger når jeg logger mig på. Jeg har adgang 1.

Det var da et godt stykke på vejen nu.
Avatar billede udvikler Nybegynder
29. oktober 2006 - 12:48 #10
Jeps, jeg gjorde sådan at man kun kunne se siden som administrator. Hvilket jo også er det rigtige.

Du skriver "Det var da et godt stykke på vejen nu." Det betyder at det ikke er helt godt nok. Hvad er der galt pt?
Avatar billede bravida Nybegynder
29. oktober 2006 - 13:04 #11
Hej -aco- Jeg har nu oprettet 3 admin med hver sin adgangs nevu 1 og 2 og 3 som alle kan logge ind i administrationen. Linket aendre_status.php er det kun admin med adgang jeg har givet tilladelse til at åbne.

Når jeg åbner siden vises alle 3 admin med et link Gør til admin. Når jeg klikker på et af linkene kan siden ikke vises, hvad skal jeg bruge dette til.

Det andet i administrationen venter vi lidt med, så vi ikke blander det sammen.
Avatar billede udvikler Nybegynder
29. oktober 2006 - 13:06 #12
Aah, det er nemlig den side du kan tildele adgang på. Istedet for at du gør det manuelt i databasen? Eller vil du hellere det?
Avatar billede bravida Nybegynder
29. oktober 2006 - 13:08 #13
Nej det er fint at gøre det på den side. Hvordan tildeler jeg så rettigheder på siden.
Avatar billede udvikler Nybegynder
29. oktober 2006 - 13:15 #14
Du søger efter en bruger i feltet og brugeren vil blive markeret. Derefter klikker du på linket "Gør til admin" ved brugeren også er der indsat et 1 tal i feltet hos ham/hende
Avatar billede bravida Nybegynder
29. oktober 2006 - 13:20 #15
Når jeg klikker på linket vises denne meddelse: Siden blev ikke fundet
Avatar billede udvikler Nybegynder
29. oktober 2006 - 13:25 #16
Giv mig et præcis link til den side hvor der står siden blev ikke fundet...
Avatar billede bravida Nybegynder
29. oktober 2006 - 13:28 #17
PS: du kan se billede af siden på dette link: http://home1.stofanet.dk/duo2/
Avatar billede udvikler Nybegynder
29. oktober 2006 - 13:29 #18
Ja, men jeg skal bruge link til siden hvor der står siden blev ikke fundet, den indeholder noget i url'en som jeg skal bruge.
Avatar billede udvikler Nybegynder
29. oktober 2006 - 13:44 #20
<?php
session_start();

require_once('../Connections/cms.php');
?>


    <form action="" method="POST">
    <input type="text" name="navn">
    <input type="text" name="brugesikke" style="display:none">
    <br>
    <input type="submit" name="ok" value="Søg efter bruger">
    </form>


<?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 "<center>";
        echo "<br><br><br>";
        echo "<table border=\"1\" width=\"600\">";


        $navn = $_POST['navn'];
        $foresp = mysql_query("SELECT * FROM brugere WHERE LOWER(brugernavn) LIKE '%".strtolower($navn)."%' LIMIT 1");
        WHILE($udtraek = mysql_fetch_array($foresp)) {
            $soegresultat = $udtraek[brugernavn];
        }

    if(isset($navn)) {

    mysql_query("UPDATE brugere SET `adgang`='1' WHERE brugernavn = '$soegresultat'") or die(mysql_error());

    echo "<meta http-equiv=\"refresh\" content=\"0; URL=\aendre_adgang.php\">";

    }

    echo "</table>";
    echo "</center>";


}else{
echo "Du har ikke adgang hertil.";
}
?>
Avatar billede udvikler Nybegynder
29. oktober 2006 - 13:45 #21
Nu har jeg gjort sådan at du bare skal skrive et navn i feltet og trykke enter også opdatere den feltet adgang i databasen for brugeren du skrev i feltet til 1
Avatar billede bravida Nybegynder
29. oktober 2006 - 13:56 #22
Ok, den opdaterer til adgang 1 for den bruger jeg har søgt og derefter Siden kan ikke vises.

Meningen var jo at jeg selv ville bestemme hvilke adgange en bruger skal havde. En bruger kunne få tildelt adgang 1,2,3 en anden kun 1,2 og en som kun skulle havde 4
Det kan jeg jo ikke.
Avatar billede bravida Nybegynder
29. oktober 2006 - 14:00 #23
-aco- eller skal vi bare glemme siden status og kun bruge phpmyadmin til at give rettigheder med. Tror det er nemmere.
Avatar billede udvikler Nybegynder
29. oktober 2006 - 14:07 #24
Nej nej, det er skam også meningen at det skal virke sådan pt... Før jeg også går videre så skal vi lige have løst Siden kan ikke vises... Den fejl får du fordi at du har kaldt din fil aendre_status.... det skal lige rettes til aendre_adgang
så vil det virke..

også skal jeg lige høre om du mente at EN bruger skal kunne have flere tal i feltet adgang i databasen? Man behøver da kun at have 1 tal pr bruger efter min mening?
Avatar billede bravida Nybegynder
29. oktober 2006 - 14:13 #25
Nej en bruger skal havde flere tal i feltet adgang, det er vi ikke kommet til endnu ellers blander vi bare det hele sammen. Men kan sige at meningen er at hver link i administrationen får hver sit nr. En bruger kan så tildeles et antal link vedkommen må redigerer i.
Avatar billede bravida Nybegynder
29. oktober 2006 - 14:18 #26
Har nu rettet filen til aendre_adgang.php men stadig det samme.
Avatar billede udvikler Nybegynder
29. oktober 2006 - 14:22 #27
Værsgod:

<?php
session_start();

require_once('../Connections/cms.php');
?>


    <form action="" method="POST">
    Brugerens navn: <input type="text" name="navn">
    De tal der skal indsættes (separér med bindestreg): <input type="text" name="tal">
    <input type="text" name="brugesikke" style="display:none">
    <br>
    <input type="submit" name="ok" value="Søg efter bruger">
    </form>


<?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 "<center>";
        echo "<br><br><br>";
        echo "<table border=\"1\" width=\"600\">";


        $navn = $_POST['navn'];
        $tal = $_POST['tal'];
        $foresp = mysql_query("SELECT * FROM brugere WHERE LOWER(brugernavn) LIKE '%".strtolower($navn)."%' LIMIT 1");
        WHILE($udtraek = mysql_fetch_array($foresp)) {
            $soegresultat = $udtraek[brugernavn];
        }

    if(isset($navn)) {
        if(isset($tal)) {

              mysql_query("UPDATE brugere SET `adgang`='$tal' WHERE brugernavn = '$soegresultat'") or die(mysql_error());

              echo "<meta http-equiv=\"refresh\" content=\"0; URL=\aendre_adgang.php\">";

        }
    }

    echo "</table>";
    echo "</center>";


}else{
echo "Du har ikke adgang hertil.";
}
?>



Nu virker den sådan at man indtaster brugernavnet på brugeren som man vil give rettigheder til også indtaster man de tal man vil give brugeren. Og hvis der er mere end et tal så separerer dem med en bindestreg.
Avatar billede bravida Nybegynder
29. oktober 2006 - 14:33 #28
Yes -aco- fint, det virker. Hvordan får jeg den til at blive på siden, går til Siden kan ikke vises når der er klikket på søg efter bruger ( retter selv teksten på knappen ) da den ikke passer til dette her.
Avatar billede udvikler Nybegynder
29. oktober 2006 - 14:37 #29
Prøv denne:

<?php
session_start();

require_once('../Connections/cms.php');
?>


    <form action="" method="POST">
    Brugerens navn: <input type="text" name="navn">
    De tal der skal indsættes (separér med bindestreg): <input type="text" name="tal">
    <input type="text" name="brugesikke" style="display:none">
    <br>
    <input type="submit" name="ok" value="Søg efter bruger">
    </form>


<?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 "<center>";
        echo "<br><br><br>";
        echo "<table border=\"1\" width=\"600\">";


        $navn = $_POST['navn'];
        $tal = $_POST['tal'];
        $foresp = mysql_query("SELECT * FROM brugere WHERE LOWER(brugernavn) LIKE '%".strtolower($navn)."%' LIMIT 1");
        WHILE($udtraek = mysql_fetch_array($foresp)) {
            $soegresultat = $udtraek[brugernavn];
        }

    if(isset($navn)) {
        if(isset($tal)) {

              mysql_query("UPDATE brugere SET `adgang`='$tal' WHERE brugernavn = '$soegresultat'") or die(mysql_error());

        }
    }

    echo "</table>";
    echo "</center>";


}else{
echo "Du har ikke adgang hertil.";
}
?>
Avatar billede bravida Nybegynder
29. oktober 2006 - 14:48 #30
Det virker perfekt nu, resten kan jeg selv rette til.

Vedkommende administrator kan så bare lave en oversigt, hvor han kan se hvilke rettigheder har har tildelt diverse brugere.

Synes du ikke man skal gøre det på den måde ??
Avatar billede udvikler Nybegynder
29. oktober 2006 - 14:53 #31
Jo det er en god ide.
Avatar billede bravida Nybegynder
29. oktober 2006 - 15:02 #32
Skal vi tage det sidste i et nyt spørgsmål, så de ikke bliver alt for lange.
Det er vedr. administrationssiden med diverse link som skal tildeles et nummer. Nu kender du jo til det hele.
Avatar billede udvikler Nybegynder
29. oktober 2006 - 15:05 #33
Jo det kan vi sagtens...
Avatar billede bravida Nybegynder
29. oktober 2006 - 15:16 #34
-aco- smutter du ikke lige ind og lægger et svar på det nye spørgsmål, inden alt for mange begynder at stille spørgsmål til mig. Spørgsmål er oprettet.
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester