Avatar billede bravida Nybegynder
26. oktober 2006 - 18:07 Der er 27 kommentarer og
1 løsning

Hjælp til login flere brugere, opsætning.

Meningen med dette login med flere brugere, skulle gerne være at jeg bestemmer hvilken rettigheder brugere må havde.

Som det ser ud nu logger jeg ind med brugernavn og password. I min administration er der 20 menuer, bestående af link.

Efter at jeg har oprettet en login til flere brugere ( nok lavet forkert ) samt ny felt ”adgang” i databasen under tabellen brugere.

Eftersom at der ikke er angivet nogle id nummer i feltet adgang, kan man i administrationen stadig åbne alle linkmenuer.

På dette link kan i få et overblik over opsætningen.
http://home1.stofanet.dk/duo2/
Avatar billede udvikler Nybegynder
26. oktober 2006 - 18:24 #1
Det du vil have hjælp med er at gøre sådan så du kan bestemme hvad brugerne skal have adgang til, eller?
Avatar billede zynzz Praktikant
26. oktober 2006 - 18:29 #2
Bruger du sessions ?
Avatar billede bravida Nybegynder
26. oktober 2006 - 18:31 #3
Det er rigtig, men som du kan se nu kan begge bruger åbne alle link i adm. og det var jo ikke meningen.
Avatar billede bravida Nybegynder
26. oktober 2006 - 18:42 #4
zynzz: Har kun oprettet som du kan se på billederne.
Avatar billede udvikler Nybegynder
26. oktober 2006 - 19:06 #5
Måden du løser dit problem på er jo bare at tilføje et felt i databasen ved navn "status". Det felt skal som standard være indeholde teksten "almindelig".

så kan du lave en fil med følgene indhold:

aendre_status.php:

<?php
session_start();
include "includes/mysql.php";
?>
    <br><br>
    Her kan du søge efter en bruger, brugerens navn vil blive markeret
    <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
    if($_GET[action] == "aendre_status") {

    $id = mysql_real_escape_string($_GET['id']);

    mysql_query("UPDATE brugere SET `status`='moderator' WHERE id = '$id'") or die(mysql_error());

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

    }

    $bruger = mysql_real_escape_string($_SESSION['brugernavn']);

    //Tjekker om man er logget ind
    $hent_data = mysql_query("SELECT * FROM brugere WHERE brugernavn = '$bruger' AND status = 'admin'") or die(mysql_error());
    if(mysql_num_rows($hent_data) == "") {
    echo "<meta http-equiv=\"refresh\" content=\"0; URL=\login.php\">";
    }else{

    //Man er logget ind, og kan derfor se det hemlige indhold

    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_status.php?action=aendre_status&id=$medlemmer[id]\">Gør til moderator</a><br>";
    echo "</div>";
    echo "</td>";
    echo "</tr>";

    }
    }else {

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

    }

    }

    }

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


Den virker på den måde at der er en liste over alle brugere på siden, og oven over det er der et tekst felt som man kan søge efter en bruger på. når man så trykker ENTER så markerer den navnet i listen forneden. Så er det nemmere at finde en brugere. Så kan du trykke på brugernavnet med musen også bliver statusen ændret så der står "Moderator" i status feltet i databasen istedet.

NB. Dette er taget fra min side og skal derfor lige rettes til med dine variabler og dit databasenavn :)
Avatar billede bravida Nybegynder
26. oktober 2006 - 19:16 #6
PS: skal filen ligge under admin mappen eller i selve roden ??
Avatar billede udvikler Nybegynder
26. oktober 2006 - 19:20 #7
hvilke filer ligger i din admin mappe?
Avatar billede bravida Nybegynder
26. oktober 2006 - 19:29 #8
Det gør alle filer som har med administrationen at gøre.
Avatar billede udvikler Nybegynder
26. oktober 2006 - 19:31 #9
jeg tænkte nu mere på hvad de filer gjorde, det siger jo sig selv at det har noget med administration at gøre. :-)

Men altså, jeg vil mene at den burde ind under admin mappen (på min side er alt i en mappe) - og husk, det skader ikke at prøve begge steder? :-)
Avatar billede bravida Nybegynder
26. oktober 2006 - 19:50 #10
Kan ikke lige se hvorfor jeg ikke kan læse siden på serveren. Har indsat dette øvert i koden. <?php require_once('Connections/cms.php'); ?>
Avatar billede bravida Nybegynder
26. oktober 2006 - 19:55 #11
Kan ikke se hvor jeg ellers skal rette i koden vedr. min database
Avatar billede udvikler Nybegynder
26. oktober 2006 - 20:08 #12
du skal jo læse koden igennem og rette alle variabler (jeg kan jo ikke se hvilke variabler du har brugt)

og får du nogle fejlmeddelelser?
Avatar billede bravida Nybegynder
26. oktober 2006 - 21:26 #13
Kun at siden ikke kan vises.
Hvilke variabler tænker du på.
Avatar billede bravida Nybegynder
26. oktober 2006 - 22:43 #14
Warning: main(includes/mysql.php): failed to open stream: No such file or directory in C:\Programmer\Apache Group\Apache2\htdocs\websted\aendre_status.php on line 3

3: include "includes/mysql.php";

Hvad kan fejlen være ??
Avatar billede udvikler Nybegynder
27. oktober 2006 - 17:49 #15
aaah, det er bare min fil der indeholder mysql connect oplysninger.. denne linie kan du bare slette fra filen:

include "includes/mysql.php";
Avatar billede bravida Nybegynder
27. oktober 2006 - 18:10 #16
Ja det var rigtig, hvad gør jeg så nu. Har oprettet fettet "status" i databasen.
Avatar billede bravida Nybegynder
27. oktober 2006 - 18:17 #17
Prøv at beskrive hvordan det virker.
Avatar billede udvikler Nybegynder
27. oktober 2006 - 18:47 #18
altså når man er oprettet så er en status helt almindelig, så alle sider hvor de "almindelige brugere" ikke har adgang tjekker du bare om statusen er speciel.

så det du gør er at du søger under en bruger også finder den brugeren. Derefter er der et link ud for brugeren hvor den ændre statusen til moderator hvis du klikker.
også når du på de specielle sider tjekker om statusen er admin, moderator eller almindelig kan du bestemme om man har adgang eller ikke.

det er sådan det fungere.

hvis du har problemer så skriv endelig
Avatar billede bravida Nybegynder
27. oktober 2006 - 18:56 #19
-aco-: Kik lige om jeg har oprettet status korrekt i databasen.
http://home1.stofanet.dk/duo2/
Avatar billede udvikler Nybegynder
27. oktober 2006 - 19:06 #20
Det er udemærket. Du kan evt. lige gøre sådan at når man bliver oprettet så opdatere den lige feltet så der står "almindelig" istedet for
Avatar billede bravida Nybegynder
27. oktober 2006 - 19:19 #21
Er ikke med på hvor jeg gør dette.
Avatar billede udvikler Nybegynder
27. oktober 2006 - 19:21 #22
der hvor brugeren bliver oprettet ;-)
Avatar billede bravida Nybegynder
27. oktober 2006 - 19:42 #23
Skal måske havde det forklaret på en anden måde.

Meningen med dette login med flere brugere, skulle gerne være at jeg bestemmer hvilken rettigheder brugere må havde.

Som det ser ud nu logger jeg ind med brugernavn og password. I min administration er der 20 menuer, bestående af link.

Databasen: Oprettet tabellen - brugere.
Under brugere er oprettet feltet: adgang  ( er det ikke her man giver adgang )
Under brugere er oprettet feltet: status  ( kan ikke se hvad den bruges til )

Har uploadet ny fil aendre_status.php ( ved ikke hvad den skal bruges til )

Vedr. med at indtaste hvad man har adgang til, tager jeg i et nyt spørgsmål, ellers bliver det bare blandet sammen, så jeg ikke forstår noget.
Avatar billede udvikler Nybegynder
27. oktober 2006 - 19:51 #24
så du vil kun have at jeg skal forklare HVORDAN du gør og ikke hjælpe dig med at gøre det?

det gør det jo nemmere:

jeg anede ikke hvad dit adgang felt i databasen skulle bruges til. Det var derfor jeg oprettede status feltet. Du kan nu roligt slette status feltet. Så giver det hele måske lidt mere mening?

gør sådan så der står almindelig i adgang feltet lige så snart en bruger har oprettet sig. Og så kan du senere ændre det til admin eller moderator også tjekke hvad der skal ske hvis de er admins eller moderatore.

forstår du det nu eller?
Avatar billede bravida Nybegynder
27. oktober 2006 - 20:03 #25
Ok -aco- jeg sletter status. Som du også har set er adgang sat i "level" så login til flere brugere skulle være ok, er det ikke korrekt.
Avatar billede udvikler Nybegynder
27. oktober 2006 - 20:24 #26
Jo det er helt rigtigt.

Nu skal du bare have en side som jeg gav et exempel på før som gør at du kan angive status til dine brugere (eller levels)

sig til hvis du behøver hjælp!
Avatar billede bravida Nybegynder
27. oktober 2006 - 21:33 #27
-aco- det klarer vi i næste spørgsmål.
Avatar billede udvikler Nybegynder
27. oktober 2006 - 22:01 #28
Okay det gør vi da, tak for point.
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