panel admina,sesje

0

Witam, próbuję zrobić coś na wzór panelu admina (dostęp tylko dla użytkownika o określonej nazwie)
Posiadam taką funkcję:

function check_login() {
    if(!$_SESSION['logged']) {
        die('<p>To jest strefa tylko dla użytkowników.</p>
        <p>[<a href="login.php">Logowanie</a>] [<a href="register.php">Zarejestruj się</a>]</p>');
    }
}

Jak zrobić podobną funkcję, ale tylko, aby wpuszczała ona użytkownika, który tabeli X i kolumnie Y ma wpisaną wartość "1"?

Dodatkowo dołączam plik index wykorzystujący powyższą funkcję

<?php
include 'config.php';
db_connect();

check_login();

$user_data = get_user_data();

echo '<p>Witaj <b>'.$user_data['user_name'].'</b>!</p>
    <p>Jesteś w strefie tylko dla zalogowanych.</p>
    <p>[<a href="profile.php?id='.$user_data['user_id'].'">Wyświetl swój profil</a>] [<a href="editprofile.php">Edytuj profil</a>] [<a href="userlist.php">Lista użytkowników</a>] [<a href="logout.php">Wyloguj się</a>]</p>';

db_close();
?>
0

Może tak:

function check_login() {

        if((!$_SESSION['logged'])&('tutaj niech odczyta z tabeli Y kolumny X, tutaj wartość 0') { // jesli wartosc 0 to wyrzuca
                die('<p>To jest strefa tylko dla użytkowników.</p>
                <p>[<a href="login.php">Logowanie</a>] [<a href="register.php">Zarejestruj się</a>]</p>');
        } else {
if ((!$_SESSION['logged'])&(kolumna Y = 1)) {
<a href="index.php"> przejdz do strefy uzytkownika</a> 
}
}
}
0
function check_admin() {

        if(!$_SESSION['logged'] =  mysql_query("SELECT `user_id` FROM `users` WHERE `user_id` = '2'")) { // jesli wartosc 0 to wyrzuca
                die('<p>To jest strefa tylko dla adm.</p>
                <p>[<a href="login.php">Logowanie</a>] [<a href="register.php">Zarejestruj się</a>]</p>');

}
}

Próbowałem tak - nie działa

0

udało mi się.
Kolejne pytanie. Mając panel admina chciałbym zrobić stronę z listą użytkowników i w zależności czy w kolumnie "X" usera jest "1" lub "2" wyświetla określony obrazek.

Załóżmy mam listę userów:
UserA (w kolumnie X ma wartość 1) - wyświetla obrazekA
UserB (w kolumnie X ma wartość 2) - wyświetla obrazekB
Jak to zrobić? I jak za pomocą checkboxa mogę zrobić, abym mógł edytować wartość tej kolumny z "1" na "2" i na odwrót?

Trochę inaczej to napisałem.

Znalazłem na necie taką funkcję. Jak zrobić, aby możliwe było zapamiętanie czy checkbox jest kliknięty i wyświetlanie aktualnego stanu każdemu userowi?

<html>
    <head>
    <script type="text/javascript">
    function changePic(item,icon){
    if (document.getElementById( 'c' + item ).checked){
    document.getElementById( 'i' + item ).src=icon+'_c.gif';
    }else{
    document.getElementById( 'i' + item ).src=icon+'_u.gif';
    }
    }</script>
    </head>
    <body bgcolor="#FFFFFF" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
    <form name="form1" method="post" action="">
    <img src="5_u.gif" id="i1">
    <input type="checkbox" id="c1" value="checkbox" onClick="changePic(1,5);">
    </form>
    </body>
    </html>
0

trochę inaczej to opisałem

0

Częściowo sobie poradziłem. Została tylko jedna kwestia.

Mam listę użytkowników:

while($row = mysql_fetch_assoc($result)) {
        echo '<tr>
            <td><a href="profile.php?id='.$row['user_id'].'">'.$row['user_name'].'</a></td>
            <td>'.$row['user_email'].'</td>
            <td><form action="send.php" method="post" name="forma">
Nick:<input name="nick" type="text" />
<input name="submit" type="submit" value="Edit!" /></form>
</td>
            <td>'.date("d.m.Y, H:i", $row['user_regdate']).'</td>
        </tr>';
    }

Pojawia się ona w pętli. Chciałbym, aby przy każdym użytkowniku była kolumna z checkboxem, który umożliwia edycję rekordu z danej kolumny tegoż użytkownika. Czyli trzeba to:
(plik send.php)

$title = $_POST['nick'];
$zapytanie = "UPDATE users SET user_name = '.$title.' WHERE user_id = '1']'";
$result = mysql_query($zapytanie);
 <td><form action="send.php" method="post" name="forma">
Nick:<input name="nick" type="text" />
<input name="submit" type="submit" value="Edit!" /></form>
</td>

Osadzić w tej pętli. Pytanie, jak to zrobić, aby każdy checkbox odnosił się do usera obok?

0

Dobra, mam. Mam jeszcze jedno pytanie.

Ten kod:

$id_user = $_SESSION['user_id']; // tu mamy w sesji id użytkownika.

    // teraz szukamy czy dany użytkownik ma admina 1 tak 0 to nie
    $spr_admin = mysql_query("SELECT user_id FROM users WHERE user_id='$id_user'");

    /// teraz wyciągamy z tego dane

    $spr_admin = mysql_fetch_row($spr_admin);
    $admin = $spr_admin[0]; // i tu mamy 0 lub 1

    // i teraz prosty warunek

    if($admin == '1') {
    echo "jesteś adminem!";
    }
    else {
    echo "Nie jesteś adminem!";
    }

służy mi do tego, aby określoną treść strony wyświetlać adminowi (userowi o id 1) Jak mogę zrobić funkcję w pliku config.php, aby po wpisaniu:

include 'config.php';
db_connect();

check_admin();

TRESC STRONY

"Treść strony" pokazywało tylko temu uzytkownikowi z ID 1 a reszcie np informację "nie mozesz tu wejsc" nie chcę za każdym razem pisać tego kodu wyżej, gdyż funkcja pomoże mi tego używać łatwiej. Jest ktoś w stanie pomóc?

0

Da radę stworzyć taką funkcje?

0

Ma ktoś pomysł jak stworzyć funkcję
check_admin(); na podstawie tego kodu, który podałem wyżej?
Chodzi mi aby user o id 1 widział treść, która jest po funkcji
check_admin(); a każdy inny user widział "nie mozesz tu wejsc", ale chce to zrobic za pomoca funkcji gdyz nie wygodnie pisac caly kod w "echo".

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0