Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php / MySQL] Problem - po zalogowaniu muszę odświeżać stronę.
Koniczynka
post 15.06.2006, 16:07:37
Post #1





Grupa: Zarejestrowani
Postów: 61
Pomógł: 0
Dołączył: 24.05.2006

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


Witam. Zrobiłem system logowania oparty na sesjach. Jednak coś nie działa tak, jak powinno. Kiedy w pliku loguj.php wpisuję poprawny login i hasło, to przesyłane jest to do panel.php.

  1. <?php session_start(); ?>
  2.  
  3. <HTML>
  4. <HEAD>
  5. <TITLE>Panel administracyjny</TITLE>
  6. </head>
  7. <BODY>
  8.  
  9. <center><font face=tahoma></font>
  10. <font size=2>
  11.  
  12. <?php
  13. require_once 'polaczenie.php';
  14. require_once 'naglowek.php';
  15.  
  16.  
  17. $sql = "SELECT * FROM redakcja WHERE login = '" . $_POST['login'] . "' " .
  18. "AND haslo = '" . $_POST['haslo'] . "'" ; 
  19.  
  20. $result = mysql_query($sql)
  21. or die('Nie potrafię odnaleźć użytkownika: ' . mysql_error()); 
  22.  
  23. $row = mysql_fetch_array($result);
  24.  
  25. $_SESSION['id'] = $row['id'];
  26. $_SESSION['dostep'] = $row['dostep'];
  27. $_SESSION['login'] = $row['login'];
  28. $_SESSION['podpis'] = $row['podpis']; 
  29.  
  30.  
  31.  
  32. ?>
panel.php

naglowek.php
  1. <HTML>
  2. <HEAD>
  3. <TITLE>Panel administracyjny</TITLE>
  4. </head>
  5. <BODY>
  6.  
  7. <center><font face=tahoma size=3>
  8. <B>Informacje - panel administracyjny</B>
  9. <br><br>
  10. <font size=2>
  11.  
  12. <?php
  13.  
  14. require_once 'polaczenie.php';
  15.  
  16. if (isset($_SESSION['login'])) {
  17. echo '<div id=witanie>';
  18. echo 'Aktualnie zalogowany jako: ' . $_SESSION['login'];
  19. echo '</div>';
  20. }
  21.  
  22. if ($_SESSION['dostep'] > 2) {
  23.  
  24. echo "<font face=verdana size=1>";
  25. echo '<a href=zobacz.php>Informacje </a>';
  26. echo '| '; }
  27.  
  28.  
  29.  
  30. if ($_SESSION['dostep'] > 2) {
  31.  
  32. echo "<font face=verdana size=1>";
  33. echo '<a href=usunnewsa.php>Usuń informację</a>';
  34. echo '| '; }
  35.  
  36. if ($_SESSION['dostep'] > 2) {
  37.  
  38. echo "<font face=verdana size=1>";
  39. echo '<a href=edytujnewsa.php>Modyfikuj informację</a>';
  40. echo '| '; }
  41.  
  42. if ($_SESSION['dostep'] > 2) {
  43.  
  44. echo "<font face=verdana size=1>";
  45. echo '<a href=dodajnewsa.php>Dodaj informację</a>';
  46. echo '| '; }
  47.  
  48.  
  49.  
  50. if ($_SESSION['dostep'] > 2) {
  51.  
  52. echo "<font face=verdana size=1>";
  53. echo '<a href=dodajuzytkownika.php>Dodaj użytkownika </a>';
  54. echo '| '; }
  55.  
  56.  
  57.  
  58. if ($_SESSION['dostep'] > 2) {
  59.  
  60. echo "<font face=verdana size=1>";
  61. echo '<a href=usunuzytkownika.php>Usuwanie użytkowników</a>';
  62. echo '| '; }
  63.  
  64.  
  65. if ($_SESSION['dostep'] > 2) {
  66.  
  67. echo "<font face=verdana size=1>";
  68. echo '<a href=modyfikujuzytkownika.php>Edytowanie użytkowników</a>';
  69. echo '| '; }
  70.  
  71.  
  72. ?>
  73.  
  74. </td>
  75. </TABLE>
  76.  
  77. <HR COLOR="#808080">


Problem polega na tym, że jeżeli po wpisaniu danych pojawi się panel.php, to nie widać tam nic innego prócz
"Informacje - panel administracyjny" . Dopiero po odświeżeniu strony pojawia się jej zawartość. Co zrobić, aby wszystko przechodziło płynnie, tzn. po wpisaniu danych, od razu wyświetliły się linki ? Proszę o jakieś wskazówki.

Do zobrazowania problemu: http://www.koniczynka.voip24h.info/skrypt_newsow/loguj.php - hasło i login: admin .
Go to the top of the page
+Quote Post
strife
post 15.06.2006, 18:27:32
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 605
Pomógł: 96
Dołączył: 22.10.2004
Skąd: UK

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


Cytat(Koniczynka @ 15.06.2006, 17:07 ) *
Co zrobić, aby wszystko przechodziło płynnie, tzn. po wpisaniu danych, od razu wyświetliły się linki ? Proszę o jakieś wskazówki.

W miejscu, gdzie zostaje spełniony warunek wpisania poprawnego hasła i loginu daj:
  1. <?php
  2. header("Location: panel.php");
  3. ?>


dodam jeszcze, że jak Ci nie będzie działać to poszukaj na forum tematów z headers already sent ...


--------------------
Go to the top of the page
+Quote Post
mario
post 16.06.2006, 08:55:46
Post #3





Grupa: Zarejestrowani
Postów: 186
Pomógł: 0
Dołączył: 23.09.2003
Skąd: Siemianowice Śląskie

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


zeby bylo lepiej, do kodu strife'a dodaj exit zawsze po header

  1. <?
  2. header("Location: panel.php");
  3. ?>


--------------------
W życiu piękne są tyko chwile....
Życie choć piękne tak krótkie jest....
Wystarczy chwila by zgasić je....
Go to the top of the page
+Quote Post
Koniczynka
post 16.06.2006, 09:35:20
Post #4





Grupa: Zarejestrowani
Postów: 61
Pomógł: 0
Dołączył: 24.05.2006

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


Zrobiłem to według rad dr_bonzo:
Cytat
Naucz sie oddzielac logike aplikacji (kod php) od prezentacji danych! (html) -- unikniesz takich sytuwacji:
1. wysylasz naglowki z typem WML - OK
2. laczysz sie z baza, pobierasz to co masz pobrac, sprawdzasz czy jakistam warunek jesst spelniony
3. jesli tak, to dajesz przekierowanie header (! zauwaz ze do tej pory NIC nie wyslales do przegladarki i header zadziala);
jesli nie to wyswietlasz dane <wml ..... za pomoca printa()/echo lub systemu szablonow.


I wyszło mi tak:
panel.php
  1. <?php 
  2. require_once 'polaczenie.php';
  3.  
  4. $sql = "SELECT * FROM redakcja WHERE login = '" . $_POST['login'] . "' " .
  5. "AND haslo = '" . $_POST['haslo'] . "'" ; 
  6.  
  7. $result = mysql_query($sql)
  8. or die('Nie potrafię odnaleźć użytkownika: ' . mysql_error()); 
  9. $row = mysql_fetch_array($result);
  10. $_SESSION['id'] = $row['id'];
  11. $_SESSION['dostep'] = $row['dostep'];
  12. $_SESSION['login'] = $row['login'];
  13. $_SESSION['podpis'] = $row['podpis']; 
  14.  
  15. if ($_POST['login'] == $_SESSION['login'] && $_POST['haslo'] == $_SESSION['haslo'])
  16.  
  17.  
  18. {
  19.  
  20. header("Location: naglowek.php"); 
  21. }
  22.  
  23.  
  24.  
  25. ?>


Logowanie jest na stronę panel.php. Kiedy wpisuję poprawny login i hasło, to przekierowywany jestem na panel.php, a header("Location: naglowek.php"); już nie działa. A kiedy w pasku przeglądarki wpiszę http://www.koniczynka.voip24h.info/skrypt_newsow/panel.php , to przechodzi na naglowek.php . Gdzie znajduje się błąd ?


edit: Postanowiłem nie używać ani header, ani require_once i zawartość naglowek.php wkleiłem do panel.php . Wszak, chciałem zrobić to tak, jak w książce, ale nie wyszło. Dziękuję za wszelką pomoc.

Ten post edytował Koniczynka 16.06.2006, 10:36:01
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: 14.08.2025 - 07:41