Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Otwieranie stron z poziomu php
suricat
post 15.07.2007, 15:19:38
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 7.07.2007

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


Witam,

Zakładam, iż moje pytanie jest maksymalnie banalne, ale jakoś nie mogę znaleźć na nie odpowiedzi.

Jak z poziomu php warunkowo otworzyć inną stronę?
coś jak : if(warunek) otwórz strone 1.php; else otwórz stronę 2.php

Z góry dzięki za pomoc
Go to the top of the page
+Quote Post
pentel
post 15.07.2007, 16:11:34
Post #2





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 3.07.2007

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


No a masz już jakiś warunek? smile.gif

Ja, na przykład, używam tablicy $_GET, czyli informacji przenoszonych poprzez pasek adresu (linki, itd.).
Świetne jest includowanie, ale żeby nie mieszać to pominę to i dam ci prosty przykład:

index.php
  1. <?php
  2. $s = $_GET['strona']
  3. if ( $s == '1' ) {
  4.  include_once '1.php';
  5. } elseif ( $s == '2' ) {
  6.  include_once '2.php';
  7. } else {
  8.  include 'glowna.php';
  9. }
  10. ?>

I jeżeli klikniesz link
  1. <a href="http://strona.pl/index.php?strona=1">Strona 1</a>
  2. <!-- lub ładniejszy -->
  3. <a href="http://strona.pl/?strona=1">Strona 1</a>

to instrukcja warunkowa porówna te wartości z wartością zmiennej z tablicy $_GET. W tym wypadku zaincluduje 1.php

Aha, jeśli masz więcej podstron, to proponuję użyć switcha. Pobiera wartość z tablicy tylko raz i porównuje ją ze wszystkimi przypadkami.

Pozdrawiam

Ten post edytował pentel 15.07.2007, 16:14:07
Go to the top of the page
+Quote Post
suricat
post 15.07.2007, 16:20:10
Post #3





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 7.07.2007

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


Dziękuję za odpowiedź, niestety nie dokońca o to mi chodziło.
Powiem dokładnie o co chodzi

Tworzę system cms i warunek o którym pisałem jest przy logowaniu:

  1. <?
  2. $_SESSION['username'] = $_POST['user'];
  3. $_SESSION['pass'] = $_POST['pass'];
  4. $_SESSION['authuser'] = 0;
  5.  
  6. //sprawdza czy podany login pasuje do hasla z bazy
  7. $user = $_SESSION['username'];
  8. include ('conn.php');
  9. $zapytanie = "SELECT pass FROM osoby WHERE login ='".$user."'";
  10. $odp = mysql_query($zapytanie);
  11.  
  12. while ($row = mysql_fetch_row($odp)) {
  13. $pass_db = $row[0];
  14. }
  15. echo $user." user<BR>";
  16. echo $_SESSION['pass']." pass<BR>";
  17. echo $pass_db." pass_db<br>";
  18.  
  19.  
  20. //sprawdzenie hasła
  21. if($pass_db == $_SESSION['pass']) {
  22. $_SESSION['authuser'] = 1;
  23. echo "Witaj ".$user;
  24. }else
  25. {
  26. echo "nie masz uprawnień do oglądania tej strony";
  27. exit();
  28. ?>



Problem pojawił mi się przy warunku sprawdzania hasła - chciałbym aby po poprawnej identyfikacji z bazy przenieść użytkownika na inną stronę, a w przypadku błędnego logowania wyświetlić stronę błędu (zamiast wyświetlać informację za pomocą echo)


Mam nadzieję, że teraz dobrze to opisałem.
Go to the top of the page
+Quote Post
flv
post 15.07.2007, 16:29:55
Post #4





Grupa: Zarejestrowani
Postów: 130
Pomógł: 1
Dołączył: 29.06.2007

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


header()" title="Zobacz w manualu PHP" target="_manual
i zaznajom sie z forumową wyszukiwarką
Go to the top of the page
+Quote Post
pentel
post 15.07.2007, 16:30:39
Post #5





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 3.07.2007

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


Spoko, moja wina, słowo kluczowe 'otwierać' źle zinterpretowałem smile.gif

  1. <?php
  2. if ($pass_db == $_SESSION['pass']) {
  3.  $_SESSION['authuser'] = 1;
  4.  header('Location: http://' . $_SERVER['HTTP_HOST'] . '/strona1.php');
  5.  exit;
  6. } else {
  7.  // imo po prostu przekieruj go na strone główną, bez pisania komunikatu
  8.  // jeśli to haker to on dobrze wie, co jest źle: nie zna hasła
  9.  // a jeśli to użytkownik, to on tez wie co jest źle: popełnił literówkę
  10.  // w każdym razie nie pamiętam jak sie wyświetlało strone błędu :)
  11. }
  12. ?>


Pozdrawiam

PS. Tylko te twoje zabezpieczenia trochę słabe mi się zdają. Dobrze byłoby chociaż zahashować hasło (np. funkcją md5() ).

Ten post edytował pentel 15.07.2007, 16:32:16
Go to the top of the page
+Quote Post
suricat
post 15.07.2007, 16:41:17
Post #6





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 7.07.2007

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


flv dzięki nakierowanie smile.gif

pentel wielkie dzięki - właśnie o to mi chodziło. Co do tej strony błędu to sobie poradze. Nie wiem nic o zahashowaniu hasła funkcją md5() ale sobie doczytam. Dzięki za wskazówki
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 21.06.2025 - 21:02