Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> blad przy sesji
brekmar
post
Post #1





Grupa: Zarejestrowani
Postów: 76
Pomógł: 0
Dołączył: 19.01.2005

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


Mam taka funkcje
  1. session_start();
  2.  
  3. $db = @mysql_connect( 'localhost', 'root', '' ) or die( 'Nie można połączyć z bazą!' );
  4.  
  5. @mysql_select_db( 'poleceni' ) or die( 'Nie można wybrać bazy!' );
  6.  
  7. if( !isset( $_SESSION[ 'user' ] ) )
  8. {
  9.  if( isset( $_POST[ 'loginGo' ] ) )
  10.  {
  11. $dane = mysql_query( 'SELECT id,
  12.  login,
  13.  imie,
  14.  nazwisko,
  15.  email
  16. FROM users
  17. WHERE login = \"'.$_POST[ 'loginName' ].'\" AND
  18. password = \"'.md5( $_POST[ 'password' ] ).'\" LIMIT 1' );
  19.  
  20. $userData = mysql_fetch_assoc( $dane );
  21. if( $userData[ 'id' ] > 0 )
  22. {
  23.  $_SESSION[ 'user' ] = $userData;
  24.  header( 'Location: '.$_SERVER[ 'PHP_SELF' ] );
  25. }
  26. else
  27. {
  28.  echo 'Podałeś złe hasło lub login...';
  29. }
  30.  }
  31.  else
  32.  {
  33. ?>
  34. <form action=\"\" method=\"post\">
  35.  Login: <input type=\"text\" name=\"loginName\"/><br/>
  36.  Hasło: <input type=\"password\" name=\"password\"/><br/>
  37.  Login: <input type=\"submit\" name=\"loginGo\" value=\"Zaloguj\"/><br/>
  38. </form>
  39. <?php
  40.  }
  41. }
  42. else
  43. {
  44.  echo 'Jesteś zalogowany!<br/>';
  45.  print_r( $_SESSION[ 'user' ] );
  46. }


No i wyskakuje taki blad:


Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /webs/1/fbi.cz/p/poleceni/1.php:9) in /webs/1/fbi.cz/p/poleceni/1.php on line 11

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /webs/1/fbi.cz/p/poleceni/1.php:9) in /webs/1/fbi.cz/p/poleceni/1.php on line 11

No i co z tym teraz zrobic. Pomorzcie.
Go to the top of the page
+Quote Post
Diwi
post
Post #2





Grupa: Zarejestrowani
Postów: 245
Pomógł: 4
Dołączył: 22.01.2005

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


wstaw na początku skryptu linijke po znaczniku <?php
Kod
ob_start();


i na końcu skryptu linkjke przed znacznikiem ?>

Kod
ob_end_flush();


Powinno nie pokazywać błędu (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

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





Grupa: Zarejestrowani
Postów: 76
Pomógł: 0
Dołączył: 19.01.2005

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


No zrobilem tak jak napisales i mam taki skrypt
  1. ob_start();
  2. session_start();
  3.  
  4. $db = @mysql_connect( 'localhost', 'root', '' ) or die( 'Nie można połączyć z bazą!' );
  5.  
  6. @mysql_select_db( 'poleceni' ) or die( 'Nie można wybrać bazy!' );
  7.  
  8. if( !isset( $_SESSION[ 'user' ] ) )
  9. {
  10.  if( isset( $_POST[ 'loginGo' ] ) )
  11.  {
  12. $dane = mysql_query( 'SELECT id,
  13.  login,
  14.  imie,
  15.  nazwisko,
  16.  email
  17. FROM users
  18. WHERE login = \"'.$_POST[ 'loginName' ].'\" AND
  19. password = \"'.md5( $_POST[ 'password' ] ).'\" LIMIT 1' );
  20.  
  21. $userData = mysql_fetch_assoc( $dane );
  22. if( $userData[ 'id' ] > 0 )
  23. {
  24.  $_SESSION[ 'user' ] = $userData;
  25.  header( 'Location: '.$_SERVER[ 'PHP_SELF' ] );
  26. }
  27. else
  28. {
  29.  echo 'Podałeś złe hasło lub login...';
  30. }
  31.  }
  32.  else
  33.  {
  34. ?>
  35. <form action=\"\" method=\"post\">
  36.  Login: <input type=\"text\" name=\"loginName\"/><br/>
  37.  Hasło: <input type=\"password\" name=\"password\"/><br/>
  38.  Login: <input type=\"submit\" name=\"loginGo\" value=\"Zaloguj\"/><br/>
  39. </form>
  40. <?php
  41.  }
  42. }
  43. else
  44. {
  45.  echo 'Jesteś zalogowany!<br/>';
  46.  print_r( $_SESSION[ 'user' ] );
  47. }


No i juz tego bledu nie wyswietla, ale przed formularzem wyswietla

0 ) { $_SESSION[ 'user' ] = $userData; header( 'Location: '.$_SERVER[ 'PHP_SELF' ] ); } else { echo 'Podałeś złe hasło lub login...'; } } else { ?>

I jak wpisze jakies dane to nic sie nie dzieje nie loguje mnie. Co teraz (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
Go to the top of the page
+Quote Post
Diwi
post
Post #4





Grupa: Zarejestrowani
Postów: 245
Pomógł: 4
Dołączył: 22.01.2005

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


Wrzuć na samym początku skryptu <?php

Pozdrawiam
Go to the top of the page
+Quote Post
brekmar
post
Post #5





Grupa: Zarejestrowani
Postów: 76
Pomógł: 0
Dołączył: 19.01.2005

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


Kurde znowu ten blad sie wyswietlil z "cookies" tylko ze teraz jest blad linijke nizej bylo "on line 11" a teraz "on line 12" czyli ten ob_start(); nic nie pomogl, tylko zwolnil ladowanie sie strony.
Go to the top of the page
+Quote Post
Levabul
post
Post #6





Grupa: Zarejestrowani
Postów: 197
Pomógł: 0
Dołączył: 11.07.2005

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


bo
  1. <?php ob_start (); ?>
należy wrzucić zaraz przed przed !DOCTYPE(a jeżeli nie masz !DOCTYPE to zaraz przed <html>)
Go to the top of the page
+Quote Post
brekmar
post
Post #7





Grupa: Zarejestrowani
Postów: 76
Pomógł: 0
Dołączył: 19.01.2005

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


  1. ob_start();
  2. <html>
  3.  
  4. <head>
  5. <title></title>
  6. </head>
  7.  
  8. <body>
  9.  
  10. <?php
  11.  
  12.  
  13. $db = @mysql_connect( 'localhost', 'root', '' ) or die( 'Nie można połączyć z bazą!' );
  14.  
  15. @mysql_select_db( 'poleceni' ) or die( 'Nie można wybrać bazy!' );
  16.  
  17. if( !isset( $_SESSION[ 'user' ] ) )
  18. {
  19.  if( isset( $_POST[ 'loginGo' ] ) )
  20.  {
  21. $dane = mysql_query( 'SELECT id,
  22.  login,
  23.  imie,
  24.  nazwisko,
  25.  email
  26. FROM users
  27. WHERE login = \"'.$_POST[ 'loginName' ].'\" AND
  28. password = \"'.md5( $_POST[ 'password' ] ).'\" LIMIT 1' );
  29.  
  30. $userData = mysql_fetch_assoc( $dane );
  31. if( $userData[ 'id' ] > 0 )
  32. {
  33.  $_SESSION[ 'user' ] = $userData;
  34.  header( 'Location: '.$_SERVER[ 'PHP_SELF' ] );
  35. }
  36. else
  37. {
  38.  echo 'Podałeś złe hasło lub login...';
  39. }
  40.  }
  41.  else
  42.  {
  43. ?>
  44. <form action=\"\" method=\"post\">
  45.  Login: <input type=\"text\" name=\"loginName\"/><br/>
  46.  Hasło: <input type=\"password\" name=\"password\"/><br/>
  47.  Login: <input type=\"submit\" name=\"loginGo\" value=\"Zaloguj\"/><br/>
  48. </form>
  49. <?php
  50.  }
  51. }
  52. else
  53. {
  54.  echo 'Jesteś zalogowany!<br/>';
  55.  print_r( $_SESSION[ 'user' ] );
  56. }
  57.  
  58.  
  59.  
  60. ?>
  61.  
  62. </body>
  63.  
  64. </html>
  65. ob_end_flush();


Napisalem to tak, dobrze czy nie, bo nie dosc ze nie dziala to jeszcze laduje sie szmat czasu.
Go to the top of the page
+Quote Post
Levabul
post
Post #8





Grupa: Zarejestrowani
Postów: 197
Pomógł: 0
Dołączył: 11.07.2005

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


Z szacunkiem POMYŚL TROCH (IMG:http://forum.php.pl/style_emoticons/default/exclamation.gif) ! Skrypt php musi być pomiędzy <?php i ?>!!!!
  1. <?php
  2. ?>
  3. <html>
  4.  
  5. <head>
  6. <title></title>
  7. </head>
  8.  
  9. <body>
  10.  
  11. <?php
  12.  
  13.  
  14. $db = @mysql_connect( 'localhost', 'root', '' ) or die( 'Nie można połączyć z bazą!' );
  15.  
  16. @mysql_select_db( 'poleceni' ) or die( 'Nie można wybrać bazy!' );
  17.  
  18. if( !isset( $_SESSION[ 'user' ] ) )
  19. {
  20.  if( isset( $_POST[ 'loginGo' ] ) )
  21.  {
  22. $dane = mysql_query( 'SELECT id,
  23.  login,
  24.  imie,
  25.  nazwisko,
  26.  email
  27. FROM users
  28. WHERE login = \"'.$_POST[ 'loginName' ].'\" AND
  29. password = \"'.md5( $_POST[ 'password' ] ).'\" LIMIT 1' );
  30.  
  31. $userData = mysql_fetch_assoc( $dane );
  32. if( $userData[ 'id' ] > 0 )
  33. {
  34.  $_SESSION[ 'user' ] = $userData;
  35.  header( 'Location: '.$_SERVER[ 'PHP_SELF' ] );
  36. }
  37. else
  38. {
  39.  echo 'Podałeś złe hasło lub login...';
  40. }
  41.  }
  42.  else
  43.  {
  44. echo ('
  45. <form action=\"\" method=\"post\">
  46.  Login: <input type=\"text\" name=\"loginName\"/><br/>
  47.  Hasło: <input type=\"password\" name=\"password\"/><br/>
  48.  Login: <input type=\"submit\" name=\"loginGo\" value=\"Zaloguj\"/><br/>
  49. </form>
  50.  ');
  51.  }
  52. }
  53. else
  54. {
  55.  echo 'Jesteś zalogowany!<br/>';
  56.  print_r( $_SESSION[ 'user' ] );
  57. }
  58.  
  59.  
  60.  
  61. ?>
  62.  
  63. </body>
  64.  
  65. </html>
  66. <?php
  67. ?>


Ten post edytował Levabul 18.07.2005, 12:04:22
Go to the top of the page
+Quote Post
brekmar
post
Post #9





Grupa: Zarejestrowani
Postów: 76
Pomógł: 0
Dołączył: 19.01.2005

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


No w porzadku teraz juz nie pokazuje tego bledu, tylko ze wpisalem login i haslo no i zaladowala mi sie stronka z tym ze Zle haslo lub login i wyskoczyl inny blad

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /webs/1/fbi.cz/p/poleceni/1.php on line 33

O co tym razem chodzi.
Go to the top of the page
+Quote Post
Levabul
post
Post #10





Grupa: Zarejestrowani
Postów: 197
Pomógł: 0
Dołączył: 11.07.2005

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


podmień
  1. <?php
  2. $userData = mysql_fetch_assoc( $dane );
  3. ?>

na
  1. <?php
  2. while($userData = mysql_fetch_assoc( $dane )) {}
  3. ?>


oczywiście bez <?php i?> (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

Ten post edytował Levabul 18.07.2005, 12:22:25
Go to the top of the page
+Quote Post
nospor
post
Post #11





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




to nic nie da. przecież $dane jest blędne.

daj se:
  1. <?php
  2.  
  3. $dane = mysql_query( 'SELECT id,
  4.  login,
  5.  imie,
  6.  nazwisko,
  7.  email
  8. FROM users
  9. WHERE login = \"'.$_POST[ 'loginName' ].'\" AND
  10. password = \"'.md5( $_POST[ 'password' ] ).'\" LIMIT 1' ) or die (mysql_error());
  11.  
  12. ?>
Go to the top of the page
+Quote Post
brekmar
post
Post #12





Grupa: Zarejestrowani
Postów: 76
Pomógł: 0
Dołączył: 19.01.2005

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


Podlozylem te wasze poprawki i stronka mi sie juz nawet nie laduje. Ale blad chyba jest w okresleniu bazy danych. Tabela nazywa sie "logowanie" i ma pola "id", "login", "haslo". Moze to nie pasuje, sprawdzcie, bo ja nie wiem gdzie, tego skryptu nie pisalem, ja go sciaglem (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) .
Go to the top of the page
+Quote Post
nospor
post
Post #13





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




Pokaż najpierw skypt po poprawkach. Z doswiadczenia wiem że 60% osób które poprawia, poprawia źle, więc jakbyś mógł rzucić poprawiony skrypt to będzie git
Go to the top of the page
+Quote Post
crash
post
Post #14





Grupa: Przyjaciele php.pl
Postów: 2 196
Pomógł: 2
Dołączył: 17.01.2004
Skąd: Sosnowiec

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


Do autora wątku: podałem Ci wczoraj ten kod jako gotowca! Sprawdzonego i działajcego. Jedynym warunkiem do uruchomienia tego było ustawienie połączenia z bazą, utworzenie odpowiedniej bazy/tabeli i dodanie użytkownika... Nie wiem skąd te wszystkie pytania, błędy itp. Wszystko sprawdziłem i działa...
Go to the top of the page
+Quote Post
Levabul
post
Post #15





Grupa: Zarejestrowani
Postów: 197
Pomógł: 0
Dołączył: 11.07.2005

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


Cytat
Podlozylem te wasze poprawki i stronka mi sie juz nawet nie laduje. Ale blad chyba jest w okresleniu bazy danych. Tabela nazywa sie "logowanie" i ma pola "id", "login", "haslo". Moze to nie pasuje, sprawdzcie, bo ja nie wiem gdzie, tego skryptu nie pisalem, ja go sciaglem (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) .


No jasne że to ma znaczenie (IMG:http://forum.php.pl/style_emoticons/default/exclamation.gif) ! Powinno pomóc :

  1. <?php
  2. ?>
  3. <html>
  4.  
  5. <head>
  6. <title></title>
  7. </head>
  8.  
  9. <body>
  10.  
  11. <?php
  12.  
  13.  
  14. $db = @mysql_connect( 'localhost', 'root', '' ) or die( 'Nie można połączyć z bazą!' );
  15.  
  16. @mysql_select_db( 'poleceni' ) or die( 'Nie można wybrać bazy!' );
  17.  
  18. if( !isset( $_SESSION[ 'user' ] ) )
  19. {
  20.  if( isset( $_POST[ 'loginGo' ] ) )
  21.  {
  22. $dane = mysql_query( 'SELECT id,
  23.  login,
  24.  imie,
  25.  nazwisko,
  26.  email
  27. FROM logowanie
  28. WHERE login = \"'.$_POST[ 'loginName' ].'\" AND
  29. haslo = \"'.md5( $_POST[ 'password' ] ).'\" LIMIT 0, 1' ) or die (mysql_error());
  30.  
  31. while($userData = mysql_fetch_assoc( $dane )) {}
  32. if( $userData[ 'id' ] > 0 )
  33. {
  34.  $_SESSION[ 'user' ] = $userData;
  35.  header( 'Location: '.$_SERVER[ 'PHP_SELF' ] );
  36. }
  37. else
  38. {
  39.  echo 'Podałeś złe hasło lub login...';
  40. }
  41.  }
  42.  else
  43.  {
  44. echo ('
  45. <form action=\"\" method=\"post\">
  46.  Login: <input type=\"text\" name=\"loginName\"/><br/>
  47.  Hasło: <input type=\"password\" name=\"password\"/><br/>
  48.  Login: <input type=\"submit\" name=\"loginGo\" value=\"Zaloguj\"/><br/>
  49. </form>
  50.  ');
  51.  }
  52. }
  53. else
  54. {
  55.  echo 'Jesteś zalogowany!<br/>';
  56.  print_r( $_SESSION[ 'user' ] );
  57. }
  58.  
  59.  
  60.  
  61. ?>
  62.  
  63. </body>
  64.  
  65. </html>
  66. <?php
  67. ?>


Zmieniłem tylko zapytanie mysql

Ten post edytował Levabul 20.07.2005, 18:51:16
Go to the top of the page
+Quote Post
nospor
post
Post #16





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Nospor twoje zapytanie też było złe  - zamiast $_POST[ 'loginNAME' ] miało być $_POST[ 'loginGo' ] CHYBA )

Po pierwsze: to nie było moje zapytanie tylko autora. ja je skopiowalem i dorobilem wyświetlanie ewentualnego błedu
Po drugie: przecież loginGo to przyscik submit a nie login użytkownika, więc co ty za bzdury piszesz?
Go to the top of the page
+Quote Post
Levabul
post
Post #17





Grupa: Zarejestrowani
Postów: 197
Pomógł: 0
Dołączył: 11.07.2005

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


Kurde racja :/ Sorry, mój błąd. Kod poprawiony i wstawiony do mojego wcześniejszego postu.

ps. Nospor nie obrażaj się :/

Ten post edytował Levabul 18.07.2005, 20:56:21
Go to the top of the page
+Quote Post
Kas
post
Post #18





Grupa: Zarejestrowani
Postów: 425
Pomógł: 0
Dołączył: 28.05.2005
Skąd: Warszawa

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


Na marginesie. Lepiej używać

  1. <?php
  2. ob_start(&#092;"ob_gzhandler\");
  3. ?>

Jest to buforowanie wyjścia wraz z kompresją danych (przynajmniej teoretycznie).
Go to the top of the page
+Quote Post
popo
post
Post #19





Grupa: Zarejestrowani
Postów: 85
Pomógł: 0
Dołączył: 15.07.2005

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


Levabul erm tylko co przed <?php robi pusta linia ? czy to aby nie powoduje bledu ?
Go to the top of the page
+Quote Post
Levabul
post
Post #20





Grupa: Zarejestrowani
Postów: 197
Pomógł: 0
Dołączył: 11.07.2005

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


Nie ma prawa powodować błąd :/
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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: 1.10.2025 - 16:45