Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MySQL]Cos nie tak ze skryptem logowania
paffcio87
post
Post #1





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 26.02.2008

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


Witam chciałbym się Was poradzić w jednej sprawie. Szukałem podobnego tematu na forum ale nie znalazłem nic żadnego, który opisywałby mój problem, znalazłem jedynie taki, gdzie problemem było to, że użytkownika logowało bez względu na to co wpisał do formularza rejestracyjnego, ale u mnie to chyba jest coś innego. Więc do rzeczy:
Otóż mam taki oto kod formularza logowania:
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
  2. <HTML>
  3. <HEAD>
  4. <META NAME="generator" CONTENT="HTML Tidy for Windows (vers 14 sierpien 2002), see www.w3.org">
  5. <META HTTP-EQUIV="Content Type" CONTENT="text/html;charset=iso-8859-2">
  6.  <TITLE>
  7. Logowanie
  8. </TITLE>
  9. <LINK REL="stylesheet" HREF="Style.css" TYPE="text/css">
  10.  
  11. <TABLE>
  12. <TR>
  13.  <TD>
  14.  <?php
  15. include("./menu.inc");
  16.  ?>
  17.  </TD>
  18.  <TD>
  19.  <form action="login.php" method="POST">
  20. <LEGEND>
  21.  <H2>
  22.  Podaj dane swojego konta:</H2>
  23. </LEGEND>
  24.  <p>Nazwa użytkownika: <input type= "text" name= "login" size="15" maxlengh= "10"></p>
  25.  <p>Hasło: <input type= "password" name= "haslo" size= "25" maxlength= "20"></p>
  26.  <div align="left"><input type= "submit" name= "submit" value="Zaloguj!">
  27.  </TD>
  28. </TR>
  29. </TABLE>
  30. </BODY>
  31. </HTML>

oraz taki skrypt logowania:
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
  2. <HTML>
  3. <HEAD>
  4. <META NAME="generator" CONTENT="HTML Tidy for Windows (vers 14 sierpien 2002), see www.w3.org">
  5. <META HTTP-EQUIV="Content Type" CONTENT="text/html;charset=iso-8859-2">
  6.  <TITLE>
  7. Witam
  8. </TITLE>
  9. <LINK REL="stylesheet" HREF="Style.css" TYPE="text/css">
  10. <?php
  11.  
  12. if(isset($_POST['submit'])) {
  13. $message= NULL;
  14.  if(empty($_POST['login'])) {
  15.  $login= FALSE;
  16.  $message .= '<p><font color= "#FF0000">Podaj login!!</font></p>';
  17.  } else {
  18.  $login= $_POST['l'];
  19.  }
  20.  if(empty($_POST['haslo'])){
  21.  $haslo= FALSE;
  22.  $message .= '<p><font color= "#FF0000">Podaj haslo!!</font></p>';
  23.  } else {
  24.  $haslo= $_POST['haslo'];
  25.  }
  26.  if($login && $haslo) {
  27.  $connection= @mysql_connect('localhost', 'Pawel', 'test');
  28.  @mysql_select_db('klasowa', $connection);
  29.  $query= "SELECT count(*) FROM userzy WHERE login= '$login' AND haslo= '$haslo'";
  30.  $result= @mysql_query ($query);
  31.  if (login== $l && haslo== $haslo ) {
  32.  $message .="Zostales zalogowany";
  33. $row= mysql_fetch_array($result, MYSQL_NUM);
  34.  
  35. setcookie('imie', $row[1]);
  36. setcookie ('nazwisko', $row[2]);
  37. header ("location: witaj.php");
  38.  
  39. mysql_close($connection);
  40. exit();
  41. } else{
  42. $message .='<p><font color= "#FF0000">Twój login i hasło nie zgadzają się z danymi wprowadzonymi podczas rejestracji!!</font></p>';
  43. }
  44.  } else {
  45.  $message .='<p><font color= "#FF0000">Musisz podać swoje dane, aby się zalogować</font></p>';
  46. }
  47. } else {
  48. if (isset($message)) {
  49. echo "$message";
  50. }
  51. }
  52. ?>
  53. </body>
  54. </html>

Otóż mój problem polega, na tym, że gdy wcisnę przycisk "Wyślij" niby wszystko ok i przekierowuje mnie na stronę"Witaj", ale jest ona pusta tzn. nie wyświetlają się na niej żadne komunikaty typu "Podaj swoje hasło" itp. Nie jestem bardzo zaawansowanym skrypciarzem, a taki skrypt, który loguje użytkowników w ogóle piszę pierwszy raz dlatego liczę na Wasz a pomoc :-)
Do Administracji

Proszę o niezamykanie tematu, ale o ewentualną jego poprawę jeśli coś jest nie tak..Męczę się nad tym skryptem już kilka dni i nic nie mogę wykombinować sadsmiley02.gif . Byłbym wdzięczny.

Ten post edytował paffcio87 28.02.2008, 00:15:32


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

Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 13)
John
post
Post #2





Grupa: Zarejestrowani
Postów: 107
Pomógł: 11
Dołączył: 1.08.2007
Skąd: Poland,Warsaw

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


Zastanawiają mnie te spacje w formularzu po atrybucie name. Pozbądź się ich i spróbuj jeszcze raz. Aha a na przyszłość proponuję Ci dodawać takie rzeczy jak zrzuty danych wtedy widzisz czy one w ogóle są ;-)

Inaczej mówiąc zrzuć sobie np:
  1. <?php
  2. print_r($_POST);
  3. ?>


w pliku login.php no i w witaj.php. Zobacz co Ci wyjdzie jak się wszystko zgadza to szukamy dalej ;-)


--------------------
Odpowiedź na wszystko : manual,appendix. Ulubiona książka : PHP 5 for Dummies.
Studia uh ? ;-).
Go to the top of the page
+Quote Post
plurr
post
Post #3





Grupa: Zarejestrowani
Postów: 175
Pomógł: 12
Dołączył: 28.06.2007
Skąd: Bytom

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


  1. <?php
  2. $login= $_POST['l'];
  3. ?>


a to do czego sluzy ? W formularzu nie masz takiego atrybutu.

Ten post edytował plurr 28.02.2008, 07:24:20


--------------------
Wyobraźnia bez wiedzy może stworzyć rzeczy piękne.
Wiedza bez wyobraźni najwyżej doskonałe.

Albert Einstein
Go to the top of the page
+Quote Post
paffcio87
post
Post #4





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 26.02.2008

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


Niestety żadene z tych porad nie pomogło :-(. Jeżeli chodzi o post John'a to wywala mi błąd, że jest niezdefiniowana funkcja. Plurr napisał natomiast, że nie wie do czego sluży to:
  1. <?php
  2. $login= $_POST['l'];
  3. ?>

No więc chodzilo mi o to żeby przypisać to co wpisze użykownik do pola "login" do tablicy $_POST['l'], żeby później było prościej napisać zapytanie do sql'a, zmieniłem to ale też nie działa :-/ A jeśli chodzi o odstpy w atrybutach w formularzu robie je już odruchowo, ale to w niczym nie przeszkadza w rejestracji zrobiłem tak samo i jest wszystko ok. Dzięki za porady, ale niestety jak już mówiłem żadna z nich nie okazała się skuteczna. Już nie wiem co jest źle w tym skrypcie worriedsmiley.gif


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

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





Grupa: Zarejestrowani
Postów: 561
Pomógł: 75
Dołączył: 19.08.2004
Skąd: Wrocław

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


Cytat(John @ 28.02.2008, 03:54:29 ) *
Zastanawiają mnie te spacje w formularzu po atrybucie name. Pozbądź się ich i spróbuj jeszcze raz. Aha a na przyszłość proponuję Ci dodawać takie rzeczy jak zrzuty danych wtedy widzisz czy one w ogóle są ;-)

Inaczej mówiąc zrzuć sobie np:
  1. <?php
  2. print_r($_POST);
  3. ?>


w pliku login.php no i w witaj.php. Zobacz co Ci wyjdzie jak się wszystko zgadza to szukamy dalej ;-)


John na ma rację, wrzuć print_r($_POST); w linijkę nr 11. I daj znać, co Ci wywali w skrypcie.


--------------------
Idąc po czyichś śladach, nie zajdziesz ani kroku dalej...
Go to the top of the page
+Quote Post
paffcio87
post
Post #6





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 26.02.2008

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


Ok dodałem tą linijkę w kodzie i po wpisaniu prawidłowego hasła i loginu wyskoczyło mi takie coś:
Kod
Array  (      [login] => pawel      [haslo] => test      [submit] => Zaloguj!  )

Chodziło o coś takiego? :-)

Ten post edytował paffcio87 29.02.2008, 00:10:25


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

Go to the top of the page
+Quote Post
krzysiekk
post
Post #7





Grupa: Zarejestrowani
Postów: 155
Pomógł: 17
Dołączył: 13.03.2006
Skąd: Jaworze

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


witam mam pytanie co to robi ?
  1. <?php
  2. if($login && $haslo)
  3. ?>
Go to the top of the page
+Quote Post
Grzyw
post
Post #8





Grupa: Zarejestrowani
Postów: 561
Pomógł: 75
Dołączył: 19.08.2004
Skąd: Wrocław

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


Cytat(paffcio87 @ 28.02.2008, 23:35:29 ) *
Ok dodałem tą linijkę w kodzie i po wpisaniu prawidłowego hasła i loginu wyskoczyło mi takie coś:
Kod
Array  (      [login] => pawel      [haslo] => test      [submit] => Zaloguj!  )

Chodziło o coś takiego? :-)


Dokładnie o to. Czyli dane z formularza idą prawidłowo do skryptu.
Tym razem Plurr ma rację. Zamień
  1. <?php
  2. $login= $_POST['l'];
  3. ?>


na:
  1. <?php
  2. $login= $_POST['login'];
  3. ?>


bo masz w formularzu pole o nazwie login, a nie l.


--------------------
Idąc po czyichś śladach, nie zajdziesz ani kroku dalej...
Go to the top of the page
+Quote Post
paffcio87
post
Post #9





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 26.02.2008

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


Chodziło mi o to, żeby sprawdzić czy pola formularza zostały wypełnione jeśli tak to łączę sie z bazą i sprawdzam czy dane wprowadzone do formularza zgadzają sie z tymi w bazie. Przynajmniej takie było moje założenie, ale jak już mówiłem taki skrypt pisałem pierwszy raz więc na pewno coś sknociłem i nie wiem co..., a jeśli chodzi o to $login i $l już to pozmieniałem- wszędzie gdzie było $l zamieniłem na $login i dalej lipa. Może pokazać skrypt rejestracji?

Ten post edytował paffcio87 29.02.2008, 00:33:29


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

Go to the top of the page
+Quote Post
krzysiekk
post
Post #10





Grupa: Zarejestrowani
Postów: 155
Pomógł: 17
Dołączył: 13.03.2006
Skąd: Jaworze

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


cyt" Chodziło mi o to, żeby sprawdzić czy pola formularza zostały wypełnione"

ale to robisz juz tu
  1. <?php
  2. if(empty($_POST['login']))
  3. ?>


i wlasciwie po tym sprawdzeniu lub sprawdzeniu hasla powinienes przerwac petle if i dac komunikat ze sa puste ,
a jesli sa wypelnione to nawizac polaczenia z baza
Go to the top of the page
+Quote Post
erugio
post
Post #11





Grupa: Zarejestrowani
Postów: 51
Pomógł: 0
Dołączył: 17.09.2007

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


Chyba chodzi ci o jakiś prosty skrypt do logowania, ja najczęściej używam takiego, jest prosty, ale funkcjonalny i w miarę bezpieczny.

Kod
<?php

if($login = $_POST[login]) //jeśli pole login zostanie wypełnione
{
$haslo = md5($_POST[haslo]); //tutaj, jeśli hasło w bazie szyfrujesz md5
$zapytanie = "SELECT pass FROM tabela WHERE id='$login' "; zapytanie do mysql
$wykonaj = mysql_query ($zapytanie); //wykonanie zapytania
$wiersz = mysql_fetch_array($wykonaj); //wyciągnięcie hasła z tabeli do zmiennej

  if($wiersz['pass'] == $haslo) //jeśli hasło z bazy równa się hasłu wprowadzonemu podczas logowania
            {
jeśli wszszytko ok, to to!
            }
else
{
echo "Niepoprawne logowanie";
}
}
else
{
tutaj formularz logowania (login i haslo).

}

?>


Mam nadzieje, że się przyda.

Ten post edytował erugio 29.02.2008, 00:38:39
Go to the top of the page
+Quote Post
paffcio87
post
Post #12





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 26.02.2008

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


Przerobiłem troszkę ten skrypt i teraz wygląda on następująco:
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
  2. <HTML>
  3. <HEAD>
  4. <META NAME="generator" CONTENT="HTML Tidy for Windows (vers 14 sierpien 2002), see www.w3.org">
  5. <META HTTP-EQUIV="Content Type" CONTENT="text/html;charset=iso-8859-2">
  6.  <TITLE>
  7. Logowanie
  8. </TITLE>
  9. <LINK REL="stylesheet" HREF="Style.css" TYPE="text/css">
  10. <BODY>
  11. <?php
  12.  /*print_r($_POST);*/
  13. if(isset($_POST['submit'])) {
  14. $message= NULL;
  15.  if(empty($_POST['login'])) {
  16.  $login= FALSE;
  17.  $message .= '<p><b><font color= "#FF0000">Podaj login!!</font></b></p>';
  18.  } else {
  19.  $login= $_POST['login'];
  20.  }
  21.  if(empty($_POST['haslo'])){
  22.  $haslo= FALSE;
  23.  $message .= '<p><b><font color= "#FF0000">Podaj hasło!!</font></b></p>';
  24. } else {
  25.  $haslo= $_POST['haslo'];
  26.  }
  27.  if($login && $haslo) {
  28.  $connection= @mysql_connect('localhost', 'Pawel', 'test');
  29.  @mysql_select_db('klasowa', $connection);
  30.  $query= "SELECT * FROM userzy WHERE login= '$login' AND haslo= '$haslo'";
  31.  $result= @mysql_query ($query);
  32.  echo mysql_error(); }
  33.  if ($_POST['login']== login && $_POST['haslo']== haslo ) {
  34.  
  35. $row= mysql_fetch_array($result, MYSQL_NUM);
  36.  
  37.  setcookie('imie', $row[1]);
  38. setcookie ('nazwisko', $row[2]);
  39.  header ("location: witaj.php");
  40.  mysql_close($connection);
  41.  
  42.  exit();
  43.  $message .="Zostales zalogowany";
  44. } else {
  45. $message .='<p><b><font color= "#FF0000">Twój login i hasło nie zgadzają się z danymi wprowadzonymi podczas rejestracji!!</font></b></p>';
  46.  }
  47. } else {
  48.  $message .='<p><b><font color= "#FF0000">Musisz podać swoje dane, aby się zalogować</font></b</p>';
  49.  
  50. }
  51. if (isset($message)) {
  52. echo "$message";
  53. }
  54. ?>
  55. </body>
  56. </html>

I teraz wyświetla mi komunikaty z tym, że tak:
- Komunikaty "podaj swój login"; "podaj swoje hasło" Wyswietla mi poprawnie (Jak pola są uzupełnione to komunikatów nie ma itd.);
- Komunikatu "Jestes zalogowany" Nie wyświetla mi wcale, bez wzgledu na to czy podam prawdziwe dane do logowania czy nie, czy nie podam ich wcale;
- Kmunikat "Twój login i hasło nie zgadzają się z danymi wprowadzonymi podczas rejestracji!" Wyświetla mi bez względu na to co podam w formualrzu;
- Komunikat "Musisz podać swoje dane, aby się zalogować" Też się mnie pokazuje wcale;
- I wydaj mi się, że wcale mnie nie loguje bo powinno przekierować mnie na stronę "witaj.php", a tak się nie dzieję .
Podejrzewam , że jest coś nie tak z intrukcją warunkową tylko nie wiem co dlatego proszę jeszcze o troszkę cierpliwości do mnie. Z góry sdziękuję za okazaną pomoc snitch.gif .
Dodam jeszcze tylko, że zależy mi na zrobieniu tej stronki bo dzięki niej mogę zaliczyć informatykę na studiach :-). Dlatego chce żeby wszystklo było dobrze a Wasze forum już nie raz okazało się być mi pomocne winksmiley.jpg

Ten post edytował paffcio87 29.02.2008, 14:25:15


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

Go to the top of the page
+Quote Post
marcio
post
Post #13





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

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


Co to w ogole za warunki??
  1. <?php
  2. if(isset($_POST['submit'])) {
  3. $message= NULL;
  4.  if(empty($_POST['login'])) {
  5.  $login= FALSE;
  6.  $message .= '<p><b><font color= "#FF0000">Podaj login!!</font></b></p>';
  7.  } else {
  8.  $login= $_POST['login'];
  9.  }
  10.  if(empty($_POST['haslo'])){
  11.  $haslo= FALSE;
  12.  $message .= '<p><b><font color= "#FF0000">Podaj hasło!!</font></b></p>';
  13. } else {
  14.  $haslo= $_POST['haslo'];
  15.  }
  16.  if($login && $haslo) {
  17. //etc......
  18. ?>


Lol ustaw dobrze warunki i reszte to zobaczysz ze bedzie dzialac


--------------------
Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/
Moj blog
Go to the top of the page
+Quote Post
paffcio87
post
Post #14





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 26.02.2008

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


No więc właśnie chodzi o to, że nie wiem co zrobiłem źle z tymi warunkami cały czas się nad tym męczę i już mnie ro zaczyna wkur...rzać sciana.gif

Ten post edytował paffcio87 1.03.2008, 01:49:19


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

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 Aktualny czas: 20.08.2025 - 04:29