Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Dlaczego logownie nie działa pod linuksem?
bartek12421
post
Post #1





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 23.05.2008

Ostrzeżenie: (10%)
X----


Witam.
Napisałem sobie skrypt logowania, który ma się następująco:
  1. <?php
  2. function login($login, $passwd)
  3. {
  4. mysql_connect("localhost","root","");
  5. mysql_select_db("panel");
  6. $zapytanie = 'SELECT login,haslo FROM `uzytkownicy` LIMIT 0, 30 ';
  7. $wykonaj = mysql_query($zapytanie);
  8. $dane = mysql_fetch_array($wykonaj);
  9.  
  10. $login = isset($_SESSION['login']) ? $_SESSION['login'] : mysql_escape_string($_POST['login']);  //filtracja zmiennej
  11. $haslo = mysql_escape_string(md5($_POST['passwd'])); //filtracja + haszowanie hasla
  12. if($login ==''.$dane['login'].'' && $haslo ==''.$dane['haslo'].'')
  13. {
  14.    
  15.     $_SESSION["USER_AUTH"]  = True;
  16.     $_SESSION["USER_LOGIN"] = $_POST["login"];
  17.     return True;
  18.  
  19.  setcookie("log" , "log", time()+3600, "/","", 0);
  20.  header("Location: ?a=");
  21.  
  22. } else {
  23. header("Location: ?a=info_bad_log");
  24. }
  25. }
  26. ?>

Testowałem to na następującej konfiguracji:
Windows XP Professional
Apache 2
PHP 5.2.5
Wszystko działało jak należy.
Rozczarowałem się, gdy wgrałem to na właściwy serwer, gdyż tam logowanie wcale nie chce działać.
Kliknięcie buttona "zaloguj" nie powoduje ani wyświetlenia strony ?a=info_bad_log, ani zalogowania.
Konfiguracja serwera to
Linux Debian
Apache 2 oraz Lighttpd
PHP 5.2.0-8+etch13 (PHP5-CGI)


Co może być powodem tego, że skrypt nie działa na debianowym serwerze?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
bartek12421
post
Post #2





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 23.05.2008

Ostrzeżenie: (10%)
X----


Cały kod ma się tak:
logowanie_formularz.php
  1. <form action="index.php" method="post"><input type="hidden" name="page" value="login">
  2. <input type="hidden" name="<?=SESSION_NAME()?>" value="<?=SESSION_ID()?>">
  3. Login<br><input type="text" name="login" value="<?=$_POST["login"]?>"><br>
  4. Hasło<br><input type="password" name="passwd" value=""><br>
  5. <input type="submit" name="submit" value="Loguj"></form>

index.php
  1. <?
  2. include "session.php";
  3. include "admin/config.php";
  4. mysql_connect("localhost","root","");
  5. mysql_select_db("panel");
  6. ?>
  7. <html>
  8. <head>
  9. <link rel="stylesheet" type="text/css" href="style.css">
  10. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
  11. <META NAME="Language" CONTENT="pl">
  12. <META name="description" content="<? echo $opis; ?>">
  13. <META name="keywords" content="<? echo $slowa; ?>">
  14. <title><? echo $tytul; ?></title>
  15. </head>
  16. <body>
  17. <table class="glowna" width="<? echo $szerokosc_panelu; ?>">
  18. <tr><td width="<? echo $szerokosc_menu; ?>" valign="top">
  19. <?
  20. include "menu.php";
  21. ?>
  22. </td>
  23. <td valign=top>
  24. <?
  25. if($a=="") $a="wiadomosci";
  26. if(!file_exists("pages/".$a.".php"))
  27.    {
  28.    include "default.php";
  29.    }
  30.    else
  31.    {
  32.    include_once "pages/".$a.".php";
  33.    }
  34.    ?>
  35. </td></tr>
  36. </table>
  37. </body>
  38. </html>

sesion.php
  1. <?
  2. include "funkcje.php";
  3. switch ($page)
  4. {
  5.  case "login"  :
  6.                  $login  = htmlentities(substr($_POST["login"], 0, 255));
  7.                  $passwd = htmlentities(substr($_POST["passwd"], 0, 255));
  8.                  login($login, md5($passwd));
  9.                  break;
  10. }
  11. switch ($a)
  12. {
  13.  case "logout" : logout();
  14.                  break;
  15. }
  16. ?>

funkcje.php
  1. <?
  2. define("SESID", SESSION_NAME() . "=" . SESSION_ID());
  3. function login($login, $passwd)
  4. {
  5. mysql_connect("localhost","root","");
  6. mysql_select_db("panel");
  7. $zapytanie = 'SELECT login,haslo FROM `uzytkownicy` LIMIT 0, 30 ';
  8. $wykonaj = mysql_query($zapytanie);
  9. $dane = mysql_fetch_array($wykonaj);
  10.  
  11. $login = isset($_SESSION['login']) ? $_SESSION['login'] : mysql_escape_string($_POST['login']);  //filtracja zmiennej
  12. $haslo = mysql_escape_string(md5($_POST['passwd'])); //filtracja + haszowanie hasla
  13. if($login ==''.$dane['login'].'' && $haslo ==''.$dane['haslo'].'')
  14. {
  15.    
  16.    //$_SESSION['admin']='ok';  //sesja przyjmuje wartosc 'ok' gdy dane z formularza zgadzaja sie z danymi z bazy
  17.    //$_SESSION['login']=''.$dane['login'].'';
  18.      $_SESSION["USER_AUTH"]  = True;
  19.      $_SESSION["USER_LOGIN"] = $_POST["login"];
  20.      return True;
  21.  
  22.  setcookie("log" , "log", time()+3600, "/","", 0);  //tworzymy ciastko
  23.  header("Location: ?a="); //przenosimy na strone
  24.  
  25. } else {
  26. header("Location: ?a=info_bad_log"); //przenosimy na strone
  27. }
  28. }
  29. function logout()
  30. {
  31.  $_SESSION["USER_AUTH"]  = False;
  32.  $_SESSION["USER_LOGIN"] = Null;
  33. }
  34. function auth()
  35. {
  36.  return ($_SESSION["USER_AUTH"] == True);
  37. }
  38.  
  39. ?>

Dane do bazy są poprawne.
Raportowanie błędów dało taki rezultat:
Kod
[b]Notice[/b]:  Undefined index:  USER_AUTH in [b]/var/www/panel/funkcje.php[/b] on line [b]40[/b]
Go to the top of the page
+Quote Post

Posty w temacie
- bartek12421   [PHP] Dlaczego logownie nie działa pod linuksem?   12.01.2009, 14:15:18
- - Pilsener   Przyczyna pewnie nie leży w tej funkcji - daj erro...   12.01.2009, 14:20:35
- - bartek12421   Cały kod ma się tak: logowanie_formularz.php[HTML]...   12.01.2009, 14:32:40
- - erix   A masz cokolwiek w tablicy $_SESSION? Nie zmi...   12.01.2009, 16:50:02
- - bartek12421   Jak pokazuje phpinfo() to ja nawet tablicy SESSION...   19.01.2009, 14:03:45
- - erix   To nie ma być pod tym URL, co podałeś, tylko w Two...   19.01.2009, 17:28:35
- - bartek12421   [PHP] pobierz, plaintext <?phpvar_dump($_SE...   20.01.2009, 21:31:50
- - erix   Czyli problem wynika z tego, że nie jest prawidłow...   20.01.2009, 22:33:46
- - bartek12421   Usunięcie tego nic nie zmieniło. Dlaczeg...   21.01.2009, 14:33:36
- - erix   CytatPo kliknięciu "zaloguj" pomimo tego...   21.01.2009, 16:20:16
- - bartek12421   Za każdym żądaniem jest inny.   22.01.2009, 07:03:57
- - erix   To już masz winowajcę. Kodsession.cookie_path = /...   22.01.2009, 18:29:18
- - bartek12421   I to też nic nie daje, pomimo tego, że t...   23.01.2009, 18:24:01
- - erix   A var_dump" title="Zobacz w manualu PHP" target="_...   23.01.2009, 23:13:00
- - bartek12421   Tak jak pisałem wyżej - cały czasz jest to pusta t...   24.01.2009, 09:23:06
- - Zyx   Jeśli kliknięcie "Zaloguj" nic nie powod...   24.01.2009, 10:00:14
- - erix   CytatTak jak pisałem wyżej - cały czasz jest to pu...   24.01.2009, 13:42:25
- - bartek12421   Ma i nawet zapisuje sobie tutaj dane z innych skry...   24.01.2009, 16:39:56


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: 25.12.2025 - 18:27