Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][mysql]Sprawdzania czy user jest Adminem
matius71
post
Post #1





Grupa: Zarejestrowani
Postów: 77
Pomógł: 0
Dołączył: 22.08.2009

Ostrzeżenie: (0%)
-----


Witam, walki z programowaniem ciąg dalszy (IMG:style_emoticons/default/biggrin.gif)

Chcę sprawdzić czy zalogowany user jest Adminem i myślałem że to będzie działało:

CODE
<?php
if($_SESSION['permissions'] == "Admin")
{
require('admin/addnew.php');
}
?>


Na stronie wywala mi błąd:

Notice: Undefined index: permissions in D:\XAMPP\htdocs\memberpage.php on line 32

Rozumiem że nie znajduje indeksu permissions tylko nie bardzo wiem co zrobić żeby to hulało. Chciałem żeby z tabeli members sprawdziło czy w permissions jest wpis Admin czy go nie ma.
Go to the top of the page
+Quote Post
2 Stron V   1 2 >  
Start new topic
Odpowiedzi (1 - 31)
olszam
post
Post #2





Grupa: Zarejestrowani
Postów: 342
Pomógł: 23
Dołączył: 20.01.2011
Skąd: Chełm

Ostrzeżenie: (0%)
-----


A zdefiniowałeś wcześniej w sesji "permissions" przed sprawdzeniem warunku, może literówka czy tam czeski błąd?
Go to the top of the page
+Quote Post
seba123
post
Post #3





Grupa: Zarejestrowani
Postów: 57
Pomógł: 1
Dołączył: 20.03.2008

Ostrzeżenie: (0%)
-----


Nie zapisujesz tego klucza w tablicy. Sprawdź:

  1. print_R($_SESSION);


PS. Przy takich porównaniach polecam używać stałych.

Ten post edytował seba123 17.11.2017, 13:01:26
Go to the top of the page
+Quote Post
matius71
post
Post #4





Grupa: Zarejestrowani
Postów: 77
Pomógł: 0
Dołączył: 22.08.2009

Ostrzeżenie: (0%)
-----


Własnie chyba czegoś brakuje... nie bardzo wiem co jeszcze jest potrzebne, robię to pierwszy raz :/ niestety to nie o to chodzi bo też nie działa jak to wpisze:

CODE
$permissions = $_SESSION['permissions'];



Napiszcie co jest potrzebne żeby to działało, poczytam o tym i sie nauczę (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
viking
post
Post #5





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


Masz session_start() na początku? Do tego sprawdzaj czy istnieje jakaś zmienna zawsze przed użyciem. Do gropowania można wykorzystać SPLEnum.
Go to the top of the page
+Quote Post
matius71
post
Post #6





Grupa: Zarejestrowani
Postów: 77
Pomógł: 0
Dołączył: 22.08.2009

Ostrzeżenie: (0%)
-----


hmmm... bo chodzi o to że chcę sprawdzić czy dany user który jest zalogowany ma w kolumnie "permissions" wpisane "Admin". Może coś kompletnie źle robię... co potrzebujecie żeby mi pomóc (IMG:style_emoticons/default/biggrin.gif)

Jak podaje:

CODE
<?php
$permissions = $_SESSION['permissions'];
if($_SESSION['permissions'] == "Admin")
{
require('admin/addnew.php');
}
?>


To wypluwa:

Notice: Undefined index: permissions in D:\XAMPP\htdocs\memberpage.php on line 32 to jest "$permissions = $_SESSION['permissions'];"

Notice: Undefined index: permissions in D:\XAMPP\htdocs\memberpage.php on line 33 to jest "if($_SESSION['permissions'] == "Admin")"

Czemu nie ogarnia tego?
Go to the top of the page
+Quote Post
viking
post
Post #7





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


Przeczytaj jeszcze raz mój post.
Go to the top of the page
+Quote Post
Pyton_000
post
Post #8





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


Podstawowe pytanie. Czy Ty w ogóle pobierasz dane z BD?
Go to the top of the page
+Quote Post
matius71
post
Post #9





Grupa: Zarejestrowani
Postów: 77
Pomógł: 0
Dołączył: 22.08.2009

Ostrzeżenie: (0%)
-----


hmmm... a miało być tak łatwo (IMG:style_emoticons/default/biggrin.gif)

Jak mam to zrobić ehhh....
Go to the top of the page
+Quote Post
Pyton_000
post
Post #10





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


Zacznij od kursu PHP7 + Mysqli (PDO) i wróć tu za kilka dni.
Go to the top of the page
+Quote Post
matius71
post
Post #11





Grupa: Zarejestrowani
Postów: 77
Pomógł: 0
Dołączył: 22.08.2009

Ostrzeżenie: (0%)
-----


Możesz polecić jakiś kurs w którym w sensowny sposób będzie wszystko wyjaśnione?
Go to the top of the page
+Quote Post
viking
post
Post #12





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


A nie możesz zacząć od session_start()? Jeśli tak samo będziesz ten kurs czytał jak odpowiedzi tutaj to słabo to widzę.
Go to the top of the page
+Quote Post
Pyton_000
post
Post #13





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


@viking ale on nie ma żadnego kodu więcej poza tym co jest pokazane w poście więc dodanie session_start i tak nie wiele zmieni.
Go to the top of the page
+Quote Post
viking
post
Post #14





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


Może nie podał więcej kodu. Wiesz jak to jest na tym forum.
Go to the top of the page
+Quote Post
Pyton_000
post
Post #15





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


Przeczytaj #8 i #9
Go to the top of the page
+Quote Post
viking
post
Post #16





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


Uprawnienia w najprostszej postaci wcale nie muszą być zapisane w bazie więc te 2 punkty nic nie wyjaśniają. Natomiast pewne jest że nie startuje sesji w związku z czym zmienna sesyjna nie istnieje.

Myślę że biorąc pod uwagę przedszkole o dotychczas zaprezentowany poziom wiedzy chce zrobić coś dużo bardziej prostego czyli https://prophp.pl/advice/show/24/jak_zrobic...istratora%29%3F

Ten post edytował viking 18.11.2017, 13:23:52
Go to the top of the page
+Quote Post
matius71
post
Post #17





Grupa: Zarejestrowani
Postów: 77
Pomógł: 0
Dołączył: 22.08.2009

Ostrzeżenie: (0%)
-----


Mam system logowania i rejestrowania użytkownika w którym wybiera się rodzaj usera. Dla konkretnego usera wpisywane jest slowo "administrator" jeśli to ma być konto administratora. I chodzi mi tylko o to żeby sprawdzić czy dany user jest administratorem i to tyle (IMG:style_emoticons/default/tongue.gif) Nie ma co gadać, faktycznie poczytam trochę na ten temat, na pewno przyda mi się ta wiedza na przyszłość, myślałem po prostu że to nie jest jakieś skomplikowane i da się to jakoś szybko prosto wyjaśnić. To session_start() mam na początku więc to nie jest problem, rzeczywiście nie pobieram jakiś danych z BD i w tym jest problem ale tak jak napisałem wcześniej, muszę o tym poczytać, nauczyć się i po problemie (IMG:style_emoticons/default/wink.gif) Miałem nadzieje że ktoś mi tu poda coś co będzie można dopasować pod moją stronę ale jak nie to nie ma jakiegoś większego problemu. Proszę się tu nie kłócić (IMG:style_emoticons/default/biggrin.gif)
Go to the top of the page
+Quote Post
viking
post
Post #18





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


Nie kłócimy się. To były konstruktywne uwagi. Masz artykuł jak to konkretnie zrobić więc liczę że nie będzie kolejnych dziwnych pytań. A na przyszłośc podawaj cały kod który dotyczy tematu.
Go to the top of the page
+Quote Post
matius71
post
Post #19





Grupa: Zarejestrowani
Postów: 77
Pomógł: 0
Dołączył: 22.08.2009

Ostrzeżenie: (0%)
-----


System logowania mam ten: https://daveismyname.blog/login-and-registr...system-with-php

W jaki sposób mogę sprawdzić jakie wartości w BD ma AKTUALNIE zalogowany użytkownik? Tego jeszcze nie mogę tylko rozgryźć?

Wyświetlają mi się dane z DB ale chcę tylko wyświetlić dane usera który jest aktualnie zalogowany.

CODE
<?php

$stmt = $db->query('SELECT memberID, userlogin, permissions FROM members WHERE permissions = "User Permissions"');
echo '<ul>';
foreach($stmt as $row)
{
echo '<li>'.$row['memberID'].') '.$row['userlogin'].': '.$row['permissions'].'</li>';
}
$stmt->closeCursor();
echo '</ul>';

?>
Go to the top of the page
+Quote Post
viking
post
Post #20





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


WHERE permissions = "User Permissions" AND memberId = ?
Go to the top of the page
+Quote Post
matius71
post
Post #21





Grupa: Zarejestrowani
Postów: 77
Pomógł: 0
Dołączył: 22.08.2009

Ostrzeżenie: (0%)
-----


<?php
$userlogin = $_SESSION['userlogin'];
$stmt = $db->query("SELECT memberID, userlogin='$userlogin', permissions FROM members");
echo '<ul>';
foreach($stmt as $row)
{
echo '<li>'.$row['memberID'].') '.$row['userlogin'].': '.$row['permissions'].'</li>';
}
$stmt->closeCursor();
echo '</ul>';

?>

ale wywala to co zwykle czyli:

Notice: Undefined index: userlogin in D:\XAMPP\htdocs\memberpage.php on line 39
33) : Administrator

linia 39 to
CODE
echo '<li>'.$row['memberID'].') '.$row['userlogin'].': '.$row['permissions'].'</li>';

Go to the top of the page
+Quote Post
viking
post
Post #22





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


Nie wiem ile razy można ci powtarzać w tym temacie że masz startować sesję zanim z niej skorzystasz.
Zapytanie też pokazałem jak ma wyglądać.
Go to the top of the page
+Quote Post
matius71
post
Post #23





Grupa: Zarejestrowani
Postów: 77
Pomógł: 0
Dołączył: 22.08.2009

Ostrzeżenie: (0%)
-----


Ok, rozumiem że chodzi ci o to żeby dodać na początku session start

CODE
<?php
session_start();
$memberID=$_SESSION['memberID'];
$stmt = $db->query("SELECT memberID='$memberID', userlogin, permissions FROM members");
echo '<ul>';
foreach($stmt as $row)
{
echo '<li>'.$row['memberID'].') '.$row['userlogin'].': '.$row['permissions'].'</li>';
}
$stmt->closeCursor();
echo '</ul>';

?>


Nie ważne w którym miejscu dodam to i tak wywala błąd pod tytułem:
CODE
Notice: A session had already been started - ignoring session_start() in D:\XAMPP\htdocs\memberpage.php on line 34
Go to the top of the page
+Quote Post
viking
post
Post #24





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


var_dump($_SESSION); przed $memberID
Go to the top of the page
+Quote Post
matius71
post
Post #25





Grupa: Zarejestrowani
Postów: 77
Pomógł: 0
Dołączył: 22.08.2009

Ostrzeżenie: (0%)
-----


CODE
array(3) { ["loggedin"]=> bool(true) ["userlogin"]=> string(6) "tester" ["memberID"]=> int(1) }
Go to the top of the page
+Quote Post
viking
post
Post #26





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


Popraw zapytanie, później iteruj p $stmt->fetch
Go to the top of the page
+Quote Post
matius71
post
Post #27





Grupa: Zarejestrowani
Postów: 77
Pomógł: 0
Dołączył: 22.08.2009

Ostrzeżenie: (0%)
-----


Nie wiem czy to o coś takiego chodzi?

CODE
<?php

$memberID=$_SESSION['memberID'];
$stmt = $db->query("SELECT memberID='$memberID', userlogin, permissions FROM members");
$stmt->execute(array(':memberID' => $memberID));
$row = $stmt->fetch(PDO::FETCH_ASSOC);

echo '<ul>';
foreach($stmt as $row)
{
echo '<li>'.$row['memberID'].') '.$row['userlogin'].': '.$row['permissions'].'</li>';
}
$stmt->closeCursor();
echo '</ul>';
?>


Nie wiem co mam poprawić w zapytaniu.

Ten post edytował matius71 25.11.2017, 15:03:47
Go to the top of the page
+Quote Post
viking
post
Post #28





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


Pocztaj trochę dokumentację mysql. Co to memberID='$memberID' niby ma robić? Podałem jak masz zmienić warunek where.
Go to the top of the page
+Quote Post
matius71
post
Post #29





Grupa: Zarejestrowani
Postów: 77
Pomógł: 0
Dołączył: 22.08.2009

Ostrzeżenie: (0%)
-----


Dobra, już mi działa:

CODE
$memberID=$_SESSION['memberID'];
$stmt = $db->query("SELECT memberID, userlogin, permissions FROM members where memberID='$memberID'");
$row = $stmt->fetch(PDO::FETCH_ASSOC);

$_SESSION['permissions'] = $row['permissions'];


Teraz chciałem zrobić niby proste sprawdzenie ale oczywiście nie działa, zawsze wyświetla "Masz uprawnienia SeniorAdmin lub Administrator." Co tu jest nie tak?

CODE
if ($_SESSION['permissions'] == ("SeniorAdmin" || "Administrator"))
{
echo '<p>Masz uprawnienia SeniorAdmin lub Administrator.</p>';

require('admin/addnew.php') ;

} else
{
echo '<p>Nie masz uprawnien SeniorAdmin lub Administrator.</p>';
}


Dodam że wszystko działa jeśli sprawdzam czy user ma uprawnienia tylko np "SeniorAdmin" natomiast jak dodaje "|| Administrator" to już przestaje działać (IMG:style_emoticons/default/thumbsdownsmileyanim.gif)
Go to the top of the page
+Quote Post
nospor
post
Post #30





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




zacznij prosze uzywac poprawnego bbcode dla kodu wstawianego.

A to:
if ($_SESSION['permissions'] == ("SeniorAdmin" || "Administrator"))
to zes skad wytrzasnal? Nigdzie nie ma takiej kontrukcji...

  1. if ($_SESSION['permissions'] === "SeniorAdmin" || $_SESSION['permissions'] === "Administrator")
Go to the top of the page
+Quote Post
matius71
post
Post #31





Grupa: Zarejestrowani
Postów: 77
Pomógł: 0
Dołączył: 22.08.2009

Ostrzeżenie: (0%)
-----


Czyli za każdym razem trzeba $_SESSION['permissions'] ? Nie da się jakoś krócej? (IMG:style_emoticons/default/biggrin.gif) Rzeczywiście, to co podałeś działa pięknie!
Go to the top of the page
+Quote Post
Pyton_000
post
Post #32





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


Kod
if (in_array($_SESSION['permissions'], ["SeniorAdmin", "Administrator"]))

Albo tak
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 00:31