[PHP][Sesje] Problem ze skryptem logowania

Dział poświęcony programowaniu w każdym języku.

[PHP][Sesje] Problem ze skryptem logowania

Postprzez ols26 » 2005-04-03, 11:45:29

MAm problem z tym kodem i nie wiem co jest nie tak.Otóż logowanie idzie oki wylogowanie chyba też ale gdy się już zaloguje i odświeże stronkę to już nie jestem zalogowany i pokazuje mi się formularz,
myśle ze
$_SESSION['user'],$_SESSION['user_pass'] nie mają wartości nie wiem czemu je nie dostały bo je im przypisałem próbowałem z session_register("user") ale nic więc spróbowałem $_SESSION['user']=$user; i też nic.Proszę o pomoc w zdiagnozowaniu błędu
Kod: Zaznacz cały
<?PHP
$user='mateusz';
$user_pass='1234';
session_start();
if((!isset($_SESSION['user']))&&(!isset($_SESSION['user_pass']))) {
echo"<table width=100% border=0 cellpadding=4 cellspacing=0>
  <tr>
    <td valign=top align=left>
      <form action=?action=loguj method=post>
        Login:<br />
        <input type=text size=10 name=user_name class=logininput />
        <br />
        Hasło:<br />
        <input type=password size=10 name=user_password class=logininput />
        <br />
        <table border=0 cellspacing=0 cellpadding=0>
          <tr valign=top>
            <td><input type=checkbox name=auto_login value=CHECKED>Automatyczne logowanie</td>
           
          </tr>
        </table>
        <br />
      <input type=submit value=Loguj class=button />
      </form>
      » <a href=login.php?action=forgot>Zapomniałem hasła</a><br />
     » <a href=login.php?action=rejestracja>Rejestracja</a></td>
  </tr>
</table>";
}else{
echo"<a href=profil.php?action=edytuj&user_id=".$row['user_id'].">Twój profil</a><br  />";
echo"<a href=?action=wyloguj&user_id=".$row['user_id'].">Wyloguj</a>";
}
if($action=='loguj'){
session_start();
//funkcja logowania
 function login($user_id, $user_password = "",$auto_login) {
 require ("admin/config.php");
$polaczenie = mysql_connect("$BAZA_HOST", "$BAZA_USER", "$BAZA_HASLO") or $BAZA_ERROR_PAGE;
mysql_select_db ("$BAZA_NAME") or $BAZA_ERROR_PAGE;
 $ip= $SERVER['REMOTE_ADDR'];
 $session_id=session_id();
    $sql = "UPDATE sessions
            SET session_user_id = '$user_id'
            WHERE session_id = '$session_id'
            AND session_ip = '$ip'";
    mysql_query($sql);

    if ($auto_login=="CHECKED") {
   setcookie("user",$user, time() + 3600 *24*30);
   setcookie("pass",$pass, time() + 3600 *24*30);
   }
    }
require ("config.php");
$polaczenie = mysql_connect("$BAZA_HOST", "$BAZA_USER", "$BAZA_HASLO") or $BAZA_ERROR_PAGE;
mysql_select_db ("$BAZA_NAME") or $BAZA_ERROR_PAGE;
$sql = "SELECT user_id, user_name, user_password
          FROM users
          WHERE user_name = '$user_name' AND user_level <> '1'";
          $wynik=mysql_query($sql);
          $row = mysql_fetch_array($wynik);

if (isset($user)) {
    if ($user_pass != "$user_password") {
      echo"Błędne hasło";
    }
    else {
login($user, $user_pass, $auto_login);
echo"<a href=profil.php?action=edytuj&user_id=".$row['user_id'].">Twój profil</a>";
echo"<a href=?action=wyloguj&user_id=".$row['user_id'].">Wyloguj</a>";

    }
 
  }
  else {
    echo"Zły Loogin";
  }
$_SESSION['user'] = $user;
$_SESSION['user_pass'] = $user_pass;
  }

if($action=='wyloguj'){
$user_id='4';
//funkcja wylogowania
function logout($s_l,$s_p) {
 require ("admin/config.php");
$polaczenie = mysql_connect("$BAZA_HOST", "$BAZA_USER", "$BAZA_HASLO") or $BAZA_ERROR_PAGE;
mysql_select_db ("$BAZA_NAME") or $BAZA_ERROR_PAGE;
    $sql = "DELETE FROM sessions
            WHERE session_user_id = $user_id";
    mysql_query($sql);
    if((isset($s_l))&&(isset($s_p)))
      {
              unset($s_l);
            unset($s_p);
            session_destroy();
  }
}

logout($_SESSION['user_name'],$_SESSION['user_password']);
echo"Wylogowany";
  }
?>


[ Dodano: 2005-04-03, 11:56 ]
Czy nikt nie jest w stanie mi pomóc z tym problemem???????????????
http://www.mateusz.aplus.pl
.:::MaTi Homepage:::.
Avatar użytkownika
ols26None specified
Początkujący
Początkujący
 
Posty: 10
Dołączył(a): 2005-04-03, 11:40:36
Lokalizacja: Staszow
Podziękował : 0 razy
Otrzymał podziękowań: 0 razy

Re: [PHP][Sesje] Problem ze skryptem logowania

Postprzez Suceed » 2005-04-03, 12:01:16

JA sie nie znam ale gzdies chyba strona powinna zapamietac ze sie zalogowales moze ciasteczka :)
Avatar użytkownika
SuceedNone specified
Weteran
Weteran
 
Posty: 7015
Dołączył(a): 2004-09-04, 15:25:09
Lokalizacja: Katowice
Podziękował : 0 razy
Otrzymał podziękowań: 0 razy

Re: [PHP][Sesje] Problem ze skryptem logowania

Postprzez traphezz » 2005-04-03, 12:03:54

Wiesz 'mistrzem' od PHP jest tutaj tylko BlueMan ;) ja tam amator jestem :P

traphezzNone specified
Weteran
Weteran
 
Posty: 5249
Dołączył(a): 2004-11-08, 17:49:22
Podziękował : 0 razy
Otrzymał podziękowań: 0 razy
Imię: Adam

Re: [PHP][Sesje] Problem ze skryptem logowania

Postprzez ols26 » 2005-04-03, 12:28:22

Ciasteczka są nie potrzebne ponieważ mechanizm sesji sam dba o to aby te ciasteczka wysłać tylko nie wiem czy użyć session_register. Cały skrypcik pisany przeze mnie działa tylko coś jest z sesjami bo nie chcą zapamiętać tej zmiennej z hasłem i z loginem i dltego po zalogowaniu i odświeżeniu pokazuje się formularz a nie menu po zalogowaniu dlatego proszę o poradę Bluemana

[ Dodano: 2005-04-03, 12:35 ]
To jesteś moderatorem forum PHP i nie umiesz dobrze PHP
http://www.mateusz.aplus.pl
.:::MaTi Homepage:::.
Avatar użytkownika
ols26None specified
Początkujący
Początkujący
 
Posty: 10
Dołączył(a): 2005-04-03, 11:40:36
Lokalizacja: Staszow
Podziękował : 0 razy
Otrzymał podziękowań: 0 razy

Re: [PHP][Sesje] Problem ze skryptem logowania

Postprzez BlueMan » 2005-04-03, 15:31:06

Kiedyś zacząłem pisać własną najbardzije rozbudowaną Księgę Gości (BlueBook Guest) ale nic z tego nie wyszło, bo nie mogłem kasować wpisów w trybie plikowym :( i rzuciłem tym wszystkiem (a naprawde wypasiona by była - zgodnośc ze standardami,możliwością kopii wpisów, dodawnaie emotek, pełna konfiguraja, kilka skinów, własne skórki, itp, itd :P)

Otworzyłem teraz plik admin.php tej księgi i takie coś ja miałem:

Kod: Zaznacz cały
<?
session_start();
if ($_POST['password']=="BlueWeb")
 {
 session_register("bluebook");
 $bluebook="X";
 }
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<html>
<head>


Kod: Zaznacz cały
<?
if (!session_is_registered("bluebook"))
   {
   echo '<P> <P>Nie jesteś zalogowany !<P><form action="admin.php" method="post">';
   echo 'Podaj hasło:<br />';
   echo '<input type="text" name="password" />';
   echo '  <input type="submit" name="submit" value="Okey">';
   echo '</form>';
   }
else

I wszystko działało dobrze :)

[ Dodano: 2005-04-03, 15:32 ]
Ogólnie oprócz tego, że zarejestrujesz sesje
Kod: Zaznacz cały
session_register("bluebook");
to musisz także jakąś zmienną przez nia przekazać - jakąkolwiek.
Kod: Zaznacz cały
$bluebook="X";
Czytaj regulamin - unikniesz wielu problemów.
Korzystajcie z załączników na forum aby pliki nie ginęły w przyszłości w zewnętrznych serwisach.
Avatar użytkownika
BlueManMale
Administrator
Administrator
 
Posty: 19105
Dołączył(a): 2004-05-26, 17:34:59
Lokalizacja: Dabrowa Górn.
Podziękował : 6 razy
Otrzymał podziękowań: 5 razy
Imię: Szymon

Re: [PHP][Sesje] Problem ze skryptem logowania

Postprzez ols26 » 2005-04-03, 18:56:30

No już sobie poradziłem z tym problemem przerobiłem jeszcze ten skrypcik aby zabierał z bazy danych login i haslo i możliwość logowania wielu użytkowników. Ale nie będę zamieszczał kodu bo to się nikomu pewnie nie przyda. A w tym było właśnie potrzebne mi session_is_registered czyli sprawdza czy jest zmienna session register
http://www.mateusz.aplus.pl
.:::MaTi Homepage:::.
Avatar użytkownika
ols26None specified
Początkujący
Początkujący
 
Posty: 10
Dołączył(a): 2005-04-03, 11:40:36
Lokalizacja: Staszow
Podziękował : 0 razy
Otrzymał podziękowań: 0 razy

Re: [PHP][Sesje] Problem ze skryptem logowania

Postprzez BlueMan » 2005-04-03, 19:01:44

ols26, mam nadzieję, że hasła w bazie przechowujesz poprzez md5(); ??

[ Dodano: 2005-04-03, 19:02 ]
jak pomogłem to daj mi Punkcik :P
Czytaj regulamin - unikniesz wielu problemów.
Korzystajcie z załączników na forum aby pliki nie ginęły w przyszłości w zewnętrznych serwisach.
Avatar użytkownika
BlueManMale
Administrator
Administrator
 
Posty: 19105
Dołączył(a): 2004-05-26, 17:34:59
Lokalizacja: Dabrowa Górn.
Podziękował : 6 razy
Otrzymał podziękowań: 5 razy
Imię: Szymon

Re: [PHP][Sesje] Problem ze skryptem logowania

Postprzez ols26 » 2005-04-03, 19:03:33

No teraz jak testuje to nie ale zamierzam to zrobić funkcja działa w 2 strony koduje i dekoduje
http://www.mateusz.aplus.pl
.:::MaTi Homepage:::.
Avatar użytkownika
ols26None specified
Początkujący
Początkujący
 
Posty: 10
Dołączył(a): 2005-04-03, 11:40:36
Lokalizacja: Staszow
Podziękował : 0 razy
Otrzymał podziękowań: 0 razy

Re: [PHP][Sesje] Problem ze skryptem logowania

Postprzez BlueMan » 2005-04-03, 19:05:35

ols26, ona nie dekoduje !! Nie ma możliwości odkodowania hasła, które jest zakodowane przez md5(); :!: Taka jest wlaśnie zaleta i idea kodowania hasła !

Znałbym Wasze hasła na forum jakby się dało :)
Czytaj regulamin - unikniesz wielu problemów.
Korzystajcie z załączników na forum aby pliki nie ginęły w przyszłości w zewnętrznych serwisach.
Avatar użytkownika
BlueManMale
Administrator
Administrator
 
Posty: 19105
Dołączył(a): 2004-05-26, 17:34:59
Lokalizacja: Dabrowa Górn.
Podziękował : 6 razy
Otrzymał podziękowań: 5 razy
Imię: Szymon

Re: [PHP][Sesje] Problem ze skryptem logowania

Postprzez ols26 » 2005-04-03, 19:07:26

Oki rozumiem ale jeśli ktoś wpisze hasło i tam zakoduje md5 to jeśli ktoś chce potem sobie w swoim profilu zmienić hasło to jak to niby zrobi
http://www.mateusz.aplus.pl
.:::MaTi Homepage:::.
Avatar użytkownika
ols26None specified
Początkujący
Początkujący
 
Posty: 10
Dołączył(a): 2005-04-03, 11:40:36
Lokalizacja: Staszow
Podziękował : 0 razy
Otrzymał podziękowań: 0 razy

Re: [PHP][Sesje] Problem ze skryptem logowania

Postprzez BlueMan » 2005-04-03, 19:27:02

Po prostu zostawiasz puste pole, aby wpisał nowe hasło. Nie ujawniasz go nikomu !!

Wyobraź sobie, że ten ktos jest w kawiarence i zapomniał sie wylogowąć - przychodzi nowy użytkownik na stanowisko i hasło ma jak na dłoni, nie musi go zmieniać nawet. :)
Co prawda mógłby zmienić, ale w ten sposób prawdziwy użytkownik i tak zmieniłby je na swoje, ponieważ nie mógłby sie logować, a jak 'haker' nie zmieni hasła to nawet nie będzie podejrzewany :P
Czytaj regulamin - unikniesz wielu problemów.
Korzystajcie z załączników na forum aby pliki nie ginęły w przyszłości w zewnętrznych serwisach.
Avatar użytkownika
BlueManMale
Administrator
Administrator
 
Posty: 19105
Dołączył(a): 2004-05-26, 17:34:59
Lokalizacja: Dabrowa Górn.
Podziękował : 6 razy
Otrzymał podziękowań: 5 razy
Imię: Szymon

Re: [PHP][Sesje] Problem ze skryptem logowania

Postprzez ols26 » 2005-04-03, 20:00:48

Można jeszcze tak zrobić że wpisz stare hasło a potem wpisz nowe jeśli stare się zgodzi to system wprowadza nowe
http://www.mateusz.aplus.pl
.:::MaTi Homepage:::.
Avatar użytkownika
ols26None specified
Początkujący
Początkujący
 
Posty: 10
Dołączył(a): 2005-04-03, 11:40:36
Lokalizacja: Staszow
Podziękował : 0 razy
Otrzymał podziękowań: 0 razy

Re: [PHP][Sesje] Problem ze skryptem logowania

Postprzez BlueMan » 2005-04-03, 20:05:07

Tak będzie najbezpieczniej. Ale i tak koduj je w md5(); :!:
Czytaj regulamin - unikniesz wielu problemów.
Korzystajcie z załączników na forum aby pliki nie ginęły w przyszłości w zewnętrznych serwisach.
Avatar użytkownika
BlueManMale
Administrator
Administrator
 
Posty: 19105
Dołączył(a): 2004-05-26, 17:34:59
Lokalizacja: Dabrowa Górn.
Podziękował : 6 razy
Otrzymał podziękowań: 5 razy
Imię: Szymon


  • Inne

Powrót do Programowanie

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 62 gości

cron