Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Stałe logowanie
Forum PHP.pl > Forum > Przedszkole
MarcinJarek
Witam, w pliku index.php mam kod:

  1. <form action="admin.php" method="post">
  2. Login: <input type="text" name="login" ><br>
  3. Haslo: <input type="text" name="haslo"><br>
  4. <input type="submit" value="Zaloguj">
  5. </form>


A w pliku admin.php mam funkcje dostepne po zalogowaniu, ale gdy wejde odrazu na admin.php (nie logujac sie) mam dostep do tego pliku. I moje pytanie: Jak zrobic, zeby tzreba bylo sie zalogowac?
ARJ
login i hasło albo należy zapisać u usera w cookies lub użyć sesji. na każdej stronie panelu administracyjnego na samym początku ma być weryfikacja loginu i hasła.
  1. <?
  2. include(&#092;"connect.php\");
  3. $users=mysql_query(&#092;"SELECT * FROM users WHERE login='$_SESSION[login]'\");
  4. $user=mysql_fetch_array($users);
  5. if($_SESSION[&#092;"login\"] == strtolower($user[\"login\"]) && $_SESSION[\"haslo\"] == $user[\"haslo\"]){
  6. ?>
  7.  
  8. strona i wszystkie skrypty
  9.  
  10. <?
  11. }else{
  12. header(&#092;"Location: loguj.php?msg=Zły login lub hasło\"); exit;
  13. }?>

to przykład. niejest to szczyt techniki ale działa.
MarcinJarek
SOrry, zle opisalem moj blad. Wezmy, ze w pliku index.php mam kod formularzu, a w pliku admin.php sprawdzam haslo i login i tam mam np. odnosnik do pliku edytuj.php i tam moge wszystko edytowac... i kazdy tam moze wejsc... i jak zrobic, zeby mogl wjesc ten co sie zalogowal?
Vengeance
konkretnego rozwiazania nie dam bo nie widac kodu etc.

ale trzeba bylo lepiej przemyslec strukture kodu ;] skoro teraz cos ci nie wychodzi znaczy sie cos skopales.

przemysl to jeszcze raz i zrob tak zeby na poczatku skryptu sprawdzal czy ktos niezalogowany nie proboje sie dostac. jesli tak to die() cos tam (z wyjatkiem gdy np. $_GET['operacja'] == 'logowanie')

a potem w calym tym IF od sprawdzania czy ktos jest zalogowany daj wywolywanie funkcji w jakims switch() czy cos
MarcinJarek
Plik index.php:

  1. <form action="admin.php" method="post">
  2. Login: <input type="text" name="login" ><br>
  3. Haslo: <input type="text" name="haslo"><br>
  4. <input type="submit" value="Zaloguj">
  5. </form>


admin.php:

  1. <? 
  2. if ($login = &#092;"login\" && $haslo=\"haslo) {
  3. echo&#092;"Zalogowales sie <a href=\"edytuj.php\"> edytuj</a>\";
  4. } else {
  5. echo &#092;"Nie zalogowales sie\";
  6. }
  7.  
  8. ?>


edytuj.php

  1. <?
  2.  
  3. //tutaj się edytuje duzo zeczy !
  4. ?>


I mi chodzi oto, ze jak ktos wejdzie do pliku (gdy sie nie zalogowal) edytuj.php to pojawi mu sie, ze sie nie zalogowal...
Vengeance
admin.php
  1. <? 
  2. if ($_POST['login'] = &#092;"login\" && $_POST['haslo'] = \"haslo\") {
  3.  $_SESSION['loged'] = true;
  4.  echo&#092;"Zalogowales sie <a href=\"edytuj.php\"> edytuj</a>\";
  5. } else {
  6.  echo &#092;"Nie zalogowales sie\";
  7. }
  8. ?>


edytuj.php
  1. <?php
  2. if($_SESSION['loged']!=true)
  3.  die('zaloguj sie najpierw');
  4.  
  5. // dalsza czesc juz normalnie...
  6.  
  7. ?>
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.