Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Skrypt logowania - proszę o pomoc w naprawie
neneth
post
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
 
Start new topic
Odpowiedzi (1 - 10)
bmL
post
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.
Go to the top of the page
+Quote Post
neneth
post
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
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?
Go to the top of the page
+Quote Post
neneth
post
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
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');
Go to the top of the page
+Quote Post
neneth
post
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
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
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
Go to the top of the page
+Quote Post
neneth
post
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
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
Go to the top of the page
+Quote Post

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: 23.08.2025 - 14:49