Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] Skrypt logowania, nie działa pod IE i Operą, Działa pod FF, Safari, Chrome
lukash82
post
Post #1





Grupa: Zarejestrowani
Postów: 320
Pomógł: 2
Dołączył: 17.03.2006
Skąd: Siemianowice

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


Witam. Zrobiłem prosty system lgowania do panelu admina na stronie tylko napotkałem dziwny problem. Logowanie nie działa pod IE i Operą. Działa pod FF, Safari i Chrome... Co może być przyczyną takiego dziwnego działania jeśli skrypt w PHP i tak jest wykonywany po stronie serwera...

Fragment formularza logowania:
  1. $rezultat=mysql_query("SELECT * FROM usery WHERE login='" . $user . "' AND pass='" . $haslo . "'") or die(mysql_error());
  2. if(@mysql_num_rows($rezultat))
  3. {
  4. $_SESSION['user'] = $user;
  5. header("location: main.php");
  6. }
  7. else
  8. {
  9. $message="Nieprawidłowa nazwa użytkownika lub hasło";
  10. }


i plik main.php
  1. if(!isset($_SESSION['user'])){
  2. header("location: index.php");
  3. }
  4. else{
  5. echo "zalogowany";
  6. }


To, że coś nie działa pod IEsyfem to mogę zrozumieć, ale pod Operą... Jeśli wiecie jak to obejść to proszę o jakieś podpowiedzi. Pozdrawiam, Łukasz
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 9)
Pawel_W
post
Post #2





Grupa: Zarejestrowani
Postów: 1 675
Pomógł: 286
Dołączył: 15.06.2009
Skąd: Wieliczka

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


Cytat
Fragment formularza logowania:


ja tu żadnego formularza nie widzę...
Go to the top of the page
+Quote Post
lukash82
post
Post #3





Grupa: Zarejestrowani
Postów: 320
Pomógł: 2
Dołączył: 17.03.2006
Skąd: Siemianowice

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


Chodziło ogólnie o plik, gdzie znajduje się formularz... wiadomo, że chodzi o inputy... Jeszcze raz posyłam tym razem cały formularz:

  1. <?php
  2.  
  3. $login=$_POST['login'];
  4. if($login)
  5. {
  6.  
  7. $user=$_POST['user'];
  8. $haslo=md5($_POST['pass']);
  9.  
  10. include ("polaczenie.php");
  11.  
  12. $rezultat=mysql_query("SELECT * FROM usery WHERE login='" . $user . "' AND pass='" . $haslo . "'") or die(mysql_error());
  13. if(@mysql_num_rows($rezultat))
  14. {
  15. $_SESSION['user'] = $user;
  16. header("location: main.php");
  17. }
  18. else
  19. {
  20. $message="Nieprawidłowa nazwa użytkownika lub hasło";
  21. }
  22. }
  23. ?>
  24. <form name="form" method="post" action="<? echo $PHP_SELF; ?>">
  25. <table class="logowanie-tab">
  26. <tr>
  27. <td class="title" colspan="2">Logowanie</td>
  28. </tr>
  29. <tr>
  30. <td class="first">Użytkownik: </td>
  31. <td class="second"><input name="user" class="one-line" type="text" /></td>
  32. </tr>
  33. <tr>
  34. <td class="first">Hasło: </td>
  35. <td class="second"><input name="pass" class="one-line" type="password" /></td>
  36. </tr>
  37. <tr>
  38. <td colspan="2" class="buttons">
  39. <input src="images/bt-loguj.gif" class="send" type="image" name="login" value="Logowanie"/>
  40. </td>
  41. </tr>
  42. </table>
  43. </form>
Go to the top of the page
+Quote Post
darko
post
Post #4





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

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


Masz włączone short_tagi, że wystarczy Ci <form name="form" method="post" action="<? echo $PHP_SELF; ?>"> zamiast <form name="form" method="post" action="<?php echo $PHP_SELF; ?>">

Napisz jeszcze co znaczy, że nie działa, nie wysyła, widzisz pustą stronę? Włącz error_reporting E_ALL i display_errors 1
// edit
i usuń tłumienie błędów.

// edit2
nie podoba mi się to:
$rezultat = mysql_query("SELECT * FROM usery WHERE login='" . $user . "' AND pass='" . $haslo . "'") or die(mysql_error());

zamień na:
  1. $rezultat = mysql_query("SELECT * FROM usery WHERE login='" . $user . "' AND pass='" . $haslo . "'");
  2. if(!$rezultat) {
  3. }



Ten post edytował darko 6.01.2010, 18:48:53
Go to the top of the page
+Quote Post
Walian
post
Post #5





Grupa: Zarejestrowani
Postów: 124
Pomógł: 1
Dołączył: 13.07.2009

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


  1. $_SESSION['user'] = $user;
  2. header("location: main.php");


Na końcu dopisz jeszcze:


No i nie masz w skrypcie zakończenia buforowania, mianowicie:


Czy to coś da - nie jestem pewien, opisz lepiej swój problem to może ktoś jeszcze wpadnie na jakiś pomysł.

Ten post edytował Walian 6.01.2010, 18:53:20
Go to the top of the page
+Quote Post
lukash82
post
Post #6





Grupa: Zarejestrowani
Postów: 320
Pomógł: 2
Dołączył: 17.03.2006
Skąd: Siemianowice

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


Witam ponownie, wyłączyłem maskowanie błędów, włączyłem error_reporting i cisza... nie działa dalej...:/ Ale chyba wiem gdzie jest błąd... tylko nie mam zbytnio pomysłu żeby go rozwiązać...

Nie wiem jak to możliwe, ale jak zrobiłem echo tej zmiennej to IE i Opera nic w nich nie widzą i dlatego skrypt wogóle nie wykonuje tego co jest w środku
  1. echo $login=$_POST['login'];
  2. if($login)
  3. {
  4.  
  5. }


Może to przez to, że guzik wysyłania jest obrazkowy...
Go to the top of the page
+Quote Post
Armstrong
post
Post #7





Grupa: Zarejestrowani
Postów: 200
Pomógł: 40
Dołączył: 26.08.2009
Skąd: Kobiernice

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


wypisz całą tablicę POST
Go to the top of the page
+Quote Post
Blame
post
Post #8





Grupa: Zarejestrowani
Postów: 678
Pomógł: 124
Dołączył: 26.09.2009

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


Możesz zamiast image zrobić zwykły submit i go ostylować w CSS. Z tego co wiem to właśnie image sprawia problemy w niektórych przeglądarkach.
Go to the top of the page
+Quote Post
blooregard
post
Post #9


Newsman


Grupa: Moderatorzy
Postów: 2 033
Pomógł: 290
Dołączył: 21.12.2007
Skąd: Łódź




~Blame ma rację.

Wszystkie pomysły na poprawę sytuacji po stronie PHP (serwera) są pozbawione sensu, bo przeglądarka nie ma tu nic do rzeczy.
Dodaj zdażenie
  1. onclick="document.forms[0].submit(); return false;"

na tym buttonie, bo problem leży po stronie klienta, a nie serwera (PHP).

Albo tak, jak sugeruje ~Blame, daj zwykłego submita.

Ten post edytował blooregard 7.01.2010, 09:11:08
Go to the top of the page
+Quote Post
lukash82
post
Post #10





Grupa: Zarejestrowani
Postów: 320
Pomógł: 2
Dołączył: 17.03.2006
Skąd: Siemianowice

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


Witam ponownie. Przerobiłem przycisk na zwykły button i ostylowałem go w CSS i działa już teraz we wszystkich przeglądarkach;) Jednak najprostsze rozwiązania chyba są najlepsze...

Dzięki za pomoc, pozdrawiam, Ł
Go to the top of the page
+Quote Post

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: 22.08.2025 - 13:47