Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][phpmyadmin] Błąd logowania wyłącznie na serwerze home.pl oraz domyślne null
klaudiuszozo
post
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 20.02.2010

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


Witam, przeszukałem googla, forum też i nie znalazłem odpowiedzi. Mam skrypt php który powinien mnie przepuszczać do index.php . Na serwerze OVH.pl wszystko działa jak należy, jedynie na home.pl są problemy. Wstawiam kody z headera index.php oraz auth.php. Proszę o pomoc co robić. Gdy wpiszę błędne hasło to wyskakuje błąd logowania, gdy wpiszę dobre, to nic się nie dzieje na home.pl .
index.php
  1. <?
  2. session_start(); // Na samej górze zadeklaruj sesję.
  3. if(!session_is_registered("uzytkownik")){ // Sprawdza zmienną sesji.
  4. header("location:auth.php"); // Przekierowanie do index.php
  5. }
  6.  
  7. ?>


auth.php
  1. <?
  2. $log=login;
  3. $pass=haslo;
  4.  
  5.  
  6. $message="";
  7.  
  8.  
  9. if($_POST['login']=='login')
  10. {
  11. $uzytkownik=$_POST['uzytkownik'];
  12. $haslo=$_POST['haslo'];
  13.  
  14. if($uzytkownik==$log && $haslo==$pass){
  15. session_register("uzytkownik");
  16. header("location:index.php");
  17. }
  18. else {
  19. $message="Nieprawidłowa nazwa użytkownika lub hasło";
  20. }
  21. }
  22.  
  23. ?>


Drugim ważnym problemem jest ustawiona domyślna wartość w phpmyadminie na null. Nie da jej się zmienić na not null... Nawet gdy tworze tabelę i daje wartość not null to i tak w oknie pokazuje się null. Druga sprawa. Na ovh nie ma problemu, z zapisywaniem poprzez FCKeditora do bazy danych. tutaj niestety mogę dodawać tekst jedynie poprzez edycję w phpmyadmin. Po klikniętu w zapisz nic się nie dzieje...

Z góry dzięki za pomoc.

Ten post edytował klaudiuszozo 20.02.2010, 01:50:12
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
DiH
post
Post #2





Grupa: Zarejestrowani
Postów: 251
Pomógł: 34
Dołączył: 7.01.2010

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


W takim razie nie lepiej pozostać przy OVH?

Proponuję w ciemno:
Zmienić:
  1. header("location:auth.php");
na
  1. header("Location: auth.php");

Przed session_start(), nie powinno być żadnego kodu, a więc poniższe przenieś za session_start();
  1. $log=login;
  2. $pass=haslo;


Daj znać czy pomogło.


Go to the top of the page
+Quote Post
lessi
post
Post #3





Grupa: Zarejestrowani
Postów: 89
Pomógł: 12
Dołączył: 1.12.2009

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


Cytat(DiH @ 20.02.2010, 03:46:16 ) *
Przed session_start(), nie powinno być żadnego kodu, a więc poniższe przenieś za session_start();

Niekoniecznie. Nie powinno być kodu który wyprowadza coś do przeglądarki, bo ciastko wtedy nie może zostać wysłane. Sam najpierw wczytuje moje biblioteki z funkcjami jak to zazwyczaj jest w programowaniu, a dopiero potem połączenie z bazą danych i session_start(). Więc definicja zmiennej jest dozwolona, ale niedozwolona jest np. wyrzucenie zmiennej na ekran.

Klaudiuszozo, mls chodzi o to że niektóre funkcje są już stare i powolne dlatego niektóre serwery je blokują. Zamiast
  1. if(!session_is_registered("uzytkownik"))

użyj
  1. if(empty($_SESSION("uzytkownik"))) lub if(!isset($_SESSION("uzytkownik")))

I powinno być dobrze.
Jednakże spotkałem się także z taką wersją że wtedy także nie działa. Ale jeżeli zmodyfikujesz odpowiednio skrypt logowania że niezalogowany to
  1. $_SESSION("uzytkownik")=0

a zalogowany
  1. $_SESSION("uzytkownik")=1

czyli zamiast
  1. session_register("uzytkownik")
piszesz
  1. $_SESSION("uzytkownik")=1

to na pewno powinno zadziałać. Jak dla mnie ta metoda z 0 i 1 jest łatwiejsza

Pytanie
1. Dlaczego chcesz wyświetlić mysql_error() skoro nie masz połączenia z bazą danych?

Ten post edytował lessi 21.02.2010, 20:46:04
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 8.10.2025 - 15:36