Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2009-09-29 13:26:38

  debbie - Użytkownik

debbie
Użytkownik
Zarejestrowany: 2006-09-19

skrypt logowania php + biały ekran

Witam! mam skrypt logowania który działa prawie bez zarzutu! Na każdej podstronie mam skrypt który sprawdza było logowanie.

<?
ob_start();

    session_start();
    if($_SESSION['access'] != 'root'){
        @header ("Location:  index1.php");
    echo "";
    }

ob_end_flush();
?>

I w czym problem - wszystko fajnie sprawdza ale czasami po kliknięciu w jakąś stronę pokazuje mi się biały ekran zamiast docelowego.
Oczywiście daję w tym momencie odśwież i dopiero wskakuje. Dzieje się to sporadycznie rzadko ale się dzieje.

Zna ktoś może taki przypadek??


debbie
Wrócę jak zjem zupę i drugie danie - tyle
a oto ta zupa:

Offline

 

#2  2009-09-29 15:00:50

  tomii - Członek DUG

tomii
Członek DUG
Zarejestrowany: 2007-12-01

Re: skrypt logowania php + biały ekran

Nie znam takiego przypadku ale jeżeli nie robi przekierowanie to może sesja wygasa?

Offline

 

#3  2009-09-29 22:14:57

  kamikaze - Administrator

kamikaze
Administrator
Zarejestrowany: 2004-04-16

Re: skrypt logowania php + biały ekran

Pewnie biała strona jest wynikiem błędu. Pewnie standardowo masz je ukrywane, wiec zmień to i zobacz co wyrzuca. Nie wiem po co używasz ob w tym przypadku, wydaje się zbędne, może powoduje te problemy.

Offline

 

#4  2009-10-09 17:56:39

  jezoo - Dzięcioł

jezoo
Dzięcioł
Skąd: Z lasu
Zarejestrowany: 2005-09-02

Re: skrypt logowania php + biały ekran

ob_start nie powoduje problemu tylko blad moze byc w czyms innym, wez wywal echo ""; albo header() i zobacz jaki blad masz.


LRU #480459

Offline

 

#5  2009-10-17 11:45:42

  blinki - Użytkownik

blinki
Użytkownik
Skąd: Wschowa/Gdańsk
Zarejestrowany: 2009-04-09
Serwis

Re: skrypt logowania php + biały ekran

z tego co wiem to session_start(); powinno zawsze byc zaraz po <?
a przekierowanie zrobil bym w javie


Platforma Systemowa: Debian 5.0 lenny | KDE 4.3.2
PC: FS Amilo li 3710 | DualCore 2.0GHz/3GB/Intel GMA X4500
Przeglądarka: Opera (Firefox sux^^)

Offline

 

#6  2009-10-17 12:31:27

  kamikaze - Administrator

kamikaze
Administrator
Zarejestrowany: 2004-04-16

Re: skrypt logowania php + biały ekran

blinki napisał(-a):

z tego co wiem to session_start(); powinno zawsze byc zaraz po <?
a przekierowanie zrobil bym w javie

Koleś w jakiej javie? Java Script to nie Java!!!

Offline

 

#7  2009-10-17 15:05:04

  blinki - Użytkownik

blinki
Użytkownik
Skąd: Wschowa/Gdańsk
Zarejestrowany: 2009-04-09
Serwis

Re: skrypt logowania php + biały ekran

kamikadze no wiadomo ze java script... (przepraszam :P) wiem tak samo linux!=unix
moge dac nawet dobra linijke :)
print "<script>setTimeout('document.location = \"index1.php\"', 1);</script>";

edit
lepiej starc sie jak naj mniej urzywac przekierowan za pomoca header bo czesto sa problemy, wiem bo sam mialem podobne problemy

a a co do wygasajacych sesji to mialem przypadki konfliktow np. jesli moja sesja nazywala sie tak $_SESSION['login']=1 i jak urzywalem zminnej $login=2
to sesja przyjmowala wartosc $_SESSION['login']=2 i przy urzyciu instrukcji warunkowej otrzymywalem "false"

Ostatnio edytowany przez blinki (2009-10-17 15:12:01)


Platforma Systemowa: Debian 5.0 lenny | KDE 4.3.2
PC: FS Amilo li 3710 | DualCore 2.0GHz/3GB/Intel GMA X4500
Przeglądarka: Opera (Firefox sux^^)

Offline

 

#8  2009-10-17 17:20:06

  kamikaze - Administrator

kamikaze
Administrator
Zarejestrowany: 2004-04-16

Re: skrypt logowania php + biały ekran

blinki napisał(-a):

kamikadze no wiadomo ze java script... (przepraszam :P) wiem tak samo linux!=unix
moge dac nawet dobra linijke :)
print "<script>setTimeout('document.location = \"index1.php\"', 1);</script>";

edit
lepiej starc sie jak naj mniej urzywac przekierowan za pomoca header bo czesto sa problemy, wiem bo sam mialem podobne problemy

a a co do wygasajacych sesji to mialem przypadki konfliktow np. jesli moja sesja nazywala sie tak $_SESSION['login']=1 i jak urzywalem zminnej $login=2
to sesja przyjmowala wartosc $_SESSION['login']=2 i przy urzyciu instrukcji warunkowej otrzymywalem "false"

Ja bym jednak polecał header, nie wiem jakie można mieć z tym problemy. Mieszanie PHP z JS lepiej ograniczyć do minimum. Co do twoich "konfliktów" to tak. $_SESSION['login']=1 nie jest nazwą sesji jest to zmienna login w tablicy (asocjacyjnej) sesji, których możesz mieć wiele. Jeśli tą wartość nadpisywała zmienna $login to masz nieprawidłowo skonfigurowane PHP, zapewne włączone register globals (niezalecane). Zmienne globalne, które ssą nie powinny być używane (przykładem jest twój problem). Wyłącz to w swoim PHP, jeśli używasz nowych wersji PHP (co jest zalecane) powinno to wyłączone w konfiguracji. Zmienne globalne sprawiają wiele problemów jak takie nadpisywanie wartości jak w twoim przykładzie. Wszystkie zmienne przechowywane w globalnych tablicach asocjacyjnych stają się globalnymi  mają nazwy jak klucze w tabeli. Powodując masę problemów i nieprzewidywalne działanie aplikacji. Zuo wcielone.

Offline

 

#9  2009-10-17 19:12:12

  blinki - Użytkownik

blinki
Użytkownik
Skąd: Wschowa/Gdańsk
Zarejestrowany: 2009-04-09
Serwis

Re: skrypt logowania php + biały ekran

no to wtakim razie ostrzegam przed hostingiem linuxpl.com ^^ bo tam wytapil ten blad

a co do js+php raczej linijka przeladowujaca strone nie przeszkadza :) bo to jest jedyny fragment js w moich kodach :) bo generalnie nietrawie JS dlatego ze php skladniowo jest prostrze jak c++ krotkie funkcje a nie jak w JS czy Javie(nie to nie to samo :P) linia kodu na wydrukowanie na ekranie :P


Platforma Systemowa: Debian 5.0 lenny | KDE 4.3.2
PC: FS Amilo li 3710 | DualCore 2.0GHz/3GB/Intel GMA X4500
Przeglądarka: Opera (Firefox sux^^)

Offline

 

#10  2009-10-19 18:29:58

  jezoo - Dzięcioł

jezoo
Dzięcioł
Skąd: Z lasu
Zarejestrowany: 2005-09-02

Re: skrypt logowania php + biały ekran

@blinki, zeby cokolwiek powiedziec o czyms to chyba by pasowalo by to poznac, js ja uzywam i to w coraz wiekszym zakresie i jakos mi to nie przeszkadza.
wezmy np. AJAX, DOJO, jQUERY itp. to wszystko JS i w jakis sposob bardzo duzo serwisow uzywa to, i dzialaja poprawnie a tworcy nie podcinaja sobie zyl z tego powodu, ani uzytkownicy.

ale nie o to chodzi w tym temacie.

@debbie sprawdz najprostrza wersje logowania:

Kod:

<?php
session_start();
switch($_REQUEST['uri']){
    case "zalogowany":
        if($_SESSION['login']==true){
            echo "Jestes zalogowany";
        }else{
            $_SESSION['error'] = "Blad logowania";
            header('location: ?');
        }
    break;
    case "logowanie":
        $_SESSION['login']=true;
        header('location: ?uri=zalogowany');
    break;
    default:
        //Formularz logowania
        echo "<hr />";
        echo $_SESSION['error'];
    break;
}
?>

PS: wywal @ przed header

Ostatnio edytowany przez jezoo (2009-10-19 18:32:43)


LRU #480459

Offline

 

#11  2009-10-20 08:15:10

  kamikaze - Administrator

kamikaze
Administrator
Zarejestrowany: 2004-04-16

Re: skrypt logowania php + biały ekran

Dla blinki. Porównanie redirecta w PHP i JS. No i przykłądy jak to robić, bo używanie setTimeout w JS żeby przekierować strone to nie najelegantsze podejście.

http://www.satya-weblog.com/2009/10/php-redirect-vs … redirect.html

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Możesz wyłączyć AdBlock — tu nie ma reklam ;-)