Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]$_GET niczy mi sesje logowania
Forum PHP.pl > Forum > Przedszkole
neotorrent
Witam
Otóż mam taki problem
Pisze mały Panel administracyjny w PHP i mam problem bo gdy wysyłam coś $_GET'em niszczy mi sesje logowania

Podaje na konkretnym przykładzie:

Plik: index2.php
  1. <?php
  2. include 'auth.php';
  3.  
  4. if ($_SESSION["zalogowany"]=="tak")
  5. {
  6. >
  7. <div id="menuleft">
  8. <img src="img/menu.png" border="0px" />
  9. <div id="menutlo">
  10. <?php include 'menu.php'; ?>
  11. </div>
  12. </div>
  13. <div id="mright">
  14. <div id="menutlor">
  15. <?php include 'srodek.php'; ?>
  16. </div>
  17. </div>
  18. <?php
  19. }
  20. else {
  21. ?>
  22. <form method="post" action="index2.php" style="padding-left: 350px; padding-top: 150px;">
  23. <p1>Login:</p1> <input type="text" name="login" class="loginput" value="Wpisz login..." onfocus="if(this.value=='' || this.value == 'Wpisz login...') this.value=''" onblur="if(this.value == '') {this.value=this.defaultValue}" onkeyup="keyUp();"><br>
  24. <p1>Hasło:</p1> <input type="password" name="haslo" class="loginput1" value="Wpisz hasło..." onfocus="if(this.value=='' || this.value == 'Wpisz hasło...') this.value=''" onblur="if(this.value == '') {this.value=this.defaultValue}" onkeyup="keyUp();"><br>
  25. <input type="image" src="img/loguj.png" onClick="this.form.submit();" class="loguj" />
  26. </form>
  27. <?php
  28. }
  29. ?>


Plik: auth.php
  1. <?
  2. require('functions.php');
  3. connect();
  4. $mysql_tabela = "dcp_admin";
  5.  
  6. // **************************************************
  7. // ********** wylogowanie i zalogowanie z ustaleniem sesji...
  8. // **************************************************
  9.  
  10. $login = $_POST["login"];
  11. $haslo = $_POST["haslo"];
  12.  
  13. if ($_GET["login"]=="koniec") { // wylogowanie
  14. } else if ($login<>"" and $haslo<>"") {
  15. $haslo = md5($haslo);
  16. $wynik=mysql_query("SELECT * FROM $mysql_tabela WHERE
  17. login='$login' and haslo='$haslo'");
  18. if (mysql_num_rows($wynik)==1) {
  19. $dane=mysql_fetch_array($wynik);
  20. $_SESSION["zalogowany"]="tak";
  21. $_SESSION["login"]=$dane["login"];
  22.  
  23.  
  24. }
  25. }
  26. ?>


Plik index.php
  1. <?
  2.  
  3. ?>
  4.  
  5. <form method="post" action="index2.php" style="padding-left: 420px; padding-top: 379px;">
  6. <input type="text" name="login" class="loginput" value="Wpisz login..." onfocus="if(this.value=='' || this.value == 'Wpisz login...') this.value=''" onblur="if(this.value == '') {this.value=this.defaultValue}" onkeyup="keyUp();"><br>
  7. <input type="password" name="haslo" class="loginput1" value="Wpisz hasło..." onfocus="if(this.value=='' || this.value == 'Wpisz hasło...') this.value=''" onblur="if(this.value == '') {this.value=this.defaultValue}" onkeyup="keyUp();"><br>
  8. <input type="image" src="img/loguj.png" onClick="this.form.submit();" class="loguj" />
  9. </form>


Plik menu.php
  1. <div id="menutloin">
  2. Dodaj Artykuł</br>
  3. </br>
  4. <img src="img/spacer.png" /></br>
  5. </br>
  6. <a href="index2.php?msg=addphoto">Dodaj Zdjęcie</a></br>
  7. </div>


Plik srodek.php
  1. <?php
  2.  
  3. if ($_GET[msg] =="addphoto"){
  4. include "addphoto.php";
  5. }
  6. else if ($_GET[msg]==""){
  7. include "start.php";
  8. }
  9.  
  10. ?>


Plik index.php to formularz do zalogowania się , index2.php to wnętrze panelu, auth.php to plik pobierający dane z bazy i ustalający sesje (w przypadku poprawnych danych daje zalogowany == tak ) menu.php to plik z bocznym panelem przycisków , a plik środek to miejsce wyświetlania się odpowiednich informacji.

Problem polega na Tym że po zalogowaniu i wciśnięciu odnośnika dodaj zdjęcie pokazuje mi się formularz logowania. Dlatego że zmienna GET wysyła nowe dane ( w index2.php jest else { formularz } ). Jak to obejść ? żeby po wysłaniu geta nadal sesja się trzymała ?
Z góry dziękuje za pomoc
hyhyhy
Że tak powiem, zmęczony jestem, ale widzę jedną dziwną rzecz

  1. if ($_GET[msg] ==

nie powinno być
  1. if ($_GET["msg"] ==
?
neotorrent
W tym przypadku nie ma to większego znaczenia działają oba sposoby
nospor
A jak wygląda pełny link do dodaj zdjęcie?

Pozatym zastosuj się do porad:
Temat: Jak poprawnie zada pytanie
neotorrent
Pełny link ?
Wszystkie pliki umiejscowione są w jednym folderze
Czyli index2.php lezy tam gdzie addphoto.php (ten plik obecnie jest pusty)
nospor
Powtarzam jeszcze raz proste pytanie:
Jak wygląda link do dodaj zdjęcie.

Przykład linku:
http://localhost/index2.php?blabla=bleble
A jak u Ciebie wygląda link?
neotorrent
http://www.mojadomena.pl/dw/panel/index2.php?msg=addphoto

O to chodziło ? smile.gif
nospor
Tak.

Zastosowałeś się do porad o które prosiłem? Podałem ci linka parę postów wcześniej
Chodzi między innymi o wyświetlanie wszystkich błędów.
neotorrent
Wywaliło coś takiego:
  1. Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home/dmx/domains/dmx.cal24.pl/public_html/dw/panel/index2.php:1) in /home/dmx/domains/dmx.cal24.pl/public_html/dw/panel/auth.php on line 2
  2.  
  3. Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/dmx/domains/dmx.cal24.pl/public_html/dw/panel/index2.php:1) in /home/dmx/domains/dmx.cal24.pl/public_html/dw/panel/auth.php on line 2
  4.  
  5. Notice: Undefined index: login in /home/dmx/domains/dmx.cal24.pl/public_html/dw/panel/auth.php on line 15


I takiego:
  1. Notice: Use of undefined constant msg - assumed 'msg' in /home/dmx/domains/dmx.cal24.pl/public_html/dw/panel/srodek.php on line 3
  2.  
  3. Notice: Undefined index: msg in /home/dmx/domains/dmx.cal24.pl/public_html/dw/panel/srodek.php on line 3
  4.  
  5. Notice: Use of undefined constant msg - assumed 'msg' in /home/dmx/domains/dmx.cal24.pl/public_html/dw/panel/srodek.php on line 6
  6.  
  7. Notice: Undefined index: msg in /home/dmx/domains/dmx.cal24.pl/public_html/dw/panel/srodek.php on line 6
  8. start
nospor
Cytat
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home/dmx/domains/dmx.cal24.pl/public_html/dw/panel/index2.php:1) in /home/dmx/domains/dmx.cal24.pl/public_html/dw/panel/auth.php on line 2
I masz swojego winowajce. Musiałem aż dwa razy prosić by dojść do jego znalezienia?

"headers already sent" ten błąd był milion razy poruszany na forum. Wystarczy użyć wyszukiwarki
neotorrent
Sorrki , http://phpedia.pl/wiki/Cannot_add_header_i...rs_already_sent czyli to powinno pomóc ?
nospor
1) Sprawdź
2) Miałeś szukać na forum a nie wiki wink.gif
3) I nie, nie pomoze, bo u ciebie chodzi zapewno o BOM.
neotorrent
No tak wina BOMu dzięki działa smile.gif
Ale jeszcze wyświetla mi się
  1.  
  2. Notice: Use of undefined constant msg - assumed 'msg' in /home/dmx/domains/dmx.cal24.pl/public_html/dw/panel/srodek.php on line 2
  3.  
  4. Notice: Undefined index: msg in /home/dmx/domains/dmx.cal24.pl/public_html/dw/panel/srodek.php on line 2
  5.  
  6. Notice: Use of undefined constant msg - assumed 'msg' in /home/dmx/domains/dmx.cal24.pl/public_html/dw/panel/srodek.php on line 5
  7.  
  8. Notice: Undefined index: msg in /home/dmx/domains/dmx.cal24.pl/public_html/dw/panel/srodek.php on line 5
  9. start


Od czego może to być ?
nospor
Juz ci przecież na samym początku pisali:
nie: msg
a: 'msg'
Toż to podstawa. Tekst ma być tekstem a nie stałą.
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.