PHP i MySQL - Porównanie wartości.

0

Witam.
Mam pewien pierwszy mały problem. Otóż tworzę swojego małego CMS. Nie będę się rozwodził co i jak. Mam w bazie danych pole o nazwie adm. Jeden użytkownik (admin) ma tam wpisane T, inny nie ma nic. I chce by tylko użytkownik z wpisaną literką T miał dostęp do osobnego panelu admina.

 
$admspr = $_SESSION['zalogowany'];

$admin = mysql_query ("SELECT adm FROM user WHERE login='$admspr'");
if(mysql_num_rows($admin)>0)
echo ('link do panelu');
else
echo ('brak uprawnien');

I chodzi o to że nawet użytkownikowi który ma puste to pole wyświetla się link do panelu. Macie może jakiś sprawdzony sposób do tego ??

1

Są (przynajmniej) 2 wyjścia.
1.mysql_query ("SELECT id FROM user WHERE login='$admspr' and adm='1'"); [ może zadziała, nie jestem pewien :P ]
2.mysql_fetch_row || mysql_fetch_assoc i porównywanie wartości pola adm

0
Patryk27 napisał(a)

Są (przynajmniej) 2 wyjścia.
1.mysql_query ("SELECT id FROM user WHERE login='$admspr' and adm='1'"); [ może zadziała, nie jestem pewien :P ]
2.mysql_fetch_row || mysql_fetch_assoc i porównywanie wartości pola adm

Dzięki wielkie, dopisanie "and adm='T'" pomogło, jest tak jak chciałem. Jeszcze dopóki temat otwarty chciałem się dopytać, jak zrobić zabezpieczenie tzn. By zwykły użytkownik nie mógł wejść do administrator.php po wpisaniu linka. Sterczy też właśnie to zapytanie do bazy na początku strony ?? Podobnie jak sprawdzam czy osoba jest zalogowana czy nie ?? Pytam bo staram się jak najbardziej bezpiecznie to zrobić.

0

Tak.
Wystarczy że na początku skryptu sprawdzisz czy jest on adminem czy nie (no i czy jest w ogóle zalogowany); a jak nie to przekierowanie gdzieś indziej lub wywalasz błąd, że nie ma odpowiednich praw lub bardziej chamsko http 404 ;)

0

Mam nadzieje że mnie nikt nie upomni, ale nie chciałem nowego wątku robić dlatego tutaj opiszę kolejny problem..
Otóż mam już ten panel admina, ładnie poszło z dodawaniem nowych artykułów tylko teraz mam problem z edytowaniem i pewnie z usuwaniem ich. Chce zrobić tak że najpierw na stronie pokaże się lista powiedzmy wszystkich albo 20 ostatnich artykułów z inputem radio. I chciałbym zrobić że po zaznaczeniu jednego inputa i kliknięciu edytuj w nowym oknie pojawi się taki sam formularz co do dodawania ale z zawartością czyli treścią i tematem artykułu. Problem tkwi w tym że jak zrobiłem takie "cudo":

<?php
$sql="SELECT temat FROM artykuly WHERE id_art>=1 ORDER BY id_art ASC LIMIT 5";
$wykonaj = mysql_query($sql);
?>
<form method="post" action="admedycja1" METHOD=POST enctype="multipart/form-data">
<?php

while($wiersz = mysql_fetch_row($wykonaj))
{
 echo "<input type=checkbox name=temat value=" . $wiersz['0'] . " />";  
 echo $wiersz['0'] ; echo '<br>';
}
?>
<input type="submit" name="submit" value="Edycja Artykułu" />
</form> 

To faktycznie wyświetla ostatnie 5 tematów artykułów ale mogę je wszystkie zaznaczyć a nie tylko jeden. I druga sprawa jak przenieść informacje o zaznaczonym temacie by w drugim oknie już się wyświetlało wszystko odnośnie tego tematu ?? Z góry dzięki za pomoc.

0

1.http://www.echoecho.com/htmlforms10.htm
2.No skoro przekazujesz dane POST'em do drugiego pliku, to je po prostu odczytaj (tzn.odczytaj ID) i pobierz odpowiednie dane z bazy danych...

0

dobra radio działa. Ale jak w drugim pliku daje

 echo $POST['temat'];

To nie wyświetla mi zawartości okienka "value"

0

1.<form method="post" action="admedycja1" METHOD=POST enctype="multipart/form-data"> dwa razy masz method=post
2.echo "<input type=checkbox name=temat value=" . $wiersz['0'] . " />"; spróbuj tak:
echo "<input type='radio' name='temat' value='" . $wiersz[0] . "' />";
3.echo $POST['temat']; chyba raczej echo $_POST['temat'];

0

Dobra, wszystko śmiga, mój błąd miedzy innymi brak podłogi przy POST. Dzięki wielkie ;)

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