![]() |
![]() |
![]()
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. |
|
|
![]() |
![]()
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?
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 57 Pomógł: 1 Dołączył: 20.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
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) |
|
|
![]()
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.
|
|
|
![]()
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? |
|
|
![]()
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.
|
|
|
![]()
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?
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 77 Pomógł: 0 Dołączył: 22.08.2009 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
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.
|
|
|
![]()
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?
|
|
|
![]()
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ę.
|
|
|
![]()
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.
|
|
|
![]()
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.
|
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Przeczytaj #8 i #9
|
|
|
![]()
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 |
|
|
![]()
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)
|
|
|
![]()
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.
|
|
|
![]()
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>'; ?> |
|
|
![]()
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 = ?
|
|
|
![]()
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>'; |
|
|
![]()
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ć. |
|
|
![]()
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
|
|
|
![]()
Post
#24
|
|
Grupa: Zarejestrowani Postów: 6 380 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
var_dump($_SESSION); przed $memberID
|
|
|
![]()
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) }
|
|
|
![]()
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
|
|
|
![]()
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 |
|
|
![]()
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.
|
|
|
![]()
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) |
|
|
![]()
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...
|
|
|
![]()
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!
|
|
|
![]()
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 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 00:31 |