Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Linkit näkyy vain adminille?

newbiekoodaaja [17.10.2006 09:53:05]

#

Hei.

Miten mahtaisi onnistua sellainen kun sivun ylläpitäjä kirjautuu sisään niin sen jälkeen sille näkyisi muilla sivuilla linkit esimerkiksi viestien muokkaamiseen / poistamiseen. Nuo POISTA VIESTI / MUOKKAA VIESTI linkit ei pitäisi näkyä jos ei ole kirjautunut sisään.
Hankalasti selitetty mutta toivottavasti joku osaisi auttaa.

Antti Laaksonen [17.10.2006 09:59:10]

#

Koodissa pitää olla mahdollisuus tarkistaa, kuuluuko käyttäjä ylläpitoon.

Tämän jälkeen näytettävät asiat voi valita if-lauseella:

if (/* ylläpitäjän tarkistus */) {
    echo "<a href=\"poista.php\">Poista viesti</a>";
}

Kommentilla merkityn osan voi toteuttaa monella tavalla. Yksi vaihtoehto on käyttää istuntoja.

MtJ [17.10.2006 10:34:08]

#

Tarvitset mysql-kannan tätä funktiota varten. Toisaalta esimerkiksi tekstitiedosto voi olla jonkinlainen ratkaisu tietojen tarkistukseen, huono tosin.

Tässä oleva funktio on tosi yksinkertainen ja jos sivusto on vähänkin laajempi, kannattaa jakaa oikeuksien tarkistus, linkit ja niiden tulostus jokainen omiin funktioihinsa, joita sitten kutsuu tarpeen mukaan.

<?php
function TarkistaOikeudet($kayttaja_id,$linkki_id) {
$sql="SELECT oikeudet FROM kayttaja WHERE id = ".$kayttaja_id;
$res=mysql_query($sql);
$oikeudet=mysql_result($res,0);
if($oikeudet=="Admin") {
$html='<p>Teksti.<a href="?id='.$linkki_id.'">Poista</a></p>';
}
if($oikeudet=="User") {
$html='<p>Teksti.<p>';
}
return $html;
}//function

?>

newbiekoodaaja [17.10.2006 10:41:41]

#

Käytössä on tämä kirjautumissysteemi:
https://www.ohjelmointiputka.net/koodivinkit/23878-php-kirjautuminen-sessioneilla

Kun tuolla kirjautuu sisään niin miten tuo tarkastus tehdään?

MtJ [17.10.2006 10:51:21]

#

Tee tiedosto, josta haet tunnuksen perusteella käyttäjäoikeudet ja sijoitat ne pinoon. Sitten korvaat
tuon mysql-hässäkän for-lauseella (tuolta omasta viestistäni aiemmin), jossa;

<?php
for ($i=0; $i<count($data); $i++) {
  $entry = explode("|", $data[$i]);
  $userit[$i] = $entry[0];
  $oikeudet = $entry[1];
  if($oikeudet=="Admin") {
   // ... tulostetaan ne linkit
  }
  if ($oikeudet=="User")
   // Tulostetaan pelkkä html
}
?>

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta