Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] Sesje, wiem ze jest mnostwo takich tematow
Dandelion
post 17.11.2006, 23:50:17
Post #1





Grupa: Zarejestrowani
Postów: 169
Pomógł: 0
Dołączył: 27.01.2006

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


Przeczytalem kilka tematow odnosnie sesji jednak nie znalazlem odpowiedzi na moj problem dlatego postanowilem napisac nowy temat


Dopiero zaczelem uczyc sie obslugiwac sesje. W ramach tej nauki stworzylem prosty skrypt

  1. <?php
  2.  
  3.  
  4. function loguj(){
  5.  
  6.  
  7.  
  8.  
  9. if($_SESSION['logged'] < 1){
  10.  
  11. <form action="sesje.php" method="post">
  12. <fieldset>
  13. <label>Login</label>
  14. <input type="text" name="login"/>
  15. <label>Haslo</label>
  16. <input type="password" name="haslo"/>
  17. <label></label>
  18. <input type="submit" name="wyslij"/>
  19. </fieldset>
  20. </form>
  21.  
  22.  
  23. ";
  24.  
  25. }
  26.  
  27.  
  28.  
  29.  
  30.  
  31. if(isset($_POST['wyslij'])){
  32.  
  33. if($_POST['login'] == cos && $_POST['haslo']= tam){
  34. $_SESSION['logged'] = 1;
  35.  
  36.  
  37. }
  38.  
  39. else {
  40. echo "podales zly login lub haslo";
  41. }
  42.  
  43. }
  44.  
  45. if($_SESSION['logged'] == 1) {
  46.  
  47.  
  48.  
  49. echo "dziala";
  50.  
  51.  
  52.  
  53. }
  54.  
  55.  
  56. };
  57.  
  58. loguj();
  59. ?>




logowanie dziala poprawnie jednak po zalogowaniu dalej widnieje formularz logowania

na samym poczatku jest warunek if($_SESSION['logged'] < 1){

zdaje sobie sprawe z $_SESSION['logged'] jeszcze nie istnieje i dlatego jest on wyswietlany

jednak kiedy skrypt dochodzi do kona

$_SESSION['logged'] ma juz wartosc 1

probowalem uzyc naglowka
header( 'Location: http://localhost/projekt/blog/source/sesje.php');

jednak w ie wtedy skrypt wykonuje sie jakies 2-3 minuty

kiedy daje

header('Location: 1 ; URL= http://localhost/projekt/blog/source/sesje.php')

wtedy strona odswierza sie co sekunde i skrypt dziala dobrze jednak te odswierzanie winksmiley.jpg
Go to the top of the page
+Quote Post
myth
post 18.11.2006, 00:03:10
Post #2





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 25.09.2006

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


Może po prostu zamień miejscami.. snitch.gif
  1. <?php
  2. if(isset($_POST['wyslij']))
  3. {
  4. if($_POST['login'] == cos && $_POST['haslo']= tam)
  5.  {
  6. $_SESSION['logged'] = 1;
  7. }
  8. else
  9. {
  10.  echo "podales zly login lub haslo";
  11. }
  12.  }
  13.  
  14. if($_SESSION['logged'] == 1) 
  15. echo "dziala";
  16.  
  17. if($_SESSION['logged'] < 1)
  18. {
  19.  
  20. <form action="sesje.php" method="post">
  21. <fieldset>
  22. <label>Login</label>
  23. <input type="text" name="login"/>
  24. <label>Haslo</label>
  25. <input type="password" name="haslo"/>
  26. <label></label>
  27. <input type="submit" name="wyslij"/>
  28. </fieldset>
  29. </form>
  30.  ";
  31.  }
  32. ?>
Go to the top of the page
+Quote Post
Dandelion
post 18.11.2006, 00:11:18
Post #3





Grupa: Zarejestrowani
Postów: 169
Pomógł: 0
Dołączył: 27.01.2006

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


wiedzialem ze to jakis durny problem haha.gif
Go to the top of the page
+Quote Post
skowron-line
post 18.11.2006, 10:31:29
Post #4





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

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


  1. <?php
  2. if($_SESSION['logged'] == 1) {
  3. ?>

zamiast tego daj
  1. <?php
  2. if(isset($_SESSION['logged'] )) {
  3. ?>


--------------------
I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy.

QueryBuilder, Mootools.net, bbcradio1::MistaJam
http://www.phpbench.com/
Go to the top of the page
+Quote Post
Dandelion
post 19.11.2006, 01:07:29
Post #5





Grupa: Zarejestrowani
Postów: 169
Pomógł: 0
Dołączył: 27.01.2006

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


zmienilem ten fragment na

  1. <?php
  2. if($_POST['login'] && $_POST['haslo'])
  3. {
  4.  
  5. $query = ("SELECT *
  6.  FROM users
  7.  WHERE login = '".$_POST['login']."' AND haslo = '" . md5($_POST['haslo']) ."' ");
  8.  
  9. $result = mysql_query($query) or die(mysql_error());
  10. $num = mysql_num_rows($result);
  11.  
  12. if($num == 1){
  13.  
  14. $_SESSION['logged'] = 1;
  15. }
  16.  
  17. else
  18. {
  19. echo "podales zly login lub haslo";
  20. }
  21. ?>


No i logowanie nie dziala winksmiley.jpg

blad lezy w tej linijce WHERE login = '".$_POST['login']."' AND haslo = '" . md5($_POST['haslo']) ."'

pewnie jakos krzywo uzylem funkcji md5

Cytat(skowron-line @ 18.11.2006, 10:31:29 ) *
  1. <?php
  2. if($_SESSION['logged'] == 1) {
  3. ?>

zamiast tego daj
  1. <?php
  2. if(isset($_SESSION['logged'] )) {
  3. ?>


Chcialbym wiedziec czemu akurat tak

nobo ten drugi warunek bedzie sprawdzal czy istnieje $_SESSION['logged']

a ten pierwszy czy $_SESSION['logged'] przyjelo wartosc 1

Pewnie chodzi o bezpieczenstwo jednak wolalbym wiedziec dokladnie winksmiley.jpg

ps: szukalem odpowiedzi do pierwszego problemu z funkcja md5 niestety wyszukiwarka przyjmuje tylko wyrazy przynajmniej czteroliterowe. akurat pod haslem suma kontrolna nic ciekawego nie znalazlem haha.gif


EDIT 1:

problem 1 rozwiazany

w bazie danych pole przechowujace hasla mialo tylko 20 miejsc na zapis a jak wiadomo md5 generuje 32 bitowy hash

dlatego skrypt nie dzialal bo probowal porownac

4d00d79b6733c9cc066584a02ed03410 wygenerowanym przez skrypt i

4d00d79b6733c9cc0665 znajdujacym sie w bazie

smile.gif

ps: jeszcze pomecze forum "przedszkole" przez pare tygodni i moze wkoncu skoncze swoja strone :]

Dzieki serdeczne za cala pomoc jaka tutaj otrzymalem do tej pory

Ten post edytował Dandelion 19.11.2006, 01:50:34
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 16.07.2025 - 17:34