Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Skrypt logowania - proszę o pomoc w naprawie
neneth
post 11.10.2010, 10:34:07
Post #1





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 21.06.2010

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


Witam, mam problem ze skryptem logowania. Gdy wpisuję login i hasło, zamiast przekierowania na stronę główną, pojawia się nowe okno z białym tłem i przekierowaniem do pliku login.php . Siedzię nad ty już jakiś czas, proszę więc o pomoc. Oto te pliki:

login.php

  1. $_SESSION['login']=$konto;
  2. if ($_SESSION['login'] > 0){
  3. echo "Nie jesteĹ_ zalogowany...";
  4. header("Location: strona_glowna.php");
  5. }
  6.  
  7.  
  8. if (isset($_POST['konto']) and isset($_POST['password']) )
  9.  
  10. {
  11.  
  12. require('conn.php');
  13.  
  14. $konto=mysql_real_escape_string(trim($_POST['konto']));
  15.  
  16. $password=mysql_real_escape_string(trim($_POST['password']));
  17.  
  18. if ($konto!="" and $password!="")
  19.  
  20. {
  21.  
  22. $password = sha1(md5($password));
  23.  
  24. $zapytanie="SELECT id FROM user WHERE login='$konto' and password ='$password'";
  25.  
  26. $temp=mysql_query($zapytanie) or die("WystÄ_piĹ_ bĹ_Ä_d");
  27.  
  28. $ile=mysql_num_rows($temp);
  29.  
  30. $temp=mysql_fetch_array($temp);
  31.  
  32. $id=$temp['id'];
  33.  
  34.  
  35.  
  36. if ($ile==1)
  37.  
  38. {
  39.  
  40. $_SESSION['user_id']=$id;
  41.  
  42. $_SESSION['login']=$konto;
  43.  
  44. echo('ZostaĹ_eĹ_ zalogowany. ');
  45.  
  46. }
  47.  
  48. else echo ('PodaĹ_eĹ_ zĹ_e dane. Kliknij wstecz, aby sprĂłbowaÄ_ ponownie.');
  49.  
  50. }
  51.  
  52. }
  53.  
  54.  
  55.  
  56.  


conn.php
  1.  
  2. $_SESSION['login']=$konto;
  3. if ($_SESSION['login'] > 0)
  4. {
  5. echo "Nie jesteś zalogowany...";
  6. header("Location: strona_glowna.php");
  7. }
  8. $host='localhost'; //Tu moĹźliwe Ĺźe bÄ_dziesz musiaĹ_ wpisaÄ_ innego hosta ale czÄ_sto jest to wĹ_aĹ_nie localhost
  9. $login='...............................';
  10. $haslo='...................................';
  11. $nazwaBazy='..................................';
  12. $lacz=mysql_connect($host, $login, $haslo);
  13. if ($lacz==false) {
  14.  
  15. die('Brak polaczenia z serwerem');
  16.  
  17. }
  18.  
  19. mysql_select_db($..........................................) or die(mysql_error());
  20.  


Czy mógłby mi ktoś skorygować błędy? Bardzo proszę, to dla mnie ważne.

Ten post edytował neneth 11.10.2010, 16:09:44
Go to the top of the page
+Quote Post
bmL
post 11.10.2010, 22:01:57
Post #2





Grupa: Zarejestrowani
Postów: 301
Pomógł: 25
Dołączył: 15.07.2007
Skąd: Olsztyn

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


Otwierasz sesję 3 razy session_start(); wystarczy jeden raz na samym początku... Uruchamiasz bufor wyjścia 2 razy (w pliku conn i w pliku login) to też powinno być wykonane raz.
Cytat
if ($_SESSION['login'] > 0){
echo "Nie jesteĹ_ zalogowany...";
header("Location: strona_glowna.php");
exit;
}


yyy, jeżeli login jest większy od zera (użytkownik jest zalogowany?) to otrzymuje komunikat który mówi iż nie jest zalogowany? Domyślam się że miało być że jest już zalogowany.

$_SESSION['login']=$konto; co ma robić ta linijka na początku? Skąd zawartość zmiennej $konto się bierze?

To tyle na dobry początek.


--------------------
Tutaj miał być jakiś mądry tekst. Miał być... No ale jest głupi tekst.
Go to the top of the page
+Quote Post
neneth
post 12.10.2010, 07:33:40
Post #3





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 21.06.2010

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


Witam, linijki poprawiłem i dalej nie działa, więc już nie mam pojęcia, dlaczego. Zamieszczam poprawiony kod jeszcze raz

plik conn.php

  1.  
  2.  
  3. if ($_SESSION['login'] > 0)
  4. {
  5. echo "Jesteś zalogowany...";
  6. header("Location: strona_glowna.php");
  7. }
  8. $host='localhost'; //Tu moĹźliwe Ĺźe bÄ_dziesz musiaĹ_ wpisaÄ_ innego hosta ale czÄ_sto jest to wĹ_aĹ_nie localhost
  9. $login='...........................';
  10. $haslo='.............................';
  11. $nazwaBazy='...................................';
  12. $lacz=mysql_connect($host, $login, $haslo);
  13. if ($lacz==false) {
  14.  
  15. die('Brak polaczenia z serwerem');
  16.  
  17. }
  18.  
  19. mysql_select_db($............................) or die(mysql_error());
  20.  
  21.  


plik login.php

  1.  
  2. if (isset($_POST['konto']) and isset($_POST['password']) )
  3.  
  4. {
  5.  
  6. require('conn.php');
  7.  
  8. $konto=mysql_real_escape_string(trim($_POST['konto']));
  9.  
  10. $password=mysql_real_escape_string(trim($_POST['password']));
  11.  
  12. if ($konto!="" and $password!="")
  13.  
  14. {
  15.  
  16. $password = sha1(md5($password));
  17.  
  18. $zapytanie="SELECT id FROM user WHERE login='$konto' and password ='$password'";
  19.  
  20. $temp=mysql_query($zapytanie) or die("WystÄ_piĹ_ bĹ_Ä_d");
  21.  
  22. $ile=mysql_num_rows($temp);
  23.  
  24. $temp=mysql_fetch_array($temp);
  25.  
  26. $id=$temp['id'];
  27.  
  28.  
  29.  
  30. if ($ile==1)
  31.  
  32. {
  33.  
  34. $_SESSION['user_id']=$id;
  35.  
  36. $_SESSION['login']=$konto;
  37.  
  38. echo('ZostaĹ_eĹ_ zalogowany. ');
  39.  
  40. }
  41.  
  42. else echo ('PodaĹ_eĹ_ zĹ_e dane. Kliknij wstecz, aby sprĂłbowaÄ_ ponownie.');
  43.  
  44. }
  45.  
  46. }
  47.  
  48.  
  49.  
  50.  
  51.  



Co teraz jest źle? Ciągle wyskakuje biała karta po zalogowaniu i nie ma żadnego komunikatu.
Go to the top of the page
+Quote Post
bmL
post 12.10.2010, 12:49:23
Post #4





Grupa: Zarejestrowani
Postów: 301
Pomógł: 25
Dołączył: 15.07.2007
Skąd: Olsztyn

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


Podaj więcej informacji, po wysłaniu formularza pojawia się biała strona na górze strony wpasku adresu widnieje... login.php?
Po tej białej stronie użytkownik zostaje zalogowany czy nie?


--------------------
Tutaj miał być jakiś mądry tekst. Miał być... No ale jest głupi tekst.
Go to the top of the page
+Quote Post
neneth
post 12.10.2010, 13:54:47
Post #5





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 21.06.2010

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


Po zalogowaniu nie chce mnie przenieść na stronę index.php , więc nie mam pojęcia o c teraz chodzi, a siedzę nad tym już 3 dni.

Podam teraz pliki po modyfikakcji:

plik login.php

  1.  
  2. if (isset($_POST['konto']) and isset($_POST['password']) )
  3.  
  4. {
  5.  
  6. require('conn.php');
  7.  
  8. $konto=mysql_real_escape_string(trim($_POST['konto']));
  9.  
  10. $password=mysql_real_escape_string(trim($_POST['password']));
  11.  
  12. if ($konto!="" and $password!="")
  13.  
  14. {
  15.  
  16. $password = sha1(md5($password));
  17.  
  18. $zapytanie="SELECT id FROM user WHERE login='$konto' and password ='$password'";
  19.  
  20. $temp=mysql_query($zapytanie) or die("Wystąpił błąd");
  21.  
  22. $ile=mysql_num_rows($temp);
  23.  
  24. $temp=mysql_fetch_array($temp);
  25.  
  26. $id=$temp['id'];
  27.  
  28.  
  29.  
  30. if ($ile==1)
  31.  
  32. {
  33.  
  34. $_SESSION['user_id']=$id;
  35.  
  36. $_SESSION['login']=$konto;
  37.  
  38. echo('Zostałeś zalogowany. ');
  39.  
  40. }
  41.  
  42. else echo ('Podałeś złe dane. Kliknij wstecz, aby spróbować ponownie.');
  43.  
  44. }
  45.  
  46. }
  47.  
  48.  
  49.  
  50.  
  51. ?>
  52.  
  53.  



i plik conn.php

  1.  
  2.  
  3. if ($_SESSION['login'] < 0)
  4. {
  5. echo "Jesteś zalogowany...";
  6. header("Location: index.php");
  7. }
  8. $host='localhost'; //Tu moĹźliwe Ĺźe bÄ_dziesz musiaĹ_ wpisaÄ_ innego hosta ale czÄ_sto jest to wĹ_aĹ_nie localhost
  9. $login='................................';
  10. $haslo='...................................';
  11. $nazwaBazy='.................................';
  12. $lacz=mysql_connect($host, $login, $haslo);
  13. if ($lacz==false) {
  14.  
  15. die('Brak polaczenia z serwerem');
  16.  
  17. }
  18.  
  19. mysql_select_db($..........................) or die(mysql_error());
  20.  
  21.  




Ten post edytował neneth 12.10.2010, 14:00:34
Go to the top of the page
+Quote Post
bmL
post 12.10.2010, 14:26:42
Post #6





Grupa: Zarejestrowani
Postów: 301
Pomógł: 25
Dołączył: 15.07.2007
Skąd: Olsztyn

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


ob_start wrzuć na początek login.php bo nie będziesz mógł zrobić przekierowania w tym pliku. Usuń z pliku conn.php ob_start i ob_end_flush bo Ci zatrzyma bufor w połowie drogi...
#
echo('Zostałeś zalogowany. ');
#
Logicznie rzecz biorą to tutaj powinno się znaleźć przekierowanie tak więc Header('Location: index.php');


--------------------
Tutaj miał być jakiś mądry tekst. Miał być... No ale jest głupi tekst.
Go to the top of the page
+Quote Post
neneth
post 12.10.2010, 15:09:34
Post #7





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 21.06.2010

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


Dziękuję za podpowiedź. Naprawiłam pliki, ale teraz pojawił się błąd

Parse error: syntax error, unexpected T_ELSE in /login.php on line 52

Moje pliki wyglądają teraz tak:

plik conn.php

  1.  
  2.  
  3. if ($_SESSION['login'] < 0)
  4. {
  5. echo "Jesteś zalogowany...";
  6.  
  7. }
  8. $host='localhost'; //Tu moĹźliwe Ĺźe bÄ_dziesz musiaĹ_ wpisaÄ_ innego hosta ale czÄ_sto jest to wĹ_aĹ_nie localhost
  9. $login='..............................';
  10. $haslo='..........................';
  11. $nazwaBazy='....................................';
  12. $lacz=mysql_connect($host, $login, $haslo);
  13. if ($lacz==false) {
  14.  
  15. die('Brak polaczenia z serwerem');
  16.  
  17. }
  18.  
  19. mysql_select_db($...................................) or die(mysql_error());
  20.  
  21.  



plik login.php

  1.  
  2. if (isset($_POST['konto']) and isset($_POST['password']) )
  3.  
  4. {
  5.  
  6. require('conn.php');
  7.  
  8. $konto=mysql_real_escape_string(trim($_POST['konto']));
  9.  
  10. $password=mysql_real_escape_string(trim($_POST['password']));
  11.  
  12. if ($konto!="" and $password!="")
  13.  
  14. {
  15.  
  16. $password = sha1(md5($password));
  17.  
  18. $zapytanie="SELECT id FROM user WHERE login='$konto' and password ='$password'";
  19.  
  20. $temp=mysql_query($zapytanie) or die("Wystąpił błąd");
  21.  
  22. $ile=mysql_num_rows($temp);
  23.  
  24. $temp=mysql_fetch_array($temp);
  25.  
  26. $id=$temp['id'];
  27.  
  28.  
  29.  
  30. if ($ile==1)
  31.  
  32. {
  33.  
  34. $_SESSION['user_id']=$id;
  35.  
  36. $_SESSION['login']=$konto;
  37.  
  38. echo('Zostałeś zalogowany. ');
  39.  
  40. }
  41. header('Location: index.php');
  42. else echo ('Podałeś złe dane. Kliknij wstecz, aby spróbować ponownie.');
  43.  
  44. }
  45.  
  46. }
  47.  
  48.  
  49.  
  50.  
  51.  


Teraz to ja już nie wiem, co może być jeszcze źle. Proszę o wskazanie błędów.
Go to the top of the page
+Quote Post
Ulysess
post 12.10.2010, 15:17:50
Post #8





Grupa: Zarejestrowani
Postów: 695
Pomógł: 65
Dołączył: 27.07.2009
Skąd: Y

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


pewności nie mam ale jeśli używasz else musisz użyć klamr czyli od kąd do kąd obejmuje
Go to the top of the page
+Quote Post
bmL
post 12.10.2010, 20:50:27
Post #9





Grupa: Zarejestrowani
Postów: 301
Pomógł: 25
Dołączył: 15.07.2007
Skąd: Olsztyn

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


Nie rozumiem neneth, nie znasz podstaw php a za takie rzeczy się chwytasz.
  1. if (isset($_POST['konto']) and isset($_POST['password'])) {
  2.  
  3. require('conn.php');
  4.  
  5. $konto = mysql_real_escape_string(trim($_POST['konto']));
  6.  
  7. $password = mysql_real_escape_string(trim($_POST['password']));
  8.  
  9. if ($konto != "" and $password != "") {
  10.  
  11. $password = sha1(md5($password));
  12.  
  13. $zapytanie = "SELECT id FROM user WHERE login='$konto' and password ='$password'";
  14.  
  15. $temp = mysql_query($zapytanie) or die("Wystąpił błąd");
  16.  
  17. $ile = mysql_num_rows($temp);
  18.  
  19. $temp = mysql_fetch_array($temp);
  20.  
  21. $id = $temp['id'];
  22.  
  23.  
  24.  
  25. if ($ile == 1) {
  26.  
  27. $_SESSION['user_id'] = $id;
  28.  
  29. $_SESSION['login'] = $konto;
  30.  
  31. echo('Zostałeś zalogowany. ');
  32. } else {
  33. echo ('Podałeś złe dane. Kliknij wstecz, aby spróbować ponownie.');
  34. header('Location: index.php');
  35. }
  36. }
  37. }
  38.  
  39.  
  40.  
  41.  


Ten post edytował bmL 12.10.2010, 20:51:20


--------------------
Tutaj miał być jakiś mądry tekst. Miał być... No ale jest głupi tekst.
Go to the top of the page
+Quote Post
neneth
post 13.10.2010, 11:20:29
Post #10





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 21.06.2010

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


Witam, poprawiłem pliki zgodnie ze wskazówkami. Oto one:

plik conn.php

  1.  
  2.  
  3. if ($_SESSION['login'] < 0)
  4. {
  5. echo "Jesteś zalogowany...";
  6.  
  7. }
  8. $host='localhost'; //Tu moĹźliwe Ĺźe bÄ_dziesz musiaĹ_ wpisaÄ_ innego hosta ale czÄ_sto jest to wĹ_aĹ_nie localhost
  9. $login='....................................';
  10. $haslo='........................';
  11. $nazwaBazy='..........................';
  12. $lacz=mysql_connect($host, $login, $haslo);
  13. if ($lacz==false) {
  14.  
  15. die('Brak polaczenia z serwerem');
  16.  
  17. }
  18.  
  19. mysql_select_db($...................................) or die(mysql_error());
  20.  
  21.  
  22.  


plik login.php

  1.  
  2. <?php
  3.  
  4.  
  5. if (isset($_POST['konto']) and isset($_POST['password'])) {
  6.  
  7. require('conn.php');
  8.  
  9. $konto = mysql_real_escape_string(trim($_POST['konto']));
  10.  
  11. $password = mysql_real_escape_string(trim($_POST['password']));
  12.  
  13. if ($konto != "" and $password != "") {
  14.  
  15. $password = sha1(md5($password));
  16.  
  17. $zapytanie = "SELECT id FROM user WHERE login='$konto' and password ='$password'";
  18.  
  19. $temp = mysql_query($zapytanie) or die("Wystąpił błąd");
  20.  
  21. $ile = mysql_num_rows($temp);
  22.  
  23. $temp = mysql_fetch_array($temp);
  24.  
  25. $id = $temp['id'];
  26.  
  27.  
  28. if ($ile == 1) {
  29.  
  30.  
  31.  
  32. $_SESSION['user_id'] = $id;
  33.  
  34.  
  35.  
  36. $_SESSION['login'] = $konto;
  37.  
  38.  
  39.  
  40. echo('Zostałeś zalogowany. ');
  41.  
  42. } else {
  43.  
  44. echo ('Podałeś złe dane. Kliknij wstecz, aby spróbować ponownie.');
  45.  
  46. header('Location: index.php');
  47.  
  48. }
  49.  
  50. }
  51.  
  52. }
  53.  
  54.  
  55.  
  56.  



Nie wiem, co tym razem jest źle. Proszę o odpowiedź pełną i konkretnie co gdzie mam wstawić, bo ja dopiero się uczę i chciałbym wiedzieć, jakie błędy popełniam. To co do tej pory poprawiłem zostało mi wyjaśnione na innych forach (m. in.).
Go to the top of the page
+Quote Post
nospor
post 13.10.2010, 11:31:58
Post #11





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




A czymże objawia się tym razem to "źle"?
Lektura obowiązkowa dla Ciebie:
Temat: Jak poprawnie zada pytanie


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

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: 14.08.2025 - 01:46