Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: przejście na strone
Forum PHP.pl > Forum > Przedszkole
bronx
witam

czemu poniższy skrypt po wpisaniu dobrego loginu i hasła nie przenosi mnie na strone admin.php questionmark.gif?

  1. <?php
  2.  
  3. require_once(&#092;"loginy.php\");
  4.  
  5. $_SESSION['login'] = $_POST['login'];
  6. $_SESSION['haslo'] = $_POST['haslo'];
  7.  
  8. if( isset( $users[ $_SESSION[ 'login' ] ] ) AND $users[ $_SESSION[ 'login' ] ] == $_SESSION[ 'haslo' ] )
  9. {
  10.  
  11. header(&#092;"Location: http://www.mojastrona.pl/admin.php\");
  12.  
  13. } 
  14.  
  15. else 
  16.  
  17. {
  18.  
  19. echo &#092;"niezalogowany\";
  20.  
  21. }
  22.  
  23. ?>
sf
Nie widze session_start(), pozatym włączyłeś obsługę błędów na E_ALL ? No i czemu nie zrobisz echo wszystkich zmiennych. Wtedy widać przeważnie co jest nie tak.
zYm3N
nie jestem pewien w 100 % ale:

a) header("Location: http://www.mojastrona.pl/admin.php"); a może lepiej admin.php ? Wiem, że to najprostrzy i najśmieszniejszy błąd, ale ja wiem ile czasu nad takowymi spędziłem snitch.gif

cool.gif session_start ?
ARJ
czemu zaczynasz nowy wątek?? w dziale php pytałeś się o to! dostałeś rade ale czekasz na łatwizne. tak jak napisał @sf niemasz session_start. potem masz błędne porównanie. masz coś takiego login && login == haslo. co to ma być?
musisz porównać hasło z sesji z hasłem z bazy danych.
ActivePlayer
  1. <?php
  2. if( isset( $users[ $_SESSION[ 'login' ] ] ) AND $users[ $_SESSION[ 'haslo' ] ] == $_SESSION[ 'haslo' ] )
  3. ?>

moze tak ?
ARJ
ja mam coś takiego:
  1. <?php
  2. include(&#092;"connect.php\"); //połączene z bazą
  3. $_SESSION[&#092;"login\"] = strtolower(trim($_POST['login']));
  4. $_SESSION[&#092;"haslo\"] = md5(trim($_POST['haslo']));
  5. $users=mysql_query(&#092;"SELECT * FROM users WHERE login='$_SESSION[login]'\");
  6. $user=mysql_fetch_array($users);
  7. if($_SESSION[&#092;"haslo\"] == $user[\"haslo\"] && $_SESSION[\"login\"] == strtolower($user[\"login\"]) && $user[\"poziom\"] == \"3\"){
  8. header(&#092;"Location: frame.php\"); exit;
  9. }else{
  10. echo &#092;"Niezalogowany!\";
  11. }
  12. ?>
bronx
Cytat(ARJ @ 2004-11-01 10:23:05)
czemu zaczynasz nowy wątek?? w dziale php pytałeś się o to! dostałeś rade ale czekasz na łatwizne. tak jak napisał @sf niemasz session_start. potem masz błędne porównanie. masz coś takiego login && login == haslo. co to ma być?
musisz porównać hasło z sesji z hasłem z bazy danych.

tam nie dostałem żadnej rady odnośnie tego, tamten wątek był troche o czym innym... Hasła są w pliku txt, a nie w bazie danych...

session_start również jest, tylko że na początk stronu i tutaj zapomniałem tego wkleić smile.gif

nie pokazuje żadnych błęów...

po wstawieniu samego header("Location: admin.php"); tez nie przenosi

ten skrypt jest wstawiony w srodku calego otoczenia strony...

  1. <?php
  2. ?>
  3.  
  4. //caly html, pare include
  5.  
  6. <?php
  7.  
  8. require_once(&#092;"loginy.php\");
  9.  
  10. $_SESSION['login'] = $_POST['login'];
  11. $_SESSION['haslo'] = $_POST['haslo'];
  12.  
  13. if( isset( $users[ $_SESSION[ 'login' ] ] ) AND $users[ $_SESSION[ 'login' ] ] == $_SESSION[ 'haslo' ] )
  14. {
  15.  
  16. header(&#092;"Location: admin.php\");
  17.  
  18. } 
  19.  
  20. else
  21.  
  22. { 
  23.  
  24. echo &#092;"niezalogowany\";
  25. }
  26. ?>
  27.  
  28. //dalsza czesc strony, i kolejny include :)


o co tu jeszcze może chodzić questionmark.gif
sf
Stary, a co to jest ta tablica $users? Rozpisz to tak:
  1. <?php
  2.  
  3. if(!isset( $users[ $_SESSION[ 'login' ] ] )) {
  4. echo '1. tu jest blad';
  5. }
  6. elseif($users[ $_SESSION[ 'login' ] ] != $_SESSION['haslo'] ) {
  7. echo '2. ojej, tu jest blad<br />';
  8. echo $users[$_SESSION['login']].' - user, haslo - ';
  9. echo $_SESSION['haslo'];
  10. }
  11. else {
  12. echo 'jest ok, chodz sie to nie wyswietli zapewne';
  13. }
  14.  
  15. ?>


chyba sie nigdzie nie walnolem ;]
bronx
Cytat(sf @ 2004-11-01 16:30:19)
Stary, a co to jest ta tablica $users? Rozpisz to tak:
  1. <?php
  2.  
  3. if(!isset( $users[ $_SESSION[ 'login' ] ] )) {
  4.     echo '1. tu jest blad';
  5. }
  6. elseif($users[ $_SESSION[ 'login' ] ] != $_SESSION['haslo'] ) {
  7.     echo '2. ojej, tu jest blad<br />';
  8.     echo $users[$_SESSION['login']].' - user, haslo - ';
  9.     echo $_SESSION['haslo'];
  10. }
  11. else {
  12.     echo 'jest ok, chodz sie to nie wyswietli zapewne';
  13. }
  14.  
  15. ?>


chyba sie nigdzie nie walnolem ;]

tak wygląda plik z hasłami... więc jak to poprawić ? zmienić te warunki czy inaczej zapisywac loginy i hasła ?

loginy.php:

  1. <?php 
  2.  
  3. $users['bronx'] = 'haselko';
  4. $users['test'] = 'test';
  5. $users['krzysiek'] = 'php';
  6. //itd
  7. ?>
sf
Daj mi wynik działania tego co napisałem tongue.gif To Ci może powiem ;]
bronx
Cytat(sf @ 2004-11-01 17:05:52)
Daj mi wynik działania tego co napisałem tongue.gif To Ci może powiem ;]

"jest ok, chodz sie to nie wyswietli zapewne" smile.gif

no dobra to więc jak powienienm to wszystko pozmienać ? blink.gif

i najażniejsze dlaczego nie przenosi mnie na strone admin.php questionmark.gif

jak to wszystko ma wygladać ?
sf
No i good. Tzn. ze wszystko jest ok.

Cytat
  1. <?php
  2. ?>
  3.  
  4. //caly html, pare include


Hm, a pamietasz, ze header nalezy wysylac przed trescia HTML ? Czyli jak wyslesz juz np "<table>" to nie mozesz wyslac potem header? ;]

Tylko wtedy powinno Ci wyskoczyć ostrzeżenie, np. takie:

Cytat
Warning: Cannot modify header information - headers already sent by (output started at D:\www\test\cos.php:2) in D:\www\test\cos.php on line 21


Dlatego napisałem, abyś ustawił obsługę błędów na E_ALL ... to jest w php.ini.
bronx
no właśnie wiem i nie bardzo wiem jak teraz z tego wybrnąc... dokładnie o co mi chodzi znajdziesz tu:

http://forum.php.pl/index.php?showtopic=22382

pozdrawiam
sf
Eh, należy inaczej skonstruować skrypt. Kłania się planowanie.

Najpierw sprawdzasz czy ma iść gdzie indziej. Potem wyświetlasz stronę.

Ty chcesz zrobić tak: wyświetlasz stronę (cześć kodu poszła), a potem chcesz iść do strony innej (używając location). I to wszystko jest w jednym jakby odświeżeniu strony!

Jak ma zareagować serwer? Dwie naraz wyświetlić? Bez sensu!
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.