Avatar billede krischjo Nybegynder
22. januar 2011 - 17:13 Der er 8 kommentarer og
1 løsning

Tjek adgang først PHP

Hej, jeg prøver at lave et nyhedsscript - hvor den skal tjekke om den enkelte bruger har adgangen til at kunne se det/gøre det.

Er her mine anstrengelser, som dog ikke virker:

<h1>Tilføj nyheder</h1>
    <?php
        $result = mysql_query("SELECT * FROM members");
    if (!$result) {
        die("Database selection failed: " . mysql_error());
       
    }
        while ($row = mysql_fetch_array($result)) {
        $admin = $row["admin"];       
 
   
   
if(isset($admin) && $admin == "ja"){
?>
<FORM METHOD="POST" ACTION="?<? echo $sted; ?>=addnews">
overskrift:<BR>
<INPUT TYPE=TEXT NAME=nyhed_overskrift><BR>
tekst:<BR>
<TEXTAREA NAME=nyhed_tekst>her indtastes nyheden</TEXTAREA><BR>
<INPUT TYPE=SUBMIT VALUE=skriv>
</FORM>
<?php

  $nyhed_dato = time();
 
  $nyhed_overskrift = $_POST["nyhed_overskrift"];
  $nyhed_tekst = $_POST["nyhed_tekst"];
 
  if(!get_magic_quotes_gpc()){
    $nyhed_overskrift = addslashes($nyhed_overskrift);
    $nyhed_tekst = addslashes($nyhed_tekst);
  }
 
  mysql_query("INSERT INTO nyheder (dato, overskrift, tekst) VALUES ('$nyhed_dato', '$nyhed_overskrift', '$nyhed_tekst')");
 
} else {
echo "Du har ikke adgang";

}}
?>



.... Det virker ikke :-(
Nogen der kan hjælpe mig?
Kunne være rart hvis det kunne være et script jeg kunne include på de sider hvor det skal bruges.
Avatar billede heinzdmx Nybegynder
22. januar 2011 - 17:24 #1
Hvor kommer din $sted fra?

Derudover så gør du jo faktisk det du trækker alle brugere ud fra din database og så for alle brugerne tjekker om de er admin..

Du skal nok lave en query på din database der kun trække den ene bruger der er logget på og tjekker om den er admin.

Måske kan:
http://www.evolt.org/node/60384

give dig en ide.
Avatar billede krischjo Nybegynder
22. januar 2011 - 17:26 #2
$sted kommer fra min index, og den virker fint!
Avatar billede krischjo Nybegynder
22. januar 2011 - 17:31 #3
Skulle ikke ha været et svar, og den side synes jeg er lidt uoverskuelig.
Avatar billede webweaver Praktikant
22. januar 2011 - 17:38 #4
Du kan ikke lave det som du gør nu. Det vil aldrig virke.

Du siger det er brugere. Det vil sige at de er logget ind et sted? Normalt vil man ikke checke i databasen alle de steder, hvor admin har adgang og andre ikke har. Ved din login funktion checker du 1 gang, gemmer det i en session og bruger det overalt på sitet istedet. Det er måden.

Har du styr på sessions etc..?
Avatar billede krischjo Nybegynder
22. januar 2011 - 17:49 #5
Nej er ikke så god til det, der er et login system. Og den tjekker om de er logget ind, men hvad hvis jeg gerne vil ha funktioner som:
tilføje nyheder, slette, rette osv.
men det er kun de brugere som er admins der må kunne gøre det her, hvad skal jeg så gøre?
Avatar billede webweaver Praktikant
22. januar 2011 - 18:05 #6
Vi skal over og tilføje lidt i din loginfil. Nu ved jeg ikke hvordan den ser ud, men det vil typisk laves der, hvor du checker om det indtastede brugernavn og kodeord er korrekt.

SELECT * FROM tabel WHERE brugernavn = '$_POST["brugernavn"]' fx.

Og så checker du så om det indtastede er rigtigt og så videre.. Der skal du så også checke ligesom du prøvede at gøre ved dit nyhedsscript om der står "ja" i admin feltet, og hvis der gør det, opretter du en session.

$_SESSION["admin"] = 1;

Så kan du rundt omkring på dit site, hvor der skal vises nogle specielle ting for admins, nøjes med en if sætning der lyder,

if ($_SESSION["admin"]) {
echo "Dette kan kun ses af admins...";
}

Du skal huske når du arbejder med sessions, at du skal have session_start(); aller øverst i de filer hvor du bruger dem. Alså hvor du har noget med SESSION stående.

Det var sådan lige kort, grundlæggende fortalt.
Avatar billede krischjo Nybegynder
22. januar 2011 - 19:53 #7
Okay mange tak, det vil jeg prøve. Men jeg har en index-fil, hvor jeg har session_start() i starten, og bruger det derfor ikke nogle andre steder, fordi alle mine processer kører igennem includes til index. ...hvis du forstod det
Avatar billede heinzdmx Nybegynder
29. januar 2011 - 21:12 #8
Fik du problemet løst på en anden måde?

Lidt mærkeligt du bare acceptere dit eget svar, når vi andre nu har forsøgt at hjælpe dig.. og du sagde du ville prøve noget, men ikke vendte tilbage..
Avatar billede webweaver Praktikant
29. januar 2011 - 22:54 #9
Sådan er der så mange brugere der gør .. Det er jo bare endnu en til blacklisten, som ikke får hjælp til noget en anden gang!
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
Kurser inden for grundlæggende programmering

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