Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL] Dane pobierane z bazy do sesji
Forum PHP.pl > Forum > Przedszkole
walus16
Witam,
Napisałem sobie krótki skrypt oparty na sesjach panelu admina. Mam do niego dostęp jak się zaloguję, ale chciałbym wprowadzić zmianę tak, aby nie każdy kto się zarejestruje mógł wejść do niego. Chcę wprowadzić zmianę taką, że jeżeli w bazie danych w polu user_admin mam wpisanie "tak" to mam dostęp, a jeżeli "nie" to jest brak dostępu oczywiście wykorzystując sesję. Niestety nie wiem jak.

  1. <?php
  2.  
  3. require("silnik.php");
  4.  
  5. if(empty($_SESSION["zalogowany"]))$_SESSION["zalogowany"]=0;
  6. ?>
  7.  
  8. <?php
  9. if($_SESSION["zalogowany"]!=0) {
  10. if($_SESSION["user_admin"]== 'tak') { //jeżeli w bazie danych jest "tak" to mam dostęp ale nie wiem co zrobić aby sesja sprawdzała co jest w bazie
  11. ?>
  12. <html>
  13. <body background="obrazki/tlo.gif">
  14. <table><tr><td>
  15. <br><a href="admin.php">Panel administratora</a>
  16. <br><a href="admin.php?akcja=#">Dodaj newsa</a>
  17. <br><a href="admin.php?akcja=#">Dodaj panel </a>
  18. <br><a href="admin.php?akcja=#">Dodaj artykuł</a></table>
  19. <?
  20.  
  21. $akcja = $HTTP_GET_VARS[akcja];
  22. if($akcja=="")
  23. {
  24. include("index.php");
  25. }
  26. else
  27. {
  28. include($akcja.".php");
  29. }
  30. ?>
  31. <?php } else { ?>
  32.  
  33. <h3>Aby uzyskać pełen dostęp do serwisu musisz posiadać prawa administratora</h3>
  34.  
  35. <?php }} else { ?>
  36.  
  37. <h3>Aby uzyskać pełen dostęp do serwisu musisz się zalogować</h3>
  38.  
  39. <?php } ?>
  40.  
  41. </body></html>
mat-bi
$HTTP_GET_VARS - auuu, kiedy ty się php uczyłeś? Tego już dawno nei ma

sprawdzanie w bazie - przepraszam, ale musisz się nauczyć podstaw - Temat: linkiKursy dla poczatkujacych
user767
z bazy do tablicy i sesji, z mojej wczorajszej powtórki notatka:
  1. <?
  2. while ($row = mysqli_fetch_assoc($dane)){
  3. $users[$i]['imie'] = $row['imie'];
  4. $users[$i]['nazwisko'] = $row['nazwisko'];
  5. $users[$i]['mail'] = $row['mail'];
  6. $users[$i]['adres'] = $row['adres'];
  7. $i++;
  8. }
  9. $_SESSION['dane'] = $users; // ew. serialize($users)
  10. ?>
walus16
user767 mógłbyś to zaimplementować do mojego kodu bo chyba coś źle zrobiłem bo nie działa to u mnie
user767
  1. <?
  2.  
  3.  
  4.  
  5.  
  6. ini_set( 'display_errors', 'On' );
  7.  
  8.  
  9. $polaczenie = new BAZA;
  10.  
  11. class BAZA {
  12. function BAZA() {
  13. $this->host = "";
  14. $this->baza = ""
  15. $this->uzytkownik = "";
  16. $this->haslo = ""; // haslo do bazy
  17. $this->polacz = mysql_connect($this->host, $this->uzytkownik,$this->haslo);
  18. mysql_select_db($this->baza);
  19. }
  20. }
  21.  
  22.  
  23.  
  24. $wczytajZlecenie = mysql_query("SELECT * FROM produkty");
  25. while ($wypisz = mysql_fetch_array($wczytajZlecenie, MYSQL_ASSOC)) {
  26.  
  27. // print $nazwa = $wypisz['nazwa'].'<br />';
  28.  
  29. $nazwy[] = $wypisz['nazwa'];
  30.  
  31. }
  32.  
  33. //$ile_jest = mysql_num_rows($wczytajZlecenie);
  34.  
  35. print_r($nazwy);
  36.  
  37. $_SESSION['dane'] = $nazwy; // ew. serialize($users)
  38.  
  39. print_r($_SESSION['dane']);
  40.  
  41. ?>
walus16
Poprawiłem swój skrypt i nadal nie działa przez to, że nie pobiera mi dobrego pola z bazy danych. Poniżej wklejam mój skrypt. Jeżeli ktoś wie na czym mój błąd polega to proszę o poprawę skryptu.

  1.  
  2. <?php
  3.  
  4. require("silnik.php");
  5.  
  6. $result = mysql_query("SELECT user_admin FROM ".$db_prefix."uzytkownik ");
  7. while($row = mysql_fetch_array($result)){
  8. $admin[] = $row['user_admin'];
  9. }
  10.  
  11. if(empty($_SESSION["zalogowany"])){
  12. $_SESSION["zalogowany"]=0;
  13. $_SESSION['user_admin']= $admin;
  14.  
  15. }
  16.  
  17. ?>
  18. <?php
  19. if($_SESSION["zalogowany"]!=0) {
  20. if($_SESSION["user_admin"]== 'tak') {
  21. ?>
  22. <html>
  23. <body background="obrazki/tlo.gif">
  24. <table><tr><td>
  25. <br><a href="admin.php">Panel administratora</a>
  26. <br><a href="admin.php?akcja=#">Dodaj newsa</a>
  27. <br><a href="admin.php?akcja=#">Dodaj panel </a>
  28. <br><a href="admin.php?akcja=#">Dodaj artykuł</a></table>
  29. <?
  30.  
  31. $akcja = $_GET[akcja];
  32. if($akcja=="")
  33. {
  34. include("index.php");
  35. }
  36. else
  37. {
  38. include($akcja.".php");
  39. }
  40. ?>
  41. <?php } else { ?>
  42. <h3>Aby uzyskać pełen dostęp do serwisu musisz posiadać prawa administratora</h3>
  43. <?php }} else { ?>
  44. <h3>Aby uzyskać pełen dostęp do serwisu musisz się zalogować</h3>
  45. <?php } ?>
  46. </body></html>
  47.  
by_ikar
Nie możesz używać GET w ten sposób:

Kod
$_GET[akcja];


To że działa, nie znaczy że jest prawidłowe. Włącz sobie pokazywanie błędów, to się zdziwisz ile możesz mieć błędów w swoim skrypcie, przez co może więcej rzeczy nie działać..

Jak chcesz pobrać jakieś dane z tablicy, to klucze zawsze, umieszczaj w apostrofach:

Kod
$_GET['akcja'];


Najlepiej wrzuć sobie gdzieś na początek twojego skryptu error_reporting(E_ALL);
walus16
Na razie chciałbym się skupić nad tym dlaczego nie pobiera mi z bazy konkretnej informacji, której potrzebuje do dalszego wykonywania skryptu. Bo jak na razie jak nie chciało działać, tak nie działa.
auto-all
Proponuje powoli przeanalizować kod:
  1. <?php
  2.  
  3. require("silnik.php");
  4.  
  5. $result = mysql_query("SELECT user_admin FROM ".$db_prefix."uzytkownik "); // Sprawdz czy te zapytanie jest poprawne i co zwraca
  6. while($row = mysql_fetch_array($result)){
  7. $admin['user_admin'] = $row['user_admin'];
  8. }
  9.  
  10. print_r($admin); // Co zwraca?
  11. print_r($_SESSION); // Co zwraca?
  12.  
  13. // Dalszą część kodu sobie dostosuj
  14. ?>


Masz pomieszany kod:
  1. // Jesli ten warunek jest spelniony:
  2. if(empty($_SESSION["zalogowany"]))
  3. // To ten nie automatycznie nie bedzie
  4. if($_SESSION["zalogowany"]!=0) // poniewaz w poprzednim warunku przypisales do tej zmiennej wartosc "0" a jesli ten nie jest poprawny wszystkie w nim zawarte nie beda analizowane
walus16
Trochę posiedziałem nad tym skryptem i poprawiłem go na taki:
  1. <?php
  2.  
  3. require("silnik.php");
  4.  
  5. if($_SESSION['zalogowany'] == 'tak')
  6. {
  7. if($_SESSION['user_admin'] == 'tak')
  8. {
  9. if(empty($_GET['akcja']))
  10. {
  11. $akcja = $_POST['akcja'];
  12. }
  13. else
  14. {
  15. $akcja = $_GET['akcja'];
  16. }
  17.  
  18. echo "<html><body>";
  19. echo "<table><tr><td>";
  20. echo "<br><a href='admin.php?akcja=#'>Panel administratora</a>";
  21. echo "<br><a href='admin.php?akcja=#'>Dodaj newsa</a>";
  22. echo "<br><a href='admin.php?akcja=#'>Dodaj panel </a>";
  23. echo "<br><a href='admin.php?akcja=#'>Dodaj artykuł</a>";
  24. echo "</td></tr></table>";
  25.  
  26. if(empty($akcja))
  27. {
  28. include("wiadomosc.php");
  29. }
  30. else
  31. {
  32. include($akcja.".php");
  33. }
  34. }
  35. else
  36. {
  37. echo "Aby uzyskać pełen dostęp do serwisu musisz posiadać prawa administratora";
  38. }
  39. }
  40. else
  41. {
  42. echo "Aby uzyskać pełen dostęp do serwisu musisz się zalogować";
  43. }
  44.  
  45. echo "</body></html>";
  46. ?>


Co wy na to?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.